{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"QuickSight Folder Deployment\n",
"\n",
"Author: Ian Liao (Data Visualization Engineer in ProServe GSP)\n",
"Date: Sep 13 2021\n",
"\n",
"QuickSight Folder can be used to build deployment environments. User can create DEV, UAT and PROD folders, and use them as corresponding environments.\n",
"This deployment script helps to dashboards with dependencies from one folder to another. \n",
"Folders can be in the same QuickSight account, or different QuickSight accounts.\n",
"\n",
"Requirements\n",
"\n",
"The Dashboard name has to be unique globally\n",
"Folder name has be to unique globally. \n",
"Always use CAPITAL LETTERS ONLY NO NUMBERS NO SPECIAL CHARACTERS for folder name. \n",
"A DEV folder has to exist, and it is used as the base folder (or referred as main). \n",
"Never deploy backwards, start a new development folder for hot-fix if necessary. Deploy to development folder creates an analysis instead of a dashboard \n",
"DO NOT use dash in dataset name \n",
"\n",
"How it works?\n",
"\n",
"The script will try to find the specified dashboards in the source folder, find their datasets, and deploy to destination folder. \n",
"Object deployed to any folder other than DEV will use \"its ID in DEV - folder name\" as the new ID. \n",
"\n",
"What objects are deployed\n",
"\n",
"In same account deployment, Datasets and Dashboards are deployed; \n",
"In cross account deployment, Datasets, Themes and Dashboards are deployed. \n",
"In either case, data source is not deployed. It assumes only one data source, and user should provide the datasource id in the target account\n",
"\n",
"Limitations\n",
"\n",
"Dataset refresh schedule is not set in target environment \n",
"Deploy from HF to UAT will create a new dashboard. Developer needs to delete or remove the older version dashboard manually.\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Looking in indexes: https://pypi.org/simple, https://pip.repos.neuron.amazonaws.com\n",
"Requirement already satisfied: pip in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (21.3)\n",
"Collecting pip\n",
" Downloading pip-21.3.1-py3-none-any.whl (1.7 MB)\n",
" |████████████████████████████████| 1.7 MB 28.9 MB/s \n",
"\u001b[?25hInstalling collected packages: pip\n",
" Attempting uninstall: pip\n",
" Found existing installation: pip 21.3\n",
" Uninstalling pip-21.3:\n",
" Successfully uninstalled pip-21.3\n",
"Successfully installed pip-21.3.1\n",
"Looking in indexes: https://pypi.org/simple, https://pip.repos.neuron.amazonaws.com\n",
"Requirement already satisfied: boto3 in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (1.18.61)\n",
"Collecting boto3\n",
" Downloading boto3-1.19.1-py3-none-any.whl (131 kB)\n",
" |████████████████████████████████| 131 kB 41.2 MB/s \n",
"\u001b[?25hRequirement already satisfied: jmespath<1.0.0,>=0.7.1 in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (from boto3) (0.10.0)\n",
"Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (from boto3) (0.5.0)\n",
"Collecting botocore<1.23.0,>=1.22.1\n",
" Downloading botocore-1.22.1-py3-none-any.whl (8.0 MB)\n",
" |████████████████████████████████| 8.0 MB 57.4 MB/s \n",
"\u001b[?25hRequirement already satisfied: python-dateutil<3.0.0,>=2.1 in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (from botocore<1.23.0,>=1.22.1->boto3) (2.8.1)\n",
"Requirement already satisfied: urllib3<1.27,>=1.25.4 in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (from botocore<1.23.0,>=1.22.1->boto3) (1.26.6)\n",
"Requirement already satisfied: six>=1.5 in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.23.0,>=1.22.1->boto3) (1.15.0)\n",
"Installing collected packages: botocore, boto3\n",
" Attempting uninstall: botocore\n",
" Found existing installation: botocore 1.21.61\n",
" Uninstalling botocore-1.21.61:\n",
" Successfully uninstalled botocore-1.21.61\n",
" Attempting uninstall: boto3\n",
" Found existing installation: boto3 1.18.61\n",
" Uninstalling boto3-1.18.61:\n",
" Successfully uninstalled boto3-1.18.61\n",
"\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
"awscli 1.20.41 requires botocore==1.21.41, but you have botocore 1.22.1 which is incompatible.\n",
"aiobotocore 1.3.0 requires botocore<1.20.50,>=1.20.49, but you have botocore 1.22.1 which is incompatible.\u001b[0m\n",
"Successfully installed boto3-1.19.1 botocore-1.22.1\n",
"Looking in indexes: https://pypi.org/simple, https://pip.repos.neuron.amazonaws.com\n",
"Requirement already satisfied: ipynb in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (0.5.1)\n"
]
}
],
"source": [
"!pip install --upgrade pip\n",
"!pip install --upgrade boto3\n",
"get_ipython().system('pip install --upgrade ipynb')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"'''\n",
"#DEV -> UAT\n",
"# Configure the deployment scripts\n",
"\n",
"# dashboard deployment list\n",
"dashboard_deploy_list = ['']\n",
"theme_deploy_list = [] # provide theme name for cross account deployment\n",
"\n",
"# source info\n",
"sourceaccountid=''\n",
"source_role_name=''\n",
"source_aws_region='us-east-1'\n",
"source_folder_name='DEV'\n",
"source_folder_ID=''\n",
"source_is_dev = True # analysis exists in dev folder\n",
"source_is_main = True # in main environment, object IDs don't have folder name suffix\n",
"source_admin_name = ''\n",
"\n",
"\n",
"# target info\n",
"targetaccountid=''\n",
"target_role_name=''\n",
"target_aws_region='us-east-1'\n",
"target_folder_name='UAT'\n",
"target_folder_ID='ID of the UAT folder'\n",
"target_is_dev = False # set this flag to true if analysis deployment is necessary (in use case like roll back); by default analysis will not be deployed. \n",
"target_is_main = False\n",
"target_admin_name = ''\n",
"\n",
"target_datasource_id = '' # provide target data source id for cross account deployment\n",
"\n",
"# deployment settings\n",
"same_account_deployment = (True if sourceaccountid == targetaccountid else False)\n",
"\n",
"'''"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"\\n# UAT -> HF\\n\\n\\n# Configure the migration scripts\\n\\n# dashboard migration list\\ndashboard_migrate_list = ['Dealer Analytic Dashboard-UAT'] # name of the dashboard\\ntheme_migrate_list = [] # provide theme name for cross account migration\\n\\n# source info\\nsourceaccountid='233081732471'\\nsource_role_name='SageMakerExecutionRoleQuickSightMigration'\\nsource_aws_region='us-east-1'\\nsource_folder_name='UAT'\\nsource_folder_ID='9e1c0f70-21ec-48da-a50f-1a0c7fd12075'\\nsource_is_dev = False # analysis exists in dev folder\\nsource_is_main = False # in main environment, object IDs don't have folder name suffix\\nsource_admin_name = 'VGCS-QS/david.mcneil'\\n\\n\\n# target info\\ntargetaccountid='233081732471'\\ntarget_role_name='SageMakerExecutionRoleQuickSightMigration'\\ntarget_aws_region='us-east-1'\\ntarget_folder_name='HF'\\ntarget_folder_ID='2e555c31-4345-4c58-b4d3-7460f8c21301'\\ntarget_is_dev = True # set this flag to true if analysis migration is necessary (in use case like roll back); by default analysis will not be migrated. \\ntarget_is_main = False\\ntarget_admin_name = 'VGCS-QS/david.mcneil'\\n\\ntarget_datasource_id = '' # provide target data source id for cross account migration\\n\\n# migration settings\\nsame_account_migration = (True if sourceaccountid == targetaccountid else False)\\n\""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''\n",
"# UAT -> HF\n",
"\n",
"\n",
"# Configure the deployment scripts\n",
"\n",
"# dashboard deployment list\n",
"dashboard_deploy_list = [''] # name of the dashboard\n",
"theme_deploy_list = [] # provide theme name for cross account deployment\n",
"\n",
"# source info\n",
"sourceaccountid=''\n",
"source_role_name=''\n",
"source_aws_region='us-east-1'\n",
"source_folder_name='UAT'\n",
"source_folder_ID=''\n",
"source_is_dev = False # analysis exists in dev folder\n",
"source_is_main = False # in main environment, object IDs don't have folder name suffix\n",
"source_admin_name = ''\n",
"\n",
"\n",
"# target info\n",
"targetaccountid='233081732471'\n",
"target_role_name=''\n",
"target_aws_region='us-east-1'\n",
"target_folder_name='HF'\n",
"target_folder_ID=''\n",
"target_is_dev = True # set this flag to true if analysis deployment is necessary (in use case like roll back); by default analysis will not be deployed. \n",
"target_is_main = False\n",
"target_admin_name = ''\n",
"\n",
"target_datasource_id = '' # provide target data source id for cross account deployment\n",
"\n",
"# deploymeny settings\n",
"same_account_deployment = (True if sourceaccountid == targetaccountid else False)\n",
"'''"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"\\n#HF -> UAT\\n# Configure the migration scripts\\n\\n# dashboard migration list\\ndashboard_migrate_list = ['NEWHF']\\ntheme_migrate_list = [] # provide theme name for cross account migration\\n\\n# source info\\nsourceaccountid='233081732471'\\nsource_role_name='SageMakerExecutionRoleQuickSightMigration'\\nsource_aws_region='us-east-1'\\nsource_folder_name='HF'\\nsource_folder_ID='2e555c31-4345-4c58-b4d3-7460f8c21301'\\nsource_is_dev = True # analysis exists in dev folder\\nsource_is_main = False # in main environment, object IDs don't have folder name suffix\\nsource_admin_name = 'VGCS-QS/david.mcneil'\\n\\n\\n# target info\\ntargetaccountid='233081732471'\\ntarget_role_name='SageMakerExecutionRoleQuickSightMigration'\\ntarget_aws_region='us-east-1'\\ntarget_folder_name='UAT'\\ntarget_folder_ID='9e1c0f70-21ec-48da-a50f-1a0c7fd12075'\\ntarget_is_dev = False # set this flag to true if analysis migration is necessary (in use case like roll back); by default analysis will not be migrated. \\ntarget_is_main = False\\ntarget_admin_name = 'VGCS-QS/david.mcneil'\\n\\ntarget_datasource_id = '' # provide target data source id for cross account migration\\n\\n# migration settings\\nsame_account_migration = (True if sourceaccountid == targetaccountid else False)\\n\""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''\n",
"#HF -> UAT\n",
"# Configure the deployment scripts\n",
"\n",
"# dashboard deployment list\n",
"dashboard_deploy_list = ['']\n",
"theme_deploy_list = [] # provide theme name for cross account deployment\n",
"\n",
"# source info\n",
"sourceaccountid=''\n",
"source_role_name=''\n",
"source_aws_region='us-east-1'\n",
"source_folder_name='HF'\n",
"source_folder_ID=''\n",
"source_is_dev = True # analysis exists in dev folder\n",
"source_is_main = False # in main environment, object IDs don't have folder name suffix\n",
"source_admin_name = ''\n",
"\n",
"\n",
"# target info\n",
"targetaccountid='233081732471'\n",
"target_role_name=''\n",
"target_aws_region='us-east-1'\n",
"target_folder_name='UAT'\n",
"target_folder_ID=''\n",
"target_is_dev = False # set this flag to true if analysis deployment is necessary (in use case like roll back); by default analysis will not be deployed. \n",
"target_is_main = False\n",
"target_admin_name = ''\n",
"\n",
"target_datasource_id = '' # provide target data source id for cross account deployment\n",
"\n",
"# deployment settings\n",
"same_account_deployment = (True if sourceaccountid == targetaccountid else False)\n",
"'''"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"#UAT -> DEV\\n# a rare use case to reset main branch\\n# Don't run it unless absolute necessary\\n# Configure the migration scripts\\n\\n\\n# dashboard migration list\\ndashboard_migrate_list = ['NEWHF'] # name of the dashboard\\ntheme_migrate_list = [] # provide theme name for cross account migration\\n\\n# source info\\nsourceaccountid='233081732471'\\nsource_role_name='SageMakerExecutionRoleQuickSightMigration'\\nsource_aws_region='us-east-1'\\nsource_folder_name='UAT'\\nsource_folder_ID='9e1c0f70-21ec-48da-a50f-1a0c7fd12075'\\nsource_is_dev = False # analysis exists in dev folder\\nsource_is_main = False # in main environment, object IDs don't have folder name suffix\\nsource_admin_name = 'VGCS-QS/david.mcneil'\\n\\n\\n# target info\\ntargetaccountid='233081732471'\\ntarget_role_name='SageMakerExecutionRoleQuickSightMigration'\\ntarget_aws_region='us-east-1'\\ntarget_folder_name='DEV'\\ntarget_folder_ID='d6e161df-07bc-4d76-a3e0-99b0e0fafb18'\\ntarget_is_dev = True # set this flag to true if analysis migration is necessary (in use case like roll back); by default analysis will not be migrated. \\ntarget_is_main = True # a rare use case to reset main branch\\ntarget_admin_name = 'VGCS-QS/david.mcneil'\\n\\ntarget_datasource_id = '' # provide target data source id for cross account migration\\n\\n# migration settings\\nsame_account_migration = (True if sourceaccountid == targetaccountid else False)\""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''#UAT -> DEV\n",
"# a rare use case to reset main branch\n",
"# Don't run it unless absolute necessary\n",
"# Configure the deployment scripts\n",
"\n",
"\n",
"# dashboard deployment list\n",
"dashboard_deploy_list = [''] # name of the dashboard\n",
"theme_deploy_list = [] # provide theme name for cross account deployment\n",
"\n",
"# source info\n",
"sourceaccountid=''\n",
"source_role_name=''\n",
"source_aws_region='us-east-1'\n",
"source_folder_name='UAT'\n",
"source_folder_ID=''\n",
"source_is_dev = False # analysis exists in dev folder\n",
"source_is_main = False # in main environment, object IDs don't have folder name suffix\n",
"source_admin_name = ''\n",
"\n",
"\n",
"# target info\n",
"targetaccountid='233081732471'\n",
"target_role_name=''\n",
"target_aws_region='us-east-1'\n",
"target_folder_name='DEV'\n",
"target_folder_ID=''\n",
"target_is_dev = True # set this flag to true if analysis deployment is necessary (in use case like roll back); by default analysis will not be deployed. \n",
"target_is_main = True # a rare use case to reset main branch\n",
"target_admin_name = ''\n",
"\n",
"target_datasource_id = '' # provide target data source id for cross account deployment\n",
"\n",
"# deployment settings\n",
"same_account_deployment = (True if sourceaccountid == targetaccountid else False)'''"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"# create config dict\\nconfig = {}\\nconfig['dashboard_migrate_list'] = dashboard_migrate_list\\n# source info\\nconfig['sourceaccountid'] = sourceaccountid\\nconfig['source_role_name']= source_role_name\\nconfig['source_aws_region']= source_aws_region\\nconfig['source_folder_name']= source_folder_name\\nconfig['source_folder_ID']= source_folder_ID\\nconfig['source_is_dev'] = source_is_dev\\nconfig['source_is_main'] = source_is_main\\nconfig['source_admin_name'] = source_admin_name\\n\\n\\n# target info\\nconfig['targetaccountid']=targetaccountid\\nconfig['target_role_name']=target_role_name\\nconfig['target_aws_region']=target_aws_region\\nconfig['target_folder_name']=target_folder_name\\nconfig['target_folder_ID']=target_folder_ID\\nconfig['target_is_dev'] = target_is_dev\\nconfig['target_admin_name'] = target_admin_name\\n\\n# migration settings\\nconfig['same_account_migration'] = same_account_migration\""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''# create config dict\n",
"config = {}\n",
"config['dashboard_deploy_list'] = dashboard_deploy_list\n",
"# source info\n",
"config['sourceaccountid'] = sourceaccountid\n",
"config['source_role_name']= source_role_name\n",
"config['source_aws_region']= source_aws_region\n",
"config['source_folder_name']= source_folder_name\n",
"config['source_folder_ID']= source_folder_ID\n",
"config['source_is_dev'] = source_is_dev\n",
"config['source_is_main'] = source_is_main\n",
"config['source_admin_name'] = source_admin_name\n",
"\n",
"\n",
"# target info\n",
"config['targetaccountid']=targetaccountid\n",
"config['target_role_name']=target_role_name\n",
"config['target_aws_region']=target_aws_region\n",
"config['target_folder_name']=target_folder_name\n",
"config['target_folder_ID']=target_folder_ID\n",
"config['target_is_dev'] = target_is_dev\n",
"config['target_admin_name'] = target_admin_name\n",
"\n",
"# deployment settings\n",
"config['same_account_deployment'] = same_account_deployment'''"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"import boto3\n",
"import json\n",
"import time\n",
"from IPython.display import JSON\n",
"import sys\n",
"import ipynb.fs \n",
"import logging\n",
"from typing import Any, Dict, List, Optional\n",
"from datetime import datetime\n",
"import re\n",
"\n",
"# current date and time\n",
"now = str(datetime.now().strftime(\"%m-%d-%Y_%H_%M\"))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import functions from functions notebook"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"from ipynb.fs.defs.Functions import data_sources\n",
"from ipynb.fs.defs.Functions import describe_source \n",
"from ipynb.fs.defs.Functions import delete_source\n",
"from ipynb.fs.defs.Functions import create_data_source\n",
"from ipynb.fs.defs.Functions import get_datasource_name\n",
"from ipynb.fs.defs.Functions import get_datasource_ids\n",
"from ipynb.fs.defs.Functions import update_data_source_permissions\n",
"\n",
"from ipynb.fs.defs.Functions import get_dataset_name\n",
"from ipynb.fs.defs.Functions import data_sets\n",
"from ipynb.fs.defs.Functions import describe_dataset\n",
"from ipynb.fs.defs.Functions import get_dataset_ids\n",
"from ipynb.fs.defs.Functions import delete_dataset \n",
"from ipynb.fs.defs.Functions import create_dataset\n",
"from ipynb.fs.defs.Functions import update_dataset\n",
"from ipynb.fs.defs.Functions import update_data_set_permissions\n",
"\n",
"from ipynb.fs.defs.Functions import get_target\n",
"\n",
"from ipynb.fs.defs.Functions import templates\n",
"from ipynb.fs.defs.Functions import delete_template\n",
"from ipynb.fs.defs.Functions import update_template_permission \n",
"from ipynb.fs.defs.Functions import copy_template\n",
"from ipynb.fs.defs.Functions import describe_template\n",
"from ipynb.fs.defs.Functions import create_template \n",
"\n",
"from ipynb.fs.defs.Functions import dashboards\n",
"from ipynb.fs.defs.Functions import describe_dashboard\n",
"from ipynb.fs.defs.Functions import create_dashboard \n",
"from ipynb.fs.defs.Functions import delete_dashboard\n",
"from ipynb.fs.defs.Functions import update_dashboard \n",
"from ipynb.fs.defs.Functions import get_dashboard_ids\n",
"from ipynb.fs.defs.Functions import get_dashboard_name\n",
"\n",
"from ipynb.fs.defs.Functions import themes\n",
"from ipynb.fs.defs.Functions import describe_theme\n",
"from ipynb.fs.defs.Functions import delete_theme\n",
"from ipynb.fs.defs.Functions import create_theme\n",
"from ipynb.fs.defs.Functions import update_theme\n",
"from ipynb.fs.defs.Functions import describe_theme_permissions\n",
"from ipynb.fs.defs.Functions import update_theme_permissions\n",
"\n",
"from ipynb.fs.defs.Functions import analysis\n",
"from ipynb.fs.defs.Functions import describe_analysis\n",
"from ipynb.fs.defs.Functions import create_analysis\n",
"from ipynb.fs.defs.Functions import delete_analysis\n",
"from ipynb.fs.defs.Functions import update_analysis\n",
"from ipynb.fs.defs.Functions import get_analysis_ids\n",
"from ipynb.fs.defs.Functions import describe_analysis_permissions\n",
"\n",
"\n",
"from ipynb.fs.defs.Functions import folder_members\n",
"\n",
"#supportive functions\n",
"from ipynb.fs.defs.Functions import data_sets_ls_of_dashboard\n",
"from ipynb.fs.defs.Functions import data_sources_ls_of_dashboard\n",
"from ipynb.fs.defs.Functions import get_data_source_deployment_list\n",
"from ipynb.fs.defs.Functions import data_sources_ls_of_analysis\n",
"from ipynb.fs.defs.Functions import data_sets_ls_of_analysis\n",
"from ipynb.fs.defs.Functions import get_user_arn\n",
"from ipynb.fs.defs.Functions import _assume_role\n",
"\n",
"from ipynb.fs.defs.Functions import create_folder_membership"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Static Profile\n",
"\n",
"You can also configure AWS profile from terminal and call the profile in below cell"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"\\nsourceprofile=''\\ntargetprofile=''\\nsourcesession = boto3.Session(profile_name=sourceprofile, region_name=source_aws_region)\\ntargetsession = boto3.Session(profile_name=targetprofile, region_name=target_aws_region)\\n\""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''\n",
"sourceprofile=''\n",
"targetprofile=''\n",
"sourcesession = boto3.Session(profile_name=sourceprofile, region_name=source_aws_region)\n",
"targetsession = boto3.Session(profile_name=targetprofile, region_name=target_aws_region)\n",
"'''"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"sourceprofile=''\n",
"targetprofile=''\n",
"sourcesession = boto3.Session(region_name=source_aws_region)\n",
"targetsession = boto3.Session(region_name=target_aws_region)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Assume Role\n",
"\n",
"You can also assume an IAM role and create session based on the role permissions"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'#source account\\nsourcesession = _assume_role(sourceaccountid, source_role_name, source_aws_region)\\n\\n#target account\\ntargetsession = _assume_role(targetaccountid, target_role_name, target_aws_region)\\n#targetsession = boto3.Session(\\n# aws_access_key_id=\"\",\\n# aws_secret_access_key=\"\",\\n# aws_session_token=\"\",\\n# region_name=aws_region\\n# )'"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''#source account\n",
"sourcesession = _assume_role(sourceaccountid, source_role_name, source_aws_region)\n",
"\n",
"#target account\n",
"targetsession = _assume_role(targetaccountid, target_role_name, target_aws_region)\n",
"#targetsession = boto3.Session(\n",
"# aws_access_key_id=\"\",\n",
"# aws_secret_access_key=\"\",\n",
"# aws_session_token=\"\",\n",
"# region_name=aws_region\n",
"# )'''"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Set root and admin users\n",
"\n",
"root user is for the template. \n",
"By default, we assign full permissions of objects to admin."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"sourceroot=get_user_arn (sourcesession, 'root')\n",
"sourceadmin=get_user_arn (sourcesession, source_admin_name)\n",
"#sourceversion='1'\n",
"\n",
"targetroot=get_user_arn (targetsession, 'root')\n",
"targetadmin=get_user_arn (targetsession, target_admin_name)\n",
"#targetvpc='arn:aws:quicksight:us-east-1:889399602426:vpcConnection/sg-40b7521a'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Please define your input parameters in below cell"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"application/json": {
"credential": {
"rdscredential": {
"CredentialPair": {
"Password": "",
"Username": ""
}
},
"redshiftcredential": {
"CredentialPair": {
"Password": "Ro_user1234",
"Username": "ro_user"
}
}
},
"datasetpermission": [
{
"Actions": [
"quicksight:UpdateDataSetPermissions",
"quicksight:DescribeDataSet",
"quicksight:DescribeDataSetPermissions",
"quicksight:PassDataSet",
"quicksight:DescribeIngestion",
"quicksight:ListIngestions",
"quicksight:UpdateDataSet",
"quicksight:DeleteDataSet",
"quicksight:CreateIngestion",
"quicksight:CancelIngestion"
],
"Principal": "arn:aws:quicksight:us-east-1:233081732471:user/default/VGCS-QS/david.mcneil"
}
],
"datasourcepermission": [
{
"Actions": [
"quicksight:DescribeDataSource",
"quicksight:DescribeDataSourcePermissions",
"quicksight:PassDataSource",
"quicksight:UpdateDataSource",
"quicksight:DeleteDataSource",
"quicksight:UpdateDataSourcePermissions"
],
"Principal": "arn:aws:quicksight:us-east-1:233081732471:user/default/VGCS-QS/david.mcneil"
}
],
"rds": {
"rdsinstanceid": "mssql"
},
"redshift": {
"ClusterId": "wangzyncluster1",
"Database": "dev",
"Host": "wangzyncluster1.coprq8ycemvc.us-east-1.redshift.amazonaws.com"
},
"s3": {
"manifestBucket": "spaceneedle-samplefiles.prod.us-east-1",
"manifestkey": "sales/manifest.json"
},
"tag": [
{
"Key": "covid-19-dashboard-migration",
"Value": "true"
}
],
"version": "1",
"vpc": "arn:aws:quicksight:us-east-1:233081732471:vpcConnection/sg-40b7521a"
},
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# data source credentials. May use in secret manager in future. \n",
"\n",
"rds='mssql'\n",
"redshift={\n",
" \"ClusterId\": 'wangzyncluster1',\n",
" \"Host\": 'wangzyncluster1.coprq8ycemvc.us-east-1.redshift.amazonaws.com',\n",
" \"Database\": 'dev'}\n",
"\n",
"s3Bucket='spaceneedle-samplefiles.prod.us-east-1'\n",
"s3Key='sales/manifest.json'\n",
"vpc='sg-40b7521a'\n",
"tag=[\n",
" {\n",
" 'Key': 'test',\n",
" 'Value': 'true'\n",
" }\n",
" ]\n",
"owner=targetadmin\n",
"rdscredential={\n",
" 'CredentialPair': {\n",
" 'Username': \"\",\n",
" 'Password': \"\"}}\n",
"redshiftcredential={\n",
" 'CredentialPair': {\n",
" 'Username': \"ro_user\",\n",
" 'Password': \"Ro_user1234\"}}\n",
"region='us-east-1'\n",
"namespace='default'\n",
"version='1' \n",
"\n",
"target=get_target(targetsession, rds,redshift,s3Bucket,s3Key,vpc,tag,owner,rdscredential,redshiftcredential)\n",
"\n",
"JSON(target)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Deployment List"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"if same_account_deployment == True:\n",
" deploy_p = 'dashboard'\n",
" source_deploy_list = []\n",
" theme_deploy_list= []\n",
"else:\n",
" deploy_p = 'dashboard'\n",
" source_deploy_list = []\n",
" \n",
" \n",
"\"\"\"\"\n",
"\"all\" will deploy data source, dataset, theme, analysis and dashboard;\n",
"\"source\" means data sources only; \n",
"\"dataset\" means datasets only; \n",
"\"theme\" means theme only;\n",
"\"analysis\" means analysis only;\n",
"\"dashboard\" means dashboard only\n",
"\"\"\" \n",
"\n",
"dataset_deploy_list = []\n",
"analysis_deploy_list= []\n",
"# dashboard deployment list is now defined on top\n",
"#dashboard_deploy_list = ['patient'] "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Demo Analytics Dashboard\n",
"['b22fbc21-bf52-40fb-803c-8469424a7dd2']\n"
]
}
],
"source": [
"if deploy_p in ['dashboard']:\n",
" source_deploy_list=[]\n",
" dataset_deploy_list=[]\n",
" for dashboard in dashboard_deploy_list:\n",
" print(dashboard)\n",
" #datasources=data_sources_ls_of_dashboard(dashboard, sourcesession)\n",
" #print(datasources)\n",
" #for datasource in datasources:\n",
" # source_deploy_list.append(datasource)\n",
" datasets=data_sets_ls_of_dashboard(dashboard, sourcesession)\n",
" for dataset in datasets:\n",
" dataset_deploy_list.append(dataset)\n",
" \n",
"if deploy_p in ['analysis']:\n",
" source_deploy_list=[]\n",
" dataset_deploy_list=[]\n",
" for analysis_name in analysis_deploy_list:\n",
" print(analysis_name)\n",
" datasources=data_sources_ls_of_analysis(analysis_name, sourcesession)\n",
" print(datasources)\n",
" for datasource in datasources:\n",
" source_deploy_list.append(datasource)\n",
" datasets=data_sets_ls_of_analysis(analysis_name, sourcesession)\n",
" print(datasets)\n",
" for dataset in datasets:\n",
" dataset_deploy_list.append(dataset)\n",
" \n",
"if deploy_p in ['all']:\n",
" for dashboard in dashboard_deploy_list:\n",
" datasources=data_sources_ls_of_dashboard(dashboard, sourcesession)\n",
" for datasource in datasources:\n",
" source_deploy_list.append(datasource)\n",
" datasets=data_sets_ls_of_dashboard(dashboard, sourcesession)\n",
" for dataset in datasets:\n",
" dataset_deploy_list.append(dataset)\n",
" \n",
" for analysis_name in analysis_deploy_list:\n",
" datasources=data_sources_ls_of_analysis(analysis_name, sourcesession)\n",
" for datasource in datasources:\n",
" source_deploy_list.append(datasource)\n",
" datasets=data_sets_ls_of_analysis(analysis_name, sourcesession)\n",
" for dataset in datasets:\n",
" dataset_deploy_list.append(dataset)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['Demo Analytics Dashboard']"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dashboard_deploy_list"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['qs_subscription',\n",
" 'qs_faults',\n",
" 'qs_ecu',\n",
" 'qs_vehicle_exclusion',\n",
" 'qs_dataset_date_range',\n",
" 'qs_fuel_comparison',\n",
" 'qs_veh_dimension',\n",
" 'qs_location',\n",
" 'qs_software',\n",
" 'qs_fuel',\n",
" 'qs_not_reporting',\n",
" 'qs_location_comparison',\n",
" 'qs_geofence']"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_deploy_list"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source_deploy_list"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theme_deploy_list"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"analysis_deploy_list"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"def get_target_id(source_id):\n",
" if source_is_main:\n",
" target_id = source_id + '-' + target_folder_name\n",
" elif target_is_main:\n",
" target_id = source_id.replace(('-' + source_folder_name), '')\n",
" else:\n",
" target_id = source_id.replace(('-' + source_folder_name), '') + ('-' + target_folder_name)\n",
" \n",
" return target_id"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"def get_target_placeholder(placeholder):\n",
" if target_is_main:\n",
" target_placeholder = re.sub(r'-[A-Z]+', '', placeholder)\n",
" else:\n",
" target_placeholder = re.sub(r'-[A-Z]+', '', placeholder) + '-' + target_folder_name\n",
" return target_placeholder"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Results Output Location"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Creation of the directory Migration_Results/Successful/ failed\n",
"Creation of the directory Migration_Results/Fail/ failed\n"
]
}
],
"source": [
"#\n",
"successlocation = \"Deployment_Results/Successful/\"\n",
"faillocation = \"Deployment_Results/Fail/\"\n",
"\n",
"import os\n",
"try:\n",
" os.makedirs(successlocation)\n",
"except OSError:\n",
" print (\"Creation of the directory %s failed\" % successlocation)\n",
"else:\n",
" print (\"Successfully created the directory %s\" % successlocation)\n",
"\n",
"try:\n",
" os.makedirs(faillocation)\n",
"except OSError:\n",
" print (\"Creation of the directory %s failed\" % faillocation)\n",
"else:\n",
" print (\"Successfully created the directory %s\" % faillocation)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Data Set Deployment Get datasets list:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#source account\n",
"sourceaccountid=\"\"\n",
"role_name=\"\"\n",
"aws_region=''\n",
"sourcesession = _assume_role(sourceaccountid, role_name, aws_region)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#target account\n",
"targetaccountid=\"\"\n",
"role_name=\"\"\n",
"aws_region='us-east-1'\n",
"targetsession = _assume_role(targetaccountid, role_name, aws_region)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.code.notebook.error": {
"message": "o.endsWith is not a function",
"name": "TypeError",
"stack": "TypeError: o.endsWith is not a function\n\tat s (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:142510)\n\tat u (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:143160)\n\tat f (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:143903)\n\tat p (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:144653)\n\tat Array.map ()\n\tat /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:145839\n\tat /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:146165\n\tat /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:146172\n\tat Array.map ()\n\tat e.jupyterNotebookModelToNotebookData (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:145397)\n\tat e.NotebookSerializer.deserializeNotebook (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ipynb/dist/ipynbMain.js:1:147692)\n\tat _.$dataToNotebook (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:85:151702)\n\tat i._doInvokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:89:13826)\n\tat i._invokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:89:13510)\n\tat i._receiveRequest (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:89:12119)\n\tat i._receiveOneMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:89:11044)\n\tat /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:89:8947\n\tat u.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:58:145)\n\tat v.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:58:1856)\n\tat d.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:66:19034)\n\tat /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:104:34275\n\tat u.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:58:145)\n\tat v.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:58:1856)\n\tat d.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:66:19034)\n\tat o._receiveMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:66:23615)\n\tat /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:66:21149\n\tat u.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:58:145)\n\tat v.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:58:1856)\n\tat v.acceptChunk (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:66:15865)\n\tat /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:66:14995\n\tat Socket.P (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:104:13797)\n\tat Socket.emit (node:events:390:28)\n\tat Socket.emit (node:domain:475:12)\n\tat addChunk (node:internal/streams/readable:315:12)\n\tat readableAddChunk (node:internal/streams/readable:289:9)\n\tat Socket.Readable.push (node:internal/streams/readable:228:10)\n\tat Pipe.onStreamRead (node:internal/stream_base_commons:199:23)"
},
"text/plain": [
""
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datasets=data_sets(sourcesession)\n",
"\n",
"deployment_list=[]\n",
"for newset in dataset_deploy_list:\n",
" ids = get_dataset_ids(newset, sourcesession) #Get id of datasets deployment list\n",
" for dataset in datasets:\n",
" if ids[0] == dataset[\"DataSetId\"]:\n",
" deployment_list.append(dataset)\n",
"\n",
"JSON(deployment_list)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/0e91b4ef-4a53-495d-8c88-66560abed72e',\n",
" 'DataSetId': '0e91b4ef-4a53-495d-8c88-66560abed72e',\n",
" 'Name': 'qs_subscription',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 15, 15, 26, 8, 839000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 1, 15, 744000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1d04d9b5-d25f-4fd6-bb28-60392e25a6be',\n",
" 'DataSetId': '1d04d9b5-d25f-4fd6-bb28-60392e25a6be',\n",
" 'Name': 'qs_faults',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 15, 18, 42, 30, 337000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 31, 52, 642000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f5506260-505b-418c-aa45-c9a04f606180',\n",
" 'DataSetId': 'f5506260-505b-418c-aa45-c9a04f606180',\n",
" 'Name': 'qs_ecu',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 17, 14, 51, 48, 619000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 2, 42, 643000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/60ebd06e-978d-4e24-ac51-450837fadc85',\n",
" 'DataSetId': '60ebd06e-978d-4e24-ac51-450837fadc85',\n",
" 'Name': 'qs_vehicle_exclusion',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 17, 19, 26, 25, 784000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 1, 5, 366000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/a6a7c495-3174-4013-9766-d80a84eae54d',\n",
" 'DataSetId': 'a6a7c495-3174-4013-9766-d80a84eae54d',\n",
" 'Name': 'qs_dataset_date_range',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 15, 19, 10, 17, 133000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 2, 55, 750000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/12bc8d1c-9158-4bd2-b5bc-8af977149b20',\n",
" 'DataSetId': '12bc8d1c-9158-4bd2-b5bc-8af977149b20',\n",
" 'Name': 'qs_fuel_comparison',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 1, 13, 35, 6, 28000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 24, 46, 180000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/85d8610a-2739-4ec1-8df6-374ed5fe2ecd',\n",
" 'DataSetId': '85d8610a-2739-4ec1-8df6-374ed5fe2ecd',\n",
" 'Name': 'qs_veh_dimension',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 17, 15, 15, 19, 350000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 3, 49, 461000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/41dbfd62-bbc7-4516-ab6a-fa51278b9dca',\n",
" 'DataSetId': '41dbfd62-bbc7-4516-ab6a-fa51278b9dca',\n",
" 'Name': 'qs_location',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 18, 18, 40, 48, 397000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 28, 23, 53, 10, 781000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'DIRECT_QUERY',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/fd093c9c-1152-487f-926c-0e780fa06bfc',\n",
" 'DataSetId': 'fd093c9c-1152-487f-926c-0e780fa06bfc',\n",
" 'Name': 'qs_software',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 16, 1, 7, 14, 261000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 6, 5, 491000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/68ee6c11-d7d8-462f-8321-66a909516ae9',\n",
" 'DataSetId': '68ee6c11-d7d8-462f-8321-66a909516ae9',\n",
" 'Name': 'qs_fuel',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 15, 0, 42, 31, 697000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 12, 14, 415000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f423b170-f4dc-436e-b58b-fdbf2d4654b1',\n",
" 'DataSetId': 'f423b170-f4dc-436e-b58b-fdbf2d4654b1',\n",
" 'Name': 'qs_not_reporting',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 3, 16, 1, 45, 964000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 12, 4, 992000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/5287927a-02d2-4a1a-8f29-3c1f6c724309',\n",
" 'DataSetId': '5287927a-02d2-4a1a-8f29-3c1f6c724309',\n",
" 'Name': 'qs_location_comparison',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 2, 19, 10, 59, 511000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 28, 23, 53, 32, 534000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'DIRECT_QUERY',\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1c162a65-dd99-4142-b44a-fb6397e7b38c',\n",
" 'DataSetId': '1c162a65-dd99-4142-b44a-fb6397e7b38c',\n",
" 'Name': 'qs_geofence',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 18, 18, 13, 52, 90000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 2, 1, 175000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False}]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"deployment_list"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get already deployed datasets list"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"#get datasets which already deployed\n",
"targetds=data_sets(targetsession)\n",
"#already_deployed record the datasets ids of target account\n",
"already_deployed=[]\n",
"for ds in targetds:\n",
" already_deployed.append(ds['DataSetId'])\n",
"#already_deployed"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Deploy Datasets"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"newsetslist=[]\n",
"faillist=[]\n",
"sts_client = targetsession.client(\"sts\")\n",
"account_id = sts_client.get_caller_identity()[\"Account\"]\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"def deploy_dataset(mds): \n",
" print(get_target_id(mds['DataSetId']))\n",
" try:\n",
" res=describe_dataset(sourcesession, mds['DataSetId'])\n",
" except Exception:\n",
" faillist.append({\"Dataset\": mds, \"Error\": str(Exception)})\n",
" return\n",
" \n",
" if 'RowLevelPermissionDataSet' in res['DataSet']:\n",
" rls_flag = True\n",
" rls_arn = res['DataSet']['RowLevelPermissionDataSet']['Arn']\n",
" print('rls data set exists: ' + rls_arn)\n",
" rls_id = rls_arn.split('/')[1]\n",
" \n",
" try:\n",
" rls_res = describe_dataset(sourcesession, rls_id)\n",
" except Exception:\n",
" faillist.append({\"Dataset\": mds, \"RLS\": rls_id, \"Error\": str(Exception)})\n",
" return\n",
" \n",
" rls_name = rls_res['DataSet']['Name']\n",
" \n",
" rls = {}\n",
" rls['DataSetId'] = rls_id\n",
" rls['Name'] = rls_name\n",
" \n",
" print(rls)\n",
" #deploy the rls dataset to target\n",
" deploy_dataset(rls)\n",
" already_deployed.append(get_target_id(rls_id))\n",
" \n",
" RowLevelPermissionDataSet = res['DataSet']['RowLevelPermissionDataSet']\n",
" RowLevelPermissionDataSet['Arn'] = get_target_id(RowLevelPermissionDataSet['Arn'])\n",
" RowLevelPermissionDataSet['Status'] = 'ENABLED'\n",
" \n",
" else:\n",
" rls_flag = False\n",
" RowLevelPermissionDataSet = None\n",
" \n",
" \n",
" \n",
" name=mds['Name']\n",
" datasetid=mds['DataSetId']\n",
" \n",
" PT=res['DataSet']['PhysicalTableMap']\n",
" for key, value in PT.items():\n",
" for k,v in value.items():\n",
" dsid = v['DataSourceArn'].split(\"/\")[1] if same_account_deployment else target_datasource_id\n",
" v['DataSourceArn']='arn:aws:quicksight:us-east-1:'+account_id+':datasource/'+dsid\n",
"\n",
" LT=res['DataSet']['LogicalTableMap']\n",
" if 'ColumnGroups' in res['DataSet']:\n",
" ColumnGroups=res['DataSet']['ColumnGroups']\n",
" else: ColumnGroups=None\n",
" \n",
" if get_target_id(mds['DataSetId']) not in already_deployed:\n",
" try: \n",
" newdataset=create_dataset(targetsession, get_target_id(datasetid), get_target_id(name), PT, LT, res['DataSet']['ImportMode'], target['datasetpermission'],ColumnGroups, RowLevelPermissionDataSet)\n",
" print(\"new dataset: \", newdataset)\n",
" newsetslist.append(newdataset)\n",
" except Exception as e:\n",
" print('failed: '+str(e))\n",
" faillist.append({\"DataSetId\": datasetid, \"Name\": name, \"Error\": str(e)})\n",
" return\n",
" \n",
" if get_target_id(mds['DataSetId']) in already_deployed:\n",
" try: \n",
" newdataset=update_dataset(targetsession, get_target_id(datasetid), get_target_id(name), PT, LT, res['DataSet']['ImportMode'],ColumnGroups, RowLevelPermissionDataSet)\n",
" print(\"update dataset: \", newdataset)\n",
" newsetslist.append(newdataset)\n",
" except Exception as e:\n",
" print('failed: '+str(e))\n",
" faillist.append({\"DataSetId\": datasetid, \"Name\": name, \"Error\": str(e)})\n",
" return\n",
"\n",
" create_folder_membership(targetsession, target_folder_ID, get_target_id(datasetid), 'DATASET' )\n",
" print('added DATASET {} to target folder'.format(get_target_id(datasetid)))\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/0e91b4ef-4a53-495d-8c88-66560abed72e',\n",
" 'DataSetId': '0e91b4ef-4a53-495d-8c88-66560abed72e',\n",
" 'Name': 'qs_subscription',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 15, 15, 26, 8, 839000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 1, 15, 744000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1d04d9b5-d25f-4fd6-bb28-60392e25a6be',\n",
" 'DataSetId': '1d04d9b5-d25f-4fd6-bb28-60392e25a6be',\n",
" 'Name': 'qs_faults',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 15, 18, 42, 30, 337000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 31, 52, 642000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f5506260-505b-418c-aa45-c9a04f606180',\n",
" 'DataSetId': 'f5506260-505b-418c-aa45-c9a04f606180',\n",
" 'Name': 'qs_ecu',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 17, 14, 51, 48, 619000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 2, 42, 643000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/60ebd06e-978d-4e24-ac51-450837fadc85',\n",
" 'DataSetId': '60ebd06e-978d-4e24-ac51-450837fadc85',\n",
" 'Name': 'qs_vehicle_exclusion',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 17, 19, 26, 25, 784000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 1, 5, 366000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/a6a7c495-3174-4013-9766-d80a84eae54d',\n",
" 'DataSetId': 'a6a7c495-3174-4013-9766-d80a84eae54d',\n",
" 'Name': 'qs_dataset_date_range',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 15, 19, 10, 17, 133000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 2, 55, 750000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/12bc8d1c-9158-4bd2-b5bc-8af977149b20',\n",
" 'DataSetId': '12bc8d1c-9158-4bd2-b5bc-8af977149b20',\n",
" 'Name': 'qs_fuel_comparison',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 1, 13, 35, 6, 28000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 24, 46, 180000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/85d8610a-2739-4ec1-8df6-374ed5fe2ecd',\n",
" 'DataSetId': '85d8610a-2739-4ec1-8df6-374ed5fe2ecd',\n",
" 'Name': 'qs_veh_dimension',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 17, 15, 15, 19, 350000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 3, 49, 461000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/41dbfd62-bbc7-4516-ab6a-fa51278b9dca',\n",
" 'DataSetId': '41dbfd62-bbc7-4516-ab6a-fa51278b9dca',\n",
" 'Name': 'qs_location',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 18, 18, 40, 48, 397000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 28, 23, 53, 10, 781000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'DIRECT_QUERY',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/fd093c9c-1152-487f-926c-0e780fa06bfc',\n",
" 'DataSetId': 'fd093c9c-1152-487f-926c-0e780fa06bfc',\n",
" 'Name': 'qs_software',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 16, 1, 7, 14, 261000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 6, 5, 491000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/68ee6c11-d7d8-462f-8321-66a909516ae9',\n",
" 'DataSetId': '68ee6c11-d7d8-462f-8321-66a909516ae9',\n",
" 'Name': 'qs_fuel',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 15, 0, 42, 31, 697000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 12, 14, 415000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f423b170-f4dc-436e-b58b-fdbf2d4654b1',\n",
" 'DataSetId': 'f423b170-f4dc-436e-b58b-fdbf2d4654b1',\n",
" 'Name': 'qs_not_reporting',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 3, 16, 1, 45, 964000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 12, 4, 992000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/5287927a-02d2-4a1a-8f29-3c1f6c724309',\n",
" 'DataSetId': '5287927a-02d2-4a1a-8f29-3c1f6c724309',\n",
" 'Name': 'qs_location_comparison',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 2, 19, 10, 59, 511000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 28, 23, 53, 32, 534000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'DIRECT_QUERY',\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1c162a65-dd99-4142-b44a-fb6397e7b38c',\n",
" 'DataSetId': '1c162a65-dd99-4142-b44a-fb6397e7b38c',\n",
" 'Name': 'qs_geofence',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 18, 18, 13, 52, 90000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 6, 2, 1, 175000, tzinfo=tzlocal()),\n",
" 'ImportMode': 'SPICE',\n",
" 'RowLevelPermissionDataSet': {'Namespace': 'default',\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d',\n",
" 'PermissionPolicy': 'GRANT_ACCESS',\n",
" 'FormatVersion': 'VERSION_1',\n",
" 'Status': 'ENABLED'},\n",
" 'RowLevelPermissionTagConfigurationApplied': False,\n",
" 'ColumnLevelPermissionRulesApplied': False}]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"deployment_list"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0e91b4ef-4a53-495d-8c88-66560abed72e-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': 'c74d8241-d1ad-49b7-b0e7-cdfe7477debf', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:56:57 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': 'c74d8241-d1ad-49b7-b0e7-cdfe7477debf'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/8321bd9e-a24a-4abd-9c1b-9758fdca3d88', 'IngestionId': '8321bd9e-a24a-4abd-9c1b-9758fdca3d88', 'RequestId': 'c74d8241-d1ad-49b7-b0e7-cdfe7477debf'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '0373ef7d-0dd9-43ac-851d-708d258150d6', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:56:59 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '0373ef7d-0dd9-43ac-851d-708d258150d6'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/0e91b4ef-4a53-495d-8c88-66560abed72e-UAT', 'DataSetId': '0e91b4ef-4a53-495d-8c88-66560abed72e-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/0e91b4ef-4a53-495d-8c88-66560abed72e-UAT/ingestion/da4ac66f-c3a2-4a52-8d21-8451783c62af', 'IngestionId': 'da4ac66f-c3a2-4a52-8d21-8451783c62af', 'RequestId': '0373ef7d-0dd9-43ac-851d-708d258150d6'}\n",
"added DATASET 0e91b4ef-4a53-495d-8c88-66560abed72e-UAT to target folder\n",
"1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': '36adc72b-f9e9-4257-9b5b-a3255d1381e0', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:02 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '36adc72b-f9e9-4257-9b5b-a3255d1381e0'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/03173944-16fc-4353-a72a-279fa89ccb63', 'IngestionId': '03173944-16fc-4353-a72a-279fa89ccb63', 'RequestId': '36adc72b-f9e9-4257-9b5b-a3255d1381e0'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '4ad336ff-f964-44fd-897c-938fc319aac0', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:03 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '4ad336ff-f964-44fd-897c-938fc319aac0'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT', 'DataSetId': '1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT/ingestion/f0c79188-b507-4edc-a23d-62f1f3868ce9', 'IngestionId': 'f0c79188-b507-4edc-a23d-62f1f3868ce9', 'RequestId': '4ad336ff-f964-44fd-897c-938fc319aac0'}\n",
"added DATASET 1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT to target folder\n",
"f5506260-505b-418c-aa45-c9a04f606180-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': '5e1eef94-f7d9-4f30-bc49-d5d22c7081ab', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:06 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '5e1eef94-f7d9-4f30-bc49-d5d22c7081ab'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/fc3eed5a-a129-428e-8054-77cdb513d086', 'IngestionId': 'fc3eed5a-a129-428e-8054-77cdb513d086', 'RequestId': '5e1eef94-f7d9-4f30-bc49-d5d22c7081ab'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '2b79fe67-cdaf-4f46-9cf1-5c5cbb3a4820', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:07 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '2b79fe67-cdaf-4f46-9cf1-5c5cbb3a4820'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f5506260-505b-418c-aa45-c9a04f606180-UAT', 'DataSetId': 'f5506260-505b-418c-aa45-c9a04f606180-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f5506260-505b-418c-aa45-c9a04f606180-UAT/ingestion/079426bf-fb64-4e6a-91e7-f828311f0842', 'IngestionId': '079426bf-fb64-4e6a-91e7-f828311f0842', 'RequestId': '2b79fe67-cdaf-4f46-9cf1-5c5cbb3a4820'}\n",
"added DATASET f5506260-505b-418c-aa45-c9a04f606180-UAT to target folder\n",
"60ebd06e-978d-4e24-ac51-450837fadc85-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': 'f3fb3507-69de-46f6-b189-0fbafd6a47ab', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:10 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': 'f3fb3507-69de-46f6-b189-0fbafd6a47ab'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/77165be3-349c-448f-8e7a-c9d1d22dca93', 'IngestionId': '77165be3-349c-448f-8e7a-c9d1d22dca93', 'RequestId': 'f3fb3507-69de-46f6-b189-0fbafd6a47ab'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '5a496c8d-3d39-4eea-8d28-aba996811238', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:12 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '5a496c8d-3d39-4eea-8d28-aba996811238'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/60ebd06e-978d-4e24-ac51-450837fadc85-UAT', 'DataSetId': '60ebd06e-978d-4e24-ac51-450837fadc85-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/60ebd06e-978d-4e24-ac51-450837fadc85-UAT/ingestion/0a5c46a3-8f03-43ce-b799-8ea7bb4a5ca1', 'IngestionId': '0a5c46a3-8f03-43ce-b799-8ea7bb4a5ca1', 'RequestId': '5a496c8d-3d39-4eea-8d28-aba996811238'}\n",
"added DATASET 60ebd06e-978d-4e24-ac51-450837fadc85-UAT to target folder\n",
"a6a7c495-3174-4013-9766-d80a84eae54d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': '76801341-1c13-4bbf-8bd6-529503769d64', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:14 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '76801341-1c13-4bbf-8bd6-529503769d64'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/a6a7c495-3174-4013-9766-d80a84eae54d-UAT', 'DataSetId': 'a6a7c495-3174-4013-9766-d80a84eae54d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/a6a7c495-3174-4013-9766-d80a84eae54d-UAT/ingestion/3771b5de-6eb6-4f46-8720-e37dc43be822', 'IngestionId': '3771b5de-6eb6-4f46-8720-e37dc43be822', 'RequestId': '76801341-1c13-4bbf-8bd6-529503769d64'}\n",
"added DATASET a6a7c495-3174-4013-9766-d80a84eae54d-UAT to target folder\n",
"12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': 'a14270c9-067d-4990-ba94-e5197eb0c9fd', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:16 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': 'a14270c9-067d-4990-ba94-e5197eb0c9fd'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT', 'DataSetId': '12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT/ingestion/2ccdfb62-2139-4047-8f74-b49404ed064c', 'IngestionId': '2ccdfb62-2139-4047-8f74-b49404ed064c', 'RequestId': 'a14270c9-067d-4990-ba94-e5197eb0c9fd'}\n",
"added DATASET 12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT to target folder\n",
"85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': '24df983c-a8ad-463c-8798-e36bd70184fb', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:18 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '24df983c-a8ad-463c-8798-e36bd70184fb'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/384bc461-7de5-49de-ae6b-aa4ebfdf2ea2', 'IngestionId': '384bc461-7de5-49de-ae6b-aa4ebfdf2ea2', 'RequestId': '24df983c-a8ad-463c-8798-e36bd70184fb'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': 'a85ec5e4-e169-40f6-8685-b3f1feb74431', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:20 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': 'a85ec5e4-e169-40f6-8685-b3f1feb74431'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT', 'DataSetId': '85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT/ingestion/b14d9b20-9fed-4b1f-baa8-e7b4897aaf46', 'IngestionId': 'b14d9b20-9fed-4b1f-baa8-e7b4897aaf46', 'RequestId': 'a85ec5e4-e169-40f6-8685-b3f1feb74431'}\n",
"added DATASET 85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT to target folder\n",
"41dbfd62-bbc7-4516-ab6a-fa51278b9dca-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': '570daa5e-8ae0-470d-a598-bc4cb1032e5a', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:22 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '570daa5e-8ae0-470d-a598-bc4cb1032e5a'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/29c6e203-11db-44a3-89d6-d921a4c156cb', 'IngestionId': '29c6e203-11db-44a3-89d6-d921a4c156cb', 'RequestId': '570daa5e-8ae0-470d-a598-bc4cb1032e5a'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '75558d1c-f5c3-40e4-a113-40b1ed0da3df', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:23 GMT', 'content-type': 'application/json', 'content-length': '245', 'connection': 'keep-alive', 'x-amzn-requestid': '75558d1c-f5c3-40e4-a113-40b1ed0da3df'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/41dbfd62-bbc7-4516-ab6a-fa51278b9dca-UAT', 'DataSetId': '41dbfd62-bbc7-4516-ab6a-fa51278b9dca-UAT', 'RequestId': '75558d1c-f5c3-40e4-a113-40b1ed0da3df'}\n",
"added DATASET 41dbfd62-bbc7-4516-ab6a-fa51278b9dca-UAT to target folder\n",
"fd093c9c-1152-487f-926c-0e780fa06bfc-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': '883a8d1a-9778-4918-82ae-c1635a9f5f7e', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:26 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '883a8d1a-9778-4918-82ae-c1635a9f5f7e'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/a2be4981-e676-4a58-b2c1-969585355b94', 'IngestionId': 'a2be4981-e676-4a58-b2c1-969585355b94', 'RequestId': '883a8d1a-9778-4918-82ae-c1635a9f5f7e'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '68c66d1c-4d7c-4bdb-8993-9001ae142bbc', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:28 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '68c66d1c-4d7c-4bdb-8993-9001ae142bbc'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/fd093c9c-1152-487f-926c-0e780fa06bfc-UAT', 'DataSetId': 'fd093c9c-1152-487f-926c-0e780fa06bfc-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/fd093c9c-1152-487f-926c-0e780fa06bfc-UAT/ingestion/25a3c097-8c13-44f6-8adb-837130dcd392', 'IngestionId': '25a3c097-8c13-44f6-8adb-837130dcd392', 'RequestId': '68c66d1c-4d7c-4bdb-8993-9001ae142bbc'}\n",
"added DATASET fd093c9c-1152-487f-926c-0e780fa06bfc-UAT to target folder\n",
"68ee6c11-d7d8-462f-8321-66a909516ae9-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': 'cf6da11f-6cc4-4d40-ac7f-9c60cf146beb', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:30 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': 'cf6da11f-6cc4-4d40-ac7f-9c60cf146beb'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/a1d7f54f-9f07-46a8-bf3a-57ebeceed7f3', 'IngestionId': 'a1d7f54f-9f07-46a8-bf3a-57ebeceed7f3', 'RequestId': 'cf6da11f-6cc4-4d40-ac7f-9c60cf146beb'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '02837d8b-c5da-495b-9b2b-68b4a3847e69', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:32 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '02837d8b-c5da-495b-9b2b-68b4a3847e69'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/68ee6c11-d7d8-462f-8321-66a909516ae9-UAT', 'DataSetId': '68ee6c11-d7d8-462f-8321-66a909516ae9-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/68ee6c11-d7d8-462f-8321-66a909516ae9-UAT/ingestion/089f2f74-db03-4f7e-9640-8863417aed9f', 'IngestionId': '089f2f74-db03-4f7e-9640-8863417aed9f', 'RequestId': '02837d8b-c5da-495b-9b2b-68b4a3847e69'}\n",
"added DATASET 68ee6c11-d7d8-462f-8321-66a909516ae9-UAT to target folder\n",
"f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': '170b076d-4901-49c8-9738-aabc3e272916', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:34 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '170b076d-4901-49c8-9738-aabc3e272916'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/9cfcc569-0eb1-4b11-a237-924858587e0d', 'IngestionId': '9cfcc569-0eb1-4b11-a237-924858587e0d', 'RequestId': '170b076d-4901-49c8-9738-aabc3e272916'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '1ae2abca-9bfd-46ef-b567-cd304ff829d2', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:36 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '1ae2abca-9bfd-46ef-b567-cd304ff829d2'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT', 'DataSetId': 'f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT/ingestion/c23f3a0a-6ea1-413e-bf9e-45341e76efdc', 'IngestionId': 'c23f3a0a-6ea1-413e-bf9e-45341e76efdc', 'RequestId': '1ae2abca-9bfd-46ef-b567-cd304ff829d2'}\n",
"added DATASET f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT to target folder\n",
"5287927a-02d2-4a1a-8f29-3c1f6c724309-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': 'df49719d-6ab9-4d1b-b9f5-1274c0e311ae', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:38 GMT', 'content-type': 'application/json', 'content-length': '245', 'connection': 'keep-alive', 'x-amzn-requestid': 'df49719d-6ab9-4d1b-b9f5-1274c0e311ae'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/5287927a-02d2-4a1a-8f29-3c1f6c724309-UAT', 'DataSetId': '5287927a-02d2-4a1a-8f29-3c1f6c724309-UAT', 'RequestId': 'df49719d-6ab9-4d1b-b9f5-1274c0e311ae'}\n",
"added DATASET 5287927a-02d2-4a1a-8f29-3c1f6c724309-UAT to target folder\n",
"1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT\n",
"rls data set exists: arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d\n",
"{'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d', 'Name': 'qs_rls_general_a'}\n",
"02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT\n",
"update dataset: {'ResponseMetadata': {'RequestId': '4f5022e8-417f-48cb-9ebe-3443c41b39b0', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:40 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '4f5022e8-417f-48cb-9ebe-3443c41b39b0'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/5c5f2983-5112-492b-9ed9-cbc7f1b1a363', 'IngestionId': '5c5f2983-5112-492b-9ed9-cbc7f1b1a363', 'RequestId': '4f5022e8-417f-48cb-9ebe-3443c41b39b0'}\n",
"added DATASET 02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT to target folder\n",
"update dataset: {'ResponseMetadata': {'RequestId': '37bc8a2a-4a99-443f-b9a6-c255ee476bfc', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:41 GMT', 'content-type': 'application/json', 'content-length': '414', 'connection': 'keep-alive', 'x-amzn-requestid': '37bc8a2a-4a99-443f-b9a6-c255ee476bfc'}, 'RetryAttempts': 0}, 'Status': 200, 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT', 'DataSetId': '1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT', 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT/ingestion/8e5aeaf3-27e7-4e6f-8afa-f536e8b25a7d', 'IngestionId': '8e5aeaf3-27e7-4e6f-8afa-f536e8b25a7d', 'RequestId': '37bc8a2a-4a99-443f-b9a6-c255ee476bfc'}\n",
"added DATASET 1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT to target folder\n"
]
}
],
"source": [
"for mds in deployment_list:\n",
" deploy_dataset(mds)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'ResponseMetadata': {'RequestId': 'c74d8241-d1ad-49b7-b0e7-cdfe7477debf',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:56:57 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': 'c74d8241-d1ad-49b7-b0e7-cdfe7477debf'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/8321bd9e-a24a-4abd-9c1b-9758fdca3d88',\n",
" 'IngestionId': '8321bd9e-a24a-4abd-9c1b-9758fdca3d88',\n",
" 'RequestId': 'c74d8241-d1ad-49b7-b0e7-cdfe7477debf'},\n",
" {'ResponseMetadata': {'RequestId': '0373ef7d-0dd9-43ac-851d-708d258150d6',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:56:59 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '0373ef7d-0dd9-43ac-851d-708d258150d6'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/0e91b4ef-4a53-495d-8c88-66560abed72e-UAT',\n",
" 'DataSetId': '0e91b4ef-4a53-495d-8c88-66560abed72e-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/0e91b4ef-4a53-495d-8c88-66560abed72e-UAT/ingestion/da4ac66f-c3a2-4a52-8d21-8451783c62af',\n",
" 'IngestionId': 'da4ac66f-c3a2-4a52-8d21-8451783c62af',\n",
" 'RequestId': '0373ef7d-0dd9-43ac-851d-708d258150d6'},\n",
" {'ResponseMetadata': {'RequestId': '36adc72b-f9e9-4257-9b5b-a3255d1381e0',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:02 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '36adc72b-f9e9-4257-9b5b-a3255d1381e0'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/03173944-16fc-4353-a72a-279fa89ccb63',\n",
" 'IngestionId': '03173944-16fc-4353-a72a-279fa89ccb63',\n",
" 'RequestId': '36adc72b-f9e9-4257-9b5b-a3255d1381e0'},\n",
" {'ResponseMetadata': {'RequestId': '4ad336ff-f964-44fd-897c-938fc319aac0',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:03 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '4ad336ff-f964-44fd-897c-938fc319aac0'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT',\n",
" 'DataSetId': '1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT/ingestion/f0c79188-b507-4edc-a23d-62f1f3868ce9',\n",
" 'IngestionId': 'f0c79188-b507-4edc-a23d-62f1f3868ce9',\n",
" 'RequestId': '4ad336ff-f964-44fd-897c-938fc319aac0'},\n",
" {'ResponseMetadata': {'RequestId': '5e1eef94-f7d9-4f30-bc49-d5d22c7081ab',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:06 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '5e1eef94-f7d9-4f30-bc49-d5d22c7081ab'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/fc3eed5a-a129-428e-8054-77cdb513d086',\n",
" 'IngestionId': 'fc3eed5a-a129-428e-8054-77cdb513d086',\n",
" 'RequestId': '5e1eef94-f7d9-4f30-bc49-d5d22c7081ab'},\n",
" {'ResponseMetadata': {'RequestId': '2b79fe67-cdaf-4f46-9cf1-5c5cbb3a4820',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:07 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '2b79fe67-cdaf-4f46-9cf1-5c5cbb3a4820'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f5506260-505b-418c-aa45-c9a04f606180-UAT',\n",
" 'DataSetId': 'f5506260-505b-418c-aa45-c9a04f606180-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f5506260-505b-418c-aa45-c9a04f606180-UAT/ingestion/079426bf-fb64-4e6a-91e7-f828311f0842',\n",
" 'IngestionId': '079426bf-fb64-4e6a-91e7-f828311f0842',\n",
" 'RequestId': '2b79fe67-cdaf-4f46-9cf1-5c5cbb3a4820'},\n",
" {'ResponseMetadata': {'RequestId': 'f3fb3507-69de-46f6-b189-0fbafd6a47ab',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:10 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': 'f3fb3507-69de-46f6-b189-0fbafd6a47ab'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/77165be3-349c-448f-8e7a-c9d1d22dca93',\n",
" 'IngestionId': '77165be3-349c-448f-8e7a-c9d1d22dca93',\n",
" 'RequestId': 'f3fb3507-69de-46f6-b189-0fbafd6a47ab'},\n",
" {'ResponseMetadata': {'RequestId': '5a496c8d-3d39-4eea-8d28-aba996811238',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:12 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '5a496c8d-3d39-4eea-8d28-aba996811238'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/60ebd06e-978d-4e24-ac51-450837fadc85-UAT',\n",
" 'DataSetId': '60ebd06e-978d-4e24-ac51-450837fadc85-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/60ebd06e-978d-4e24-ac51-450837fadc85-UAT/ingestion/0a5c46a3-8f03-43ce-b799-8ea7bb4a5ca1',\n",
" 'IngestionId': '0a5c46a3-8f03-43ce-b799-8ea7bb4a5ca1',\n",
" 'RequestId': '5a496c8d-3d39-4eea-8d28-aba996811238'},\n",
" {'ResponseMetadata': {'RequestId': '76801341-1c13-4bbf-8bd6-529503769d64',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:14 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '76801341-1c13-4bbf-8bd6-529503769d64'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/a6a7c495-3174-4013-9766-d80a84eae54d-UAT',\n",
" 'DataSetId': 'a6a7c495-3174-4013-9766-d80a84eae54d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/a6a7c495-3174-4013-9766-d80a84eae54d-UAT/ingestion/3771b5de-6eb6-4f46-8720-e37dc43be822',\n",
" 'IngestionId': '3771b5de-6eb6-4f46-8720-e37dc43be822',\n",
" 'RequestId': '76801341-1c13-4bbf-8bd6-529503769d64'},\n",
" {'ResponseMetadata': {'RequestId': 'a14270c9-067d-4990-ba94-e5197eb0c9fd',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:16 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': 'a14270c9-067d-4990-ba94-e5197eb0c9fd'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT',\n",
" 'DataSetId': '12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT/ingestion/2ccdfb62-2139-4047-8f74-b49404ed064c',\n",
" 'IngestionId': '2ccdfb62-2139-4047-8f74-b49404ed064c',\n",
" 'RequestId': 'a14270c9-067d-4990-ba94-e5197eb0c9fd'},\n",
" {'ResponseMetadata': {'RequestId': '24df983c-a8ad-463c-8798-e36bd70184fb',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:18 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '24df983c-a8ad-463c-8798-e36bd70184fb'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/384bc461-7de5-49de-ae6b-aa4ebfdf2ea2',\n",
" 'IngestionId': '384bc461-7de5-49de-ae6b-aa4ebfdf2ea2',\n",
" 'RequestId': '24df983c-a8ad-463c-8798-e36bd70184fb'},\n",
" {'ResponseMetadata': {'RequestId': 'a85ec5e4-e169-40f6-8685-b3f1feb74431',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:20 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': 'a85ec5e4-e169-40f6-8685-b3f1feb74431'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT',\n",
" 'DataSetId': '85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT/ingestion/b14d9b20-9fed-4b1f-baa8-e7b4897aaf46',\n",
" 'IngestionId': 'b14d9b20-9fed-4b1f-baa8-e7b4897aaf46',\n",
" 'RequestId': 'a85ec5e4-e169-40f6-8685-b3f1feb74431'},\n",
" {'ResponseMetadata': {'RequestId': '570daa5e-8ae0-470d-a598-bc4cb1032e5a',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:22 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '570daa5e-8ae0-470d-a598-bc4cb1032e5a'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/29c6e203-11db-44a3-89d6-d921a4c156cb',\n",
" 'IngestionId': '29c6e203-11db-44a3-89d6-d921a4c156cb',\n",
" 'RequestId': '570daa5e-8ae0-470d-a598-bc4cb1032e5a'},\n",
" {'ResponseMetadata': {'RequestId': '75558d1c-f5c3-40e4-a113-40b1ed0da3df',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:23 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '245',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '75558d1c-f5c3-40e4-a113-40b1ed0da3df'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/41dbfd62-bbc7-4516-ab6a-fa51278b9dca-UAT',\n",
" 'DataSetId': '41dbfd62-bbc7-4516-ab6a-fa51278b9dca-UAT',\n",
" 'RequestId': '75558d1c-f5c3-40e4-a113-40b1ed0da3df'},\n",
" {'ResponseMetadata': {'RequestId': '883a8d1a-9778-4918-82ae-c1635a9f5f7e',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:26 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '883a8d1a-9778-4918-82ae-c1635a9f5f7e'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/a2be4981-e676-4a58-b2c1-969585355b94',\n",
" 'IngestionId': 'a2be4981-e676-4a58-b2c1-969585355b94',\n",
" 'RequestId': '883a8d1a-9778-4918-82ae-c1635a9f5f7e'},\n",
" {'ResponseMetadata': {'RequestId': '68c66d1c-4d7c-4bdb-8993-9001ae142bbc',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:28 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '68c66d1c-4d7c-4bdb-8993-9001ae142bbc'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/fd093c9c-1152-487f-926c-0e780fa06bfc-UAT',\n",
" 'DataSetId': 'fd093c9c-1152-487f-926c-0e780fa06bfc-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/fd093c9c-1152-487f-926c-0e780fa06bfc-UAT/ingestion/25a3c097-8c13-44f6-8adb-837130dcd392',\n",
" 'IngestionId': '25a3c097-8c13-44f6-8adb-837130dcd392',\n",
" 'RequestId': '68c66d1c-4d7c-4bdb-8993-9001ae142bbc'},\n",
" {'ResponseMetadata': {'RequestId': 'cf6da11f-6cc4-4d40-ac7f-9c60cf146beb',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:30 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': 'cf6da11f-6cc4-4d40-ac7f-9c60cf146beb'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/a1d7f54f-9f07-46a8-bf3a-57ebeceed7f3',\n",
" 'IngestionId': 'a1d7f54f-9f07-46a8-bf3a-57ebeceed7f3',\n",
" 'RequestId': 'cf6da11f-6cc4-4d40-ac7f-9c60cf146beb'},\n",
" {'ResponseMetadata': {'RequestId': '02837d8b-c5da-495b-9b2b-68b4a3847e69',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:32 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '02837d8b-c5da-495b-9b2b-68b4a3847e69'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/68ee6c11-d7d8-462f-8321-66a909516ae9-UAT',\n",
" 'DataSetId': '68ee6c11-d7d8-462f-8321-66a909516ae9-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/68ee6c11-d7d8-462f-8321-66a909516ae9-UAT/ingestion/089f2f74-db03-4f7e-9640-8863417aed9f',\n",
" 'IngestionId': '089f2f74-db03-4f7e-9640-8863417aed9f',\n",
" 'RequestId': '02837d8b-c5da-495b-9b2b-68b4a3847e69'},\n",
" {'ResponseMetadata': {'RequestId': '170b076d-4901-49c8-9738-aabc3e272916',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:34 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '170b076d-4901-49c8-9738-aabc3e272916'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/9cfcc569-0eb1-4b11-a237-924858587e0d',\n",
" 'IngestionId': '9cfcc569-0eb1-4b11-a237-924858587e0d',\n",
" 'RequestId': '170b076d-4901-49c8-9738-aabc3e272916'},\n",
" {'ResponseMetadata': {'RequestId': '1ae2abca-9bfd-46ef-b567-cd304ff829d2',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:36 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '1ae2abca-9bfd-46ef-b567-cd304ff829d2'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT',\n",
" 'DataSetId': 'f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT/ingestion/c23f3a0a-6ea1-413e-bf9e-45341e76efdc',\n",
" 'IngestionId': 'c23f3a0a-6ea1-413e-bf9e-45341e76efdc',\n",
" 'RequestId': '1ae2abca-9bfd-46ef-b567-cd304ff829d2'},\n",
" {'ResponseMetadata': {'RequestId': 'df49719d-6ab9-4d1b-b9f5-1274c0e311ae',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:38 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '245',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': 'df49719d-6ab9-4d1b-b9f5-1274c0e311ae'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/5287927a-02d2-4a1a-8f29-3c1f6c724309-UAT',\n",
" 'DataSetId': '5287927a-02d2-4a1a-8f29-3c1f6c724309-UAT',\n",
" 'RequestId': 'df49719d-6ab9-4d1b-b9f5-1274c0e311ae'},\n",
" {'ResponseMetadata': {'RequestId': '4f5022e8-417f-48cb-9ebe-3443c41b39b0',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:40 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '4f5022e8-417f-48cb-9ebe-3443c41b39b0'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'DataSetId': '02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/02f11126-608f-4b6c-8ec5-e29f8e29dc8d-UAT/ingestion/5c5f2983-5112-492b-9ed9-cbc7f1b1a363',\n",
" 'IngestionId': '5c5f2983-5112-492b-9ed9-cbc7f1b1a363',\n",
" 'RequestId': '4f5022e8-417f-48cb-9ebe-3443c41b39b0'},\n",
" {'ResponseMetadata': {'RequestId': '37bc8a2a-4a99-443f-b9a6-c255ee476bfc',\n",
" 'HTTPStatusCode': 200,\n",
" 'HTTPHeaders': {'date': 'Fri, 22 Oct 2021 16:57:41 GMT',\n",
" 'content-type': 'application/json',\n",
" 'content-length': '414',\n",
" 'connection': 'keep-alive',\n",
" 'x-amzn-requestid': '37bc8a2a-4a99-443f-b9a6-c255ee476bfc'},\n",
" 'RetryAttempts': 0},\n",
" 'Status': 200,\n",
" 'Arn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT',\n",
" 'DataSetId': '1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT',\n",
" 'IngestionArn': 'arn:aws:quicksight:us-east-1:233081732471:dataset/1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT/ingestion/8e5aeaf3-27e7-4e6f-8afa-f536e8b25a7d',\n",
" 'IngestionId': '8e5aeaf3-27e7-4e6f-8afa-f536e8b25a7d',\n",
" 'RequestId': '37bc8a2a-4a99-443f-b9a6-c255ee476bfc'}]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"newsetslist"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"faillist"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"#print fail informations\n",
"with open(faillocation+now+'Dataset_Creation_Error.json', \"w\") as f:\n",
" json.dump(faillist, f, indent=4, sort_keys=True, default=str)\n",
"\n",
"successfulls=[]\n",
"for news in newsetslist:\n",
" dataset=describe_dataset(targetsession, news['DataSetId'])\n",
" successfulls.append(dataset['DataSet'])\n",
" \n",
"with open(successlocation+now+'Datasets_Creation_Success.json', \"w\") as f:\n",
" json.dump(successfulls, f, indent=4, sort_keys=True, default=str)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get themes list"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"themes_list_complete =themes(sourcesession)\n",
"themes_list=[]\n",
"#JSON(datasets)\n",
"for th in themes_list_complete:\n",
" if th[\"Name\"] in theme_deploy_list:\n",
" themes_list.append(th)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Deploy Themes"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"#get themes which already deployed\n",
"targetthemes=themes(targetsession)\n",
"#already_deployed record the datasets ids of target account\n",
"already_deployed=[]\n",
"for th in targetthemes:\n",
" already_deployed.append(th['ThemeId'])\n",
"#already_deployed"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"newthemeslist=[]\n",
"faillist=[]\n",
"sts_client = targetsession.client(\"sts\")\n",
"account_id = sts_client.get_caller_identity()[\"Account\"]\n",
"for i in themes_list:\n",
" if i['ThemeId'] not in already_deployed:\n",
" try:\n",
" res=describe_theme(sourcesession, i['ThemeId'])\n",
" except Exception:\n",
" faillist.append({\"Theme\": i, \"Error\": str(Exception)})\n",
" continue\n",
" THEMEID=res['Theme']['ThemeId']\n",
" Name=res['Theme']['Name']\n",
" BaseThemeId=res['Theme']['Version']['BaseThemeId']\n",
" Configuration=res['Theme']['Version']['Configuration']\n",
" try: \n",
" newtheme=create_theme (targetsession,THEMEID, Name,BaseThemeId,Configuration)\n",
" newthemeslist.append(newtheme)\n",
" except Exception as e:\n",
" #print('failed: '+str(e))\n",
" faillist.append({\"ThemeID\": THEMEID, \"Name\": Name, \"Error\": str(e)})\n",
" continue\n",
" try:\n",
" update_theme_permissions(targetsession, THEMEID, targetadmin)\n",
" except Exception as e:\n",
" #print('failed: '+str(e))\n",
" faillist.append({\"ThemeID\": THEMEID, \"Name\": Name, \"Error\": str(e)})\n",
" continue"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"#print fail informations\n",
"with open(faillocation+now+'Themes_Creation_Error.json', \"w\") as f:\n",
" json.dump(faillist, f, indent=4, sort_keys=True, default=str)\n",
"\n",
"successfulls=[]\n",
"for news in newthemeslist:\n",
" theme=describe_theme(targetsession, news['ThemeId'])\n",
" successfulls.append(theme['Theme']['ThemeId'])\n",
" \n",
"with open(successlocation+now+'Themes_Creation_Success.json', \"w\") as f:\n",
" json.dump(successfulls, f, indent=4, sort_keys=True, default=str)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get analysis"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"sourceanalysis_list_complete=analysis(sourcesession)\n",
"sourceanalysis_list=[]\n",
"for a in sourceanalysis_list_complete:\n",
" if a[\"Name\"] in analysis_deploy_list:\n",
" sourceanalysis_list.append(a)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/02836ee7-65ec-4439-91df-2a7c00069e41',\n",
" 'AnalysisId': '02836ee7-65ec-4439-91df-2a7c00069e41',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 22, 19, 47, 24, 135000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 22, 19, 47, 24, 135000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/06160945-c539-4aa9-9dd7-569bd206e53e',\n",
" 'AnalysisId': '06160945-c539-4aa9-9dd7-569bd206e53e',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 25, 22, 16, 26, 473000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 25, 22, 16, 26, 473000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/079bbebd-53a2-4b55-9a0b-dd195437863c',\n",
" 'AnalysisId': '079bbebd-53a2-4b55-9a0b-dd195437863c',\n",
" 'Name': 'pilot demo free form layout test',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 6, 17, 22, 40, 456000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 12, 18, 30, 14, 284000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/085e06dc-0052-4958-b072-9ae7e4a70b48',\n",
" 'AnalysisId': '085e06dc-0052-4958-b072-9ae7e4a70b48',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 3, 19, 19, 19, 38, 156000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 3, 19, 19, 19, 38, 156000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/095756a0-874c-4051-ba88-ab545799edd6',\n",
" 'AnalysisId': '095756a0-874c-4051-ba88-ab545799edd6',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 3, 19, 19, 19, 38, 137000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 3, 19, 19, 19, 38, 137000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/0a718d01-fba1-4b04-a9e4-e38d3e58873c',\n",
" 'AnalysisId': '0a718d01-fba1-4b04-a9e4-e38d3e58873c',\n",
" 'Name': 'dataset_date_range analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 28, 19, 1, 36, 137000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 28, 19, 1, 41, 238000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/0a73851a-a6f6-46e4-b587-5d845f396919',\n",
" 'AnalysisId': '0a73851a-a6f6-46e4-b587-5d845f396919',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 16, 3, 42, 11, 479000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 16, 3, 42, 11, 479000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/0c439e8e-692e-434c-8aad-d8e2b4a4a6e4',\n",
" 'AnalysisId': '0c439e8e-692e-434c-8aad-d8e2b4a4a6e4',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 30, 29, 935000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 30, 29, 935000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/0dd49adc-1b25-40ca-aa96-f2fb51a58ea9',\n",
" 'AnalysisId': '0dd49adc-1b25-40ca-aa96-f2fb51a58ea9',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 6, 12, 29, 55, 921000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 6, 12, 29, 55, 921000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/140a34ec-711b-412a-aff6-19cb8b0311f0',\n",
" 'AnalysisId': '140a34ec-711b-412a-aff6-19cb8b0311f0',\n",
" 'Name': 'qs_geofence-UAT analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 11, 18, 1, 12, 506000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 11, 18, 4, 9, 156000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/15432d83-3fd5-4204-a70e-cebbf2af1d29',\n",
" 'AnalysisId': '15432d83-3fd5-4204-a70e-cebbf2af1d29',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 16, 3, 42, 11, 248000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 16, 3, 50, 33, 535000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/1a84c53a-38c1-47c0-ab3a-6f098b184897',\n",
" 'AnalysisId': '1a84c53a-38c1-47c0-ab3a-6f098b184897',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 5, 0, 13, 47, 523000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 5, 0, 13, 47, 523000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/1c0f3212-d0f8-40bf-a344-e19ba9690b9b',\n",
" 'AnalysisId': '1c0f3212-d0f8-40bf-a344-e19ba9690b9b',\n",
" 'Name': 'pilot_demo',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 3, 3, 20, 8, 51, 227000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 22, 16, 43, 12, 371000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/1dae0c01-3f8a-41ca-8bab-1360c96d38e7',\n",
" 'AnalysisId': '1dae0c01-3f8a-41ca-8bab-1360c96d38e7',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 8, 20, 20, 42, 413000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 8, 20, 20, 42, 413000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/1e59d6dc-8215-4828-82dc-e8f7d7a25698',\n",
" 'AnalysisId': '1e59d6dc-8215-4828-82dc-e8f7d7a25698',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 4, 23, 56, 47, 373000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 4, 23, 56, 47, 373000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/1f6a5ebe-97a2-488d-83b5-53ec4ac61674',\n",
" 'AnalysisId': '1f6a5ebe-97a2-488d-83b5-53ec4ac61674',\n",
" 'Name': 'qs_fuel analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 24, 19, 7, 18, 811000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 24, 19, 7, 40, 458000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/1fd8ab50-fc0b-4ec8-8a10-edec954580b2',\n",
" 'AnalysisId': '1fd8ab50-fc0b-4ec8-8a10-edec954580b2',\n",
" 'Name': 'Power BI Dashboard Analysis 1.xlsx analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 29, 14, 28, 14, 747000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 30, 18, 19, 37, 548000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/2241e9df-7b7a-466d-a07b-3c5e59a649b4',\n",
" 'AnalysisId': '2241e9df-7b7a-466d-a07b-3c5e59a649b4',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 4, 23, 56, 47, 816000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 4, 23, 56, 47, 816000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/2261761c-02a4-4548-9b76-e1712cbbe0ad',\n",
" 'AnalysisId': '2261761c-02a4-4548-9b76-e1712cbbe0ad',\n",
" 'Name': 'qs_software analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 1, 20, 58, 37, 648000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 1, 21, 6, 37, 684000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/2286fae2-84a8-4239-9f31-9c735b56f195',\n",
" 'AnalysisId': '2286fae2-84a8-4239-9f31-9c735b56f195',\n",
" 'Name': 'Power BI Report A working copy (final).xlsx analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 28, 14, 59, 53, 747000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 28, 14, 59, 53, 747000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/2472ea65-71b0-4ab2-8747-f03839da06e0',\n",
" 'AnalysisId': '2472ea65-71b0-4ab2-8747-f03839da06e0',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 8, 20, 20, 42, 521000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 8, 20, 20, 42, 521000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/24933719-d328-40ea-9f08-4fb211b3ba4f',\n",
" 'AnalysisId': '24933719-d328-40ea-9f08-4fb211b3ba4f',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 18, 17, 42, 429000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 18, 17, 42, 429000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/263c8ae4-f7a2-4701-9b5e-8272b5f85d6a',\n",
" 'AnalysisId': '263c8ae4-f7a2-4701-9b5e-8272b5f85d6a',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 13, 20, 9, 32, 951000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 13, 20, 9, 32, 951000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/27560879-45fb-40c9-8d6c-b3e60192ecb4',\n",
" 'AnalysisId': '27560879-45fb-40c9-8d6c-b3e60192ecb4',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 43, 10, 476000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 43, 10, 476000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/29d9c553-cc10-4582-834c-a22e397a4733',\n",
" 'AnalysisId': '29d9c553-cc10-4582-834c-a22e397a4733',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 26, 16, 9, 48, 642000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 26, 16, 9, 48, 642000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/2b6001f9-7025-4ea4-944a-d93bc07ddb07',\n",
" 'AnalysisId': '2b6001f9-7025-4ea4-944a-d93bc07ddb07',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 5, 17, 37, 21, 853000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 27, 996000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/2ceadff5-234a-4917-b95f-0daf4f2844d3',\n",
" 'AnalysisId': '2ceadff5-234a-4917-b95f-0daf4f2844d3',\n",
" 'Name': 'Patient-Info (1).csv analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 21, 17, 18, 19, 843000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 21, 17, 18, 19, 843000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/2d5d7bf8-164e-4be3-a03b-f789ed17eb51',\n",
" 'AnalysisId': '2d5d7bf8-164e-4be3-a03b-f789ed17eb51',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 25, 22, 16, 26, 617000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 25, 22, 16, 26, 617000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/30060664-7e13-4696-b1aa-423d1c473fdd',\n",
" 'AnalysisId': '30060664-7e13-4696-b1aa-423d1c473fdd',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 25, 22, 15, 1, 82000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 25, 22, 15, 1, 82000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/311dafcc-4883-49dc-b29e-ce00d95bec55',\n",
" 'AnalysisId': '311dafcc-4883-49dc-b29e-ce00d95bec55',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 30, 29, 917000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 30, 29, 917000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/31285179-42be-41e2-a4b5-e39dfce27645',\n",
" 'AnalysisId': '31285179-42be-41e2-a4b5-e39dfce27645',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 13, 20, 9, 32, 939000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 13, 20, 9, 32, 939000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/32d3d333-d2b2-4a90-b379-e5d12e955710',\n",
" 'AnalysisId': '32d3d333-d2b2-4a90-b379-e5d12e955710',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 6, 17, 7, 52, 597000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 5, 6, 17, 7, 52, 597000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/35e459b6-b3ca-4a17-8fbf-25077ef5392c',\n",
" 'AnalysisId': '35e459b6-b3ca-4a17-8fbf-25077ef5392c',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 6, 12, 29, 55, 406000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 6, 12, 29, 55, 406000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/36198b49-e757-4b26-b007-148605488121',\n",
" 'AnalysisId': '36198b49-e757-4b26-b007-148605488121',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 28, 21, 50, 23, 30000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 28, 21, 50, 23, 30000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/3898ddc8-103b-4808-bb0b-52d3f745d3a0',\n",
" 'AnalysisId': '3898ddc8-103b-4808-bb0b-52d3f745d3a0',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 22, 18, 42, 3, 431000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 22, 18, 42, 3, 431000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/3c1ddd60-6e34-4bd7-919d-6acd1b57abbd',\n",
" 'AnalysisId': '3c1ddd60-6e34-4bd7-919d-6acd1b57abbd',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 25, 14, 26, 35, 453000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 25, 14, 26, 35, 453000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/3f18c647-0651-4c1b-bf7a-b983d5d441b9',\n",
" 'AnalysisId': '3f18c647-0651-4c1b-bf7a-b983d5d441b9',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 13, 20, 12, 33, 578000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 13, 20, 12, 33, 578000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/41417869-1029-4fa8-81c3-be2af0d1e5b7',\n",
" 'AnalysisId': '41417869-1029-4fa8-81c3-be2af0d1e5b7',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 5, 17, 37, 21, 838000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 31, 342000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/4222159f-3cc2-438e-a762-beb95f548d9b',\n",
" 'AnalysisId': '4222159f-3cc2-438e-a762-beb95f548d9b',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 25, 22, 16, 26, 521000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 25, 22, 16, 26, 521000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/4445e35a-1a71-4cb6-a0df-c16448adf826',\n",
" 'AnalysisId': '4445e35a-1a71-4cb6-a0df-c16448adf826',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 22, 18, 42, 4, 305000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 22, 18, 42, 4, 305000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/4501598a-75fe-4f9b-b19f-7f79c1ece711',\n",
" 'AnalysisId': '4501598a-75fe-4f9b-b19f-7f79c1ece711',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 16, 19, 13, 268000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 16, 19, 13, 268000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/46ca4dc0-c954-44c4-826e-93c450211461-HF',\n",
" 'AnalysisId': '46ca4dc0-c954-44c4-826e-93c450211461-HF',\n",
" 'Name': 'Dealer Analytic Dashboard-HF',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 29, 17, 4, 24, 555000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 5, 16, 27, 0, 308000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/47308737-a152-4248-88b8-e3a3117fb000',\n",
" 'AnalysisId': '47308737-a152-4248-88b8-e3a3117fb000',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 26, 16, 9, 48, 649000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 26, 16, 9, 48, 649000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/47f24812-6f72-4e73-9db3-6dd681870226',\n",
" 'AnalysisId': '47f24812-6f72-4e73-9db3-6dd681870226',\n",
" 'Name': 'Patient-Info (1).csv analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 21, 17, 21, 53, 263000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 21, 17, 29, 36, 788000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/48a5da12-0d84-4753-8e03-6c14701afb91',\n",
" 'AnalysisId': '48a5da12-0d84-4753-8e03-6c14701afb91',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 6, 17, 7, 52, 675000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 5, 6, 17, 7, 52, 675000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/494f4e05-aa93-4ff0-9f88-35fd8b3f188e',\n",
" 'AnalysisId': '494f4e05-aa93-4ff0-9f88-35fd8b3f188e',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 6, 17, 7, 53, 19000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 5, 6, 17, 7, 53, 19000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/4b554d85-32c8-4049-83c0-eb2584a48801',\n",
" 'AnalysisId': '4b554d85-32c8-4049-83c0-eb2584a48801',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 13, 20, 9, 33, 37000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 13, 20, 9, 33, 37000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/4dc23ab3-c45c-4a73-902a-4286eba15eb1',\n",
" 'AnalysisId': '4dc23ab3-c45c-4a73-902a-4286eba15eb1',\n",
" 'Name': 'dataset-geofence-vfs analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 23, 0, 24, 57, 641000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 23, 0, 25, 2, 209000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/4ee0c10d-6d3a-426d-95fe-140e34fcd67a',\n",
" 'AnalysisId': '4ee0c10d-6d3a-426d-95fe-140e34fcd67a',\n",
" 'Name': 'qs_software analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 11, 19, 32, 55, 435000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 11, 19, 33, 6, 363000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5025c0b7-4a24-449a-be25-3be16b49ec62',\n",
" 'AnalysisId': '5025c0b7-4a24-449a-be25-3be16b49ec62',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 1, 44, 28, 793000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 1, 44, 28, 793000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/50ea63a1-43e0-42e0-89f3-d4a49db0a665',\n",
" 'AnalysisId': '50ea63a1-43e0-42e0-89f3-d4a49db0a665',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 22, 19, 47, 23, 918000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 22, 19, 47, 23, 918000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/52685ca0-7168-4bb4-985f-845282a96c83',\n",
" 'AnalysisId': '52685ca0-7168-4bb4-985f-845282a96c83',\n",
" 'Name': 'selection retain test',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 14, 21, 10, 55, 866000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 14, 21, 10, 55, 866000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/52c7f74a-8520-4e08-9a44-83e7e6f1d59e',\n",
" 'AnalysisId': '52c7f74a-8520-4e08-9a44-83e7e6f1d59e',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 1, 18, 14, 29, 454000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 1, 18, 14, 29, 454000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/537e9157-d976-455a-b875-91e07e887f03',\n",
" 'AnalysisId': '537e9157-d976-455a-b875-91e07e887f03',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 5, 0, 45, 57, 245000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 5, 0, 45, 57, 245000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/547007ce-94da-4de1-8bc9-03421e3550d5',\n",
" 'AnalysisId': '547007ce-94da-4de1-8bc9-03421e3550d5',\n",
" 'Name': 'David Practice Analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 25, 17, 22, 32, 898000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 31, 18, 48, 41, 505000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/54b1a622-59a8-40ed-a13d-9c9e0f8d1e2d',\n",
" 'AnalysisId': '54b1a622-59a8-40ed-a13d-9c9e0f8d1e2d',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 6, 12, 29, 55, 137000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 6, 12, 29, 55, 137000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5500f1ce-2da0-4bfc-a37a-0c4c2a9f2ca6',\n",
" 'AnalysisId': '5500f1ce-2da0-4bfc-a37a-0c4c2a9f2ca6',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 16, 19, 13, 202000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 16, 19, 13, 202000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/559482cb-e220-455b-b0b9-4d23d6e324e4',\n",
" 'AnalysisId': '559482cb-e220-455b-b0b9-4d23d6e324e4',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 2, 18, 36, 974000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 2, 18, 36, 974000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/56630b1f-3c98-4131-9150-bdce37b5e5e0',\n",
" 'AnalysisId': '56630b1f-3c98-4131-9150-bdce37b5e5e0',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 3, 17, 11, 263000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 3, 17, 11, 263000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/56efe8dd-79c9-4ed4-9d7e-f3445e1aab46',\n",
" 'AnalysisId': '56efe8dd-79c9-4ed4-9d7e-f3445e1aab46',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 5, 0, 45, 57, 281000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 5, 0, 45, 57, 281000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/57e3b87f-77c4-4a46-934a-1325be1e55d0',\n",
" 'AnalysisId': '57e3b87f-77c4-4a46-934a-1325be1e55d0',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 28, 21, 50, 23, 181000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 28, 21, 50, 23, 181000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5887366b-cb00-4c73-a48a-efecd8c85950',\n",
" 'AnalysisId': '5887366b-cb00-4c73-a48a-efecd8c85950',\n",
" 'Name': 'dataset - info analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 27, 1, 21, 27, 177000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 27, 1, 21, 30, 263000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5c835d80-8a07-4eaf-ab7e-6323c3d1ebd2',\n",
" 'AnalysisId': '5c835d80-8a07-4eaf-ab7e-6323c3d1ebd2',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 25, 14, 26, 35, 619000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 25, 14, 26, 35, 619000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5cd4f7bd-717d-4c61-9b16-489d5902ee3d',\n",
" 'AnalysisId': '5cd4f7bd-717d-4c61-9b16-489d5902ee3d',\n",
" 'Name': 'data1.xlsx analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 28, 17, 47, 38, 443000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 28, 17, 51, 18, 106000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5ce660b1-b1fe-4c73-9c29-91853d4ed3b2',\n",
" 'AnalysisId': '5ce660b1-b1fe-4c73-9c29-91853d4ed3b2',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 19, 12, 36, 0, 982000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 19, 12, 36, 0, 982000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5e0bfb92-ef46-4ce1-8109-051b720b68b7',\n",
" 'AnalysisId': '5e0bfb92-ef46-4ce1-8109-051b720b68b7',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 25, 22, 15, 1, 256000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 25, 22, 15, 1, 256000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5e632b6a-f4dd-4c8a-b15e-571e4677f7b2',\n",
" 'AnalysisId': '5e632b6a-f4dd-4c8a-b15e-571e4677f7b2',\n",
" 'Name': 'vehicle_fault_aggregation analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 6, 18, 4, 30, 184000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 49, 482000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/5f30ad25-8591-469f-b72e-64bea65235a2',\n",
" 'AnalysisId': '5f30ad25-8591-469f-b72e-64bea65235a2',\n",
" 'Name': 'dev_dealer_dashboard',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 24, 13, 40, 1, 653000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 13, 122000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/60d0ac67-5887-421f-b169-02ae80ed47b7',\n",
" 'AnalysisId': '60d0ac67-5887-421f-b169-02ae80ed47b7',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 5, 0, 13, 47, 362000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 5, 0, 13, 47, 362000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/628f22cf-bc1e-43a1-8a30-3354ccb6b077',\n",
" 'AnalysisId': '628f22cf-bc1e-43a1-8a30-3354ccb6b077',\n",
" 'Name': 'patient_info analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 5, 16, 6, 11, 687000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 5, 17, 47, 47, 232000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/62caacda-7837-40c1-8aa6-710e0fa623eb',\n",
" 'AnalysisId': '62caacda-7837-40c1-8aa6-710e0fa623eb',\n",
" 'Name': 'qs_fuel analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 8, 15, 8, 22, 528000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 29, 13, 56, 2, 386000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/65042f5b-6a8f-4832-ad89-c3f9a43d606f',\n",
" 'AnalysisId': '65042f5b-6a8f-4832-ad89-c3f9a43d606f',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 13, 20, 12, 33, 608000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 13, 20, 12, 33, 608000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/66ddec39-19e6-48a4-83fc-49af748309ba',\n",
" 'AnalysisId': '66ddec39-19e6-48a4-83fc-49af748309ba',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 1, 44, 28, 531000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 1, 44, 28, 531000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/675c486b-1236-43e1-9c89-356cb41f16d4',\n",
" 'AnalysisId': '675c486b-1236-43e1-9c89-356cb41f16d4',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 16, 3, 42, 11, 250000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 16, 3, 42, 11, 250000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/67b381be-5dda-41ed-bc36-8e4a0a720e50',\n",
" 'AnalysisId': '67b381be-5dda-41ed-bc36-8e4a0a720e50',\n",
" 'Name': 'qs_geofence analysis test',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 11, 18, 48, 51, 642000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 14, 21, 9, 57, 848000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/6849f762-3ffa-4923-9fc3-9e90a5a5679b',\n",
" 'AnalysisId': '6849f762-3ffa-4923-9fc3-9e90a5a5679b',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 1, 18, 14, 29, 479000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 1, 18, 14, 29, 479000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/69160007-cbf9-4f10-8b54-72d6e8801ce1',\n",
" 'AnalysisId': '69160007-cbf9-4f10-8b54-72d6e8801ce1',\n",
" 'Name': 'qs_fuel analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 1, 21, 8, 15, 24000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 1, 21, 8, 24, 251000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/69b0dfd7-d679-4fe8-8227-028d9776dd5d',\n",
" 'AnalysisId': '69b0dfd7-d679-4fe8-8227-028d9776dd5d',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 5, 0, 13, 47, 367000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 5, 0, 13, 47, 367000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/6c7d9d07-e288-4672-ade6-278ecb72721c',\n",
" 'AnalysisId': '6c7d9d07-e288-4672-ade6-278ecb72721c',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 28, 21, 11, 19, 916000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 28, 21, 11, 19, 916000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/6cdd99e4-ec02-416c-b512-cf51437416ce',\n",
" 'AnalysisId': '6cdd99e4-ec02-416c-b512-cf51437416ce',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 1, 44, 28, 412000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 1, 44, 28, 412000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/6d6d41bb-da50-4e3a-aaa8-482e05261f62',\n",
" 'AnalysisId': '6d6d41bb-da50-4e3a-aaa8-482e05261f62',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 16, 19, 13, 262000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 16, 19, 13, 262000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/70a21d6d-c537-48a4-8a04-9525e90a4724',\n",
" 'AnalysisId': '70a21d6d-c537-48a4-8a04-9525e90a4724',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 43, 10, 330000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 43, 10, 330000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/70d5b5c0-01ab-4ce5-950f-2284a1083b2c',\n",
" 'AnalysisId': '70d5b5c0-01ab-4ce5-950f-2284a1083b2c',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 3, 17, 11, 420000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 3, 17, 11, 420000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/726c1677-ad7d-4e8f-b68a-87bbeea80600',\n",
" 'AnalysisId': '726c1677-ad7d-4e8f-b68a-87bbeea80600',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 25, 22, 15, 1, 28000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 25, 22, 15, 1, 28000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/72fc4727-aeae-4562-8d9e-e3e90b575cce',\n",
" 'AnalysisId': '72fc4727-aeae-4562-8d9e-e3e90b575cce',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 28, 21, 50, 23, 68000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 28, 21, 50, 23, 68000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/732b434a-4529-4a66-a26f-53e4922ce570',\n",
" 'AnalysisId': '732b434a-4529-4a66-a26f-53e4922ce570',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 19, 12, 36, 1, 90000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 19, 12, 36, 1, 90000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/77432016-61fe-4644-af17-dedd906e6154',\n",
" 'AnalysisId': '77432016-61fe-4644-af17-dedd906e6154',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 30, 30, 147000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 30, 30, 147000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/77c6a508-b365-42af-9e67-b20318a57cbe',\n",
" 'AnalysisId': '77c6a508-b365-42af-9e67-b20318a57cbe',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 22, 18, 42, 3, 491000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 22, 18, 42, 3, 491000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/7ca42cb7-cc56-4800-bbb3-b95e502e1afa',\n",
" 'AnalysisId': '7ca42cb7-cc56-4800-bbb3-b95e502e1afa',\n",
" 'Name': 'qs_not_reporting analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 1, 20, 53, 17, 866000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 1, 21, 6, 33, 77000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/7da89102-c503-4438-8b83-37f1a309ff0b',\n",
" 'AnalysisId': '7da89102-c503-4438-8b83-37f1a309ff0b',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 25, 22, 16, 26, 451000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 25, 22, 16, 26, 451000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/81c8c63d-1640-4731-bf8e-768d733d5d96',\n",
" 'AnalysisId': '81c8c63d-1640-4731-bf8e-768d733d5d96',\n",
" 'Name': 'qs_fuel analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 24, 19, 7, 53, 253000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 24, 19, 9, 15, 149000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/8821899a-525a-4581-84b3-2429661a1ae0',\n",
" 'AnalysisId': '8821899a-525a-4581-84b3-2429661a1ae0',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 13, 20, 12, 33, 591000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 13, 20, 12, 33, 591000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/894e4556-8baa-4a2b-bffa-f3ed95f173d4',\n",
" 'AnalysisId': '894e4556-8baa-4a2b-bffa-f3ed95f173d4',\n",
" 'Name': 'pilot demo IN DEV',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 29, 0, 2, 24, 904000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 29, 17, 39, 23, 594000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/8cd7ee96-ee50-45ab-ae16-90bbe3460999',\n",
" 'AnalysisId': '8cd7ee96-ee50-45ab-ae16-90bbe3460999',\n",
" 'Name': 'qs_fuel analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 3, 17, 26, 48, 936000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 16, 34, 139000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/8d4577b9-cad2-4e0b-86db-bdf4f55de192',\n",
" 'AnalysisId': '8d4577b9-cad2-4e0b-86db-bdf4f55de192',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 19, 12, 36, 1, 79000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 19, 12, 36, 1, 79000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/92b59cbd-c827-425d-be49-339ee0b3343a',\n",
" 'AnalysisId': '92b59cbd-c827-425d-be49-339ee0b3343a',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 5, 0, 45, 57, 270000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 5, 0, 45, 57, 270000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/92c1cf57-b6bd-418d-8d2b-eb1e8788d52c',\n",
" 'AnalysisId': '92c1cf57-b6bd-418d-8d2b-eb1e8788d52c',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 6, 12, 30, 27, 167000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 6, 12, 30, 27, 167000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/92e72fe7-7d3d-4773-bb17-daef15eb1344',\n",
" 'AnalysisId': '92e72fe7-7d3d-4773-bb17-daef15eb1344',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 22, 19, 47, 23, 974000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 22, 19, 47, 23, 974000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9437f171-a21f-45ee-bdd0-86491a807906',\n",
" 'AnalysisId': '9437f171-a21f-45ee-bdd0-86491a807906',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 16, 19, 13, 214000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 16, 19, 13, 214000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/95214cf2-3518-4fe4-96fc-76917019e7c4',\n",
" 'AnalysisId': '95214cf2-3518-4fe4-96fc-76917019e7c4',\n",
" 'Name': 'qs_geofence analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 11, 18, 20, 54, 247000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 11, 18, 23, 2, 271000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/97dd320a-7b00-4b55-af62-c57db8a35753',\n",
" 'AnalysisId': '97dd320a-7b00-4b55-af62-c57db8a35753',\n",
" 'Name': 'Patient-Info.csv analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 21, 17, 20, 8, 280000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 21, 17, 20, 8, 280000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/981cf1fc-1314-48a7-a6be-e321e175b423',\n",
" 'AnalysisId': '981cf1fc-1314-48a7-a6be-e321e175b423',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 6, 17, 7, 52, 550000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 5, 6, 17, 7, 52, 550000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9a4003d3-034c-4627-8990-db5819dab8b4',\n",
" 'AnalysisId': '9a4003d3-034c-4627-8990-db5819dab8b4',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 26, 16, 9, 48, 522000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 26, 16, 9, 48, 522000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9b15699d-b371-408f-9448-b427e431a043',\n",
" 'AnalysisId': '9b15699d-b371-408f-9448-b427e431a043',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 28, 21, 50, 22, 920000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 28, 21, 50, 22, 920000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9b3ea876-815d-48df-84aa-336f15642f25',\n",
" 'AnalysisId': '9b3ea876-815d-48df-84aa-336f15642f25',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 7, 19, 27, 34, 536000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 7, 19, 27, 34, 536000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9b5b4a25-6f4d-48c0-915c-2bcf4bab00e2',\n",
" 'AnalysisId': '9b5b4a25-6f4d-48c0-915c-2bcf4bab00e2',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 5, 17, 37, 22, 163000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 21, 761000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9c0e5dc1-e2ec-4fad-a518-819be35e0d43-HF',\n",
" 'AnalysisId': '9c0e5dc1-e2ec-4fad-a518-819be35e0d43-HF',\n",
" 'Name': 'Dealer Analytics Dashboard-HF',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 29, 1, 45, 44, 189000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 29, 17, 6, 11, 268000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9c9f5d3a-64e9-45c9-88a7-93bfdb035cb8',\n",
" 'AnalysisId': '9c9f5d3a-64e9-45c9-88a7-93bfdb035cb8',\n",
" 'Name': 'qs_veh_dimension analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 14, 19, 5, 37, 934000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 14, 19, 5, 37, 934000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9e965735-9278-4c36-906b-a9a7c40d9668',\n",
" 'AnalysisId': '9e965735-9278-4c36-906b-a9a7c40d9668',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 18, 17, 42, 170000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 18, 17, 42, 170000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9ed97e51-92fe-4e75-98e9-26f562e16521',\n",
" 'AnalysisId': '9ed97e51-92fe-4e75-98e9-26f562e16521',\n",
" 'Name': 'rls.xlsx analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 11, 18, 56, 11, 638000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 11, 18, 56, 37, 815000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9f1ae8e1-57f9-4f5d-be16-5e8f05a242dd',\n",
" 'AnalysisId': '9f1ae8e1-57f9-4f5d-be16-5e8f05a242dd',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 7, 19, 27, 34, 730000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 7, 19, 27, 34, 730000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/9fc1e892-0793-4b7f-b5f5-36b6687cba34',\n",
" 'AnalysisId': '9fc1e892-0793-4b7f-b5f5-36b6687cba34',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 13, 20, 9, 33, 48000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 13, 20, 9, 33, 48000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/a1756e93-8265-467f-a6a6-9641fd4c937c',\n",
" 'AnalysisId': 'a1756e93-8265-467f-a6a6-9641fd4c937c',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 6, 12, 30, 27, 463000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 6, 12, 30, 27, 463000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/a2c4fdfb-54dd-456d-a63f-2a644dd576a9-HF',\n",
" 'AnalysisId': 'a2c4fdfb-54dd-456d-a63f-2a644dd576a9-HF',\n",
" 'Name': 'Dealer Analytics Dashboard-HF',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 28, 18, 16, 46, 474000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 29, 1, 35, 55, 902000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/a877cdd2-dbb8-4f12-81af-f35f21a0b511',\n",
" 'AnalysisId': 'a877cdd2-dbb8-4f12-81af-f35f21a0b511',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 18, 17, 42, 208000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 18, 17, 42, 208000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/aaa6a4e9-ac9d-49f1-86be-cd073f995f06',\n",
" 'AnalysisId': 'aaa6a4e9-ac9d-49f1-86be-cd073f995f06',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 2, 18, 37, 108000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 2, 18, 37, 108000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/af424048-6fee-4a89-af94-c85d44d62bdd',\n",
" 'AnalysisId': 'af424048-6fee-4a89-af94-c85d44d62bdd',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 1, 18, 14, 29, 542000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 1, 18, 14, 29, 542000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/af60deb5-fc90-4fe2-a35b-521e0fa954d9',\n",
" 'AnalysisId': 'af60deb5-fc90-4fe2-a35b-521e0fa954d9',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 6, 12, 30, 27, 65000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 6, 12, 30, 27, 65000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/b1c3799c-3437-44a0-95b4-aecfc8dad760',\n",
" 'AnalysisId': 'b1c3799c-3437-44a0-95b4-aecfc8dad760',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 2, 30, 48, 325000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 2, 30, 48, 325000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/b49eb47b-716c-4eff-a798-97f5fa940c57',\n",
" 'AnalysisId': 'b49eb47b-716c-4eff-a798-97f5fa940c57',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 8, 20, 20, 42, 328000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 8, 20, 20, 42, 328000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/b4edcbcc-fddb-4703-a17a-105bcc898448',\n",
" 'AnalysisId': 'b4edcbcc-fddb-4703-a17a-105bcc898448',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 28, 21, 11, 20, 46000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 28, 21, 11, 20, 46000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/b70e23ef-3818-4be7-a15c-77b317380a6f',\n",
" 'AnalysisId': 'b70e23ef-3818-4be7-a15c-77b317380a6f',\n",
" 'Name': 'sales.xlsx analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 12, 0, 7, 36, 931000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 12, 0, 7, 36, 931000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/bb4e6be3-5d23-447f-8fc4-5479b8ac8bc8',\n",
" 'AnalysisId': 'bb4e6be3-5d23-447f-8fc4-5479b8ac8bc8',\n",
" 'Name': 'fuel_test analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 24, 19, 24, 33, 495000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 27, 15, 4, 42, 425000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/bbe3693e-ba05-4ff9-a3e7-441c191e4e3b',\n",
" 'AnalysisId': 'bbe3693e-ba05-4ff9-a3e7-441c191e4e3b',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 43, 10, 583000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 43, 10, 583000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/bc63c584-0c7b-48ba-b834-6fe6bf155ae7',\n",
" 'AnalysisId': 'bc63c584-0c7b-48ba-b834-6fe6bf155ae7',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 2, 30, 48, 39000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 2, 30, 48, 39000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/bccd25e3-6ba1-48c5-b694-bead333b0840',\n",
" 'AnalysisId': 'bccd25e3-6ba1-48c5-b694-bead333b0840',\n",
" 'Name': 'Power BI Report A working copy (final).xlsx analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 28, 15, 1, 31, 506000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 28, 16, 39, 17, 809000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/bce9890a-0050-447a-a470-e12adf866daf',\n",
" 'AnalysisId': 'bce9890a-0050-447a-a470-e12adf866daf',\n",
" 'Name': 'theme_demo',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 3, 24, 17, 43, 44, 714000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 18, 836000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/bcfd782f-ccd7-4a17-ab89-7d4920bb4020',\n",
" 'AnalysisId': 'bcfd782f-ccd7-4a17-ab89-7d4920bb4020',\n",
" 'Name': 'selection retain test, remove relevant ',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 16, 0, 7, 5, 781000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 16, 0, 10, 34, 156000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/bfbea2ac-0789-42a4-b824-3db980504836',\n",
" 'AnalysisId': 'bfbea2ac-0789-42a4-b824-3db980504836',\n",
" 'Name': 'pilot (6/9) pre-fuel',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 6, 9, 15, 0, 16, 413000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 6, 18, 18, 24, 35, 109000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/c1dbb714-5d4f-425e-a7be-f07ffb0f8516',\n",
" 'AnalysisId': 'c1dbb714-5d4f-425e-a7be-f07ffb0f8516',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 25, 14, 26, 35, 633000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 25, 14, 26, 35, 633000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/c3b42986-77ab-49e2-932a-12d9efe9958c',\n",
" 'AnalysisId': 'c3b42986-77ab-49e2-932a-12d9efe9958c',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 19, 12, 36, 0, 972000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 19, 12, 36, 0, 972000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/c4348235-8faf-469a-b7cf-cb6c736dfd28',\n",
" 'AnalysisId': 'c4348235-8faf-469a-b7cf-cb6c736dfd28',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 28, 21, 11, 20, 155000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 28, 21, 11, 20, 155000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/c5bfa5e7-da9b-40ef-aabf-383f35e737ef',\n",
" 'AnalysisId': 'c5bfa5e7-da9b-40ef-aabf-383f35e737ef',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 1, 44, 28, 386000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 1, 44, 28, 386000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/c5fa7f38-d1b2-4f17-8887-31d816e44e49',\n",
" 'AnalysisId': 'c5fa7f38-d1b2-4f17-8887-31d816e44e49',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 5, 0, 45, 57, 328000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 5, 0, 45, 57, 328000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/c70d9898-cc7b-4698-9a62-d9586b33ba74',\n",
" 'AnalysisId': 'c70d9898-cc7b-4698-9a62-d9586b33ba74',\n",
" 'Name': 'qs_geofence analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 11, 18, 13, 4, 312000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 11, 18, 26, 55, 496000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/c7c5e518-2f1f-499f-9531-935bf6d5e470',\n",
" 'AnalysisId': 'c7c5e518-2f1f-499f-9531-935bf6d5e470',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 22, 19, 47, 23, 966000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 22, 19, 47, 23, 966000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/c7ec8b5f-a548-48ca-933d-5db06bebe317',\n",
" 'AnalysisId': 'c7ec8b5f-a548-48ca-933d-5db06bebe317',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 24, 18, 43, 26, 777000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 5, 24, 18, 43, 26, 777000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/cc6315f2-2d19-4753-b2a7-472e0f318316',\n",
" 'AnalysisId': 'cc6315f2-2d19-4753-b2a7-472e0f318316',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 6, 12, 30, 27, 95000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 6, 12, 30, 27, 95000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/cd74a069-7361-41cd-826e-dd43785f859d',\n",
" 'AnalysisId': 'cd74a069-7361-41cd-826e-dd43785f859d',\n",
" 'Name': 'dataset_geofence_trail analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 27, 23, 34, 3, 662000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 27, 23, 35, 25, 174000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/cd841257-3aff-490b-9084-e1d27bc0e177',\n",
" 'AnalysisId': 'cd841257-3aff-490b-9084-e1d27bc0e177',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 3, 19, 19, 19, 38, 186000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 3, 19, 19, 19, 38, 186000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/cf0871bb-3151-4cc7-8c3e-9b2e3e0bbf82',\n",
" 'AnalysisId': 'cf0871bb-3151-4cc7-8c3e-9b2e3e0bbf82',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 26, 16, 9, 48, 515000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 26, 16, 9, 48, 515000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/cf7c0de7-e871-4460-97c9-1e1411617535',\n",
" 'AnalysisId': 'cf7c0de7-e871-4460-97c9-1e1411617535',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 2, 30, 48, 48000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 2, 30, 48, 48000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d1d43034-faaf-4de6-81b1-ae454d63a164',\n",
" 'AnalysisId': 'd1d43034-faaf-4de6-81b1-ae454d63a164',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 7, 19, 27, 34, 370000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 7, 19, 27, 34, 370000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d33bbfe2-c6bc-4ff2-8dbe-23c16f2b09c2',\n",
" 'AnalysisId': 'd33bbfe2-c6bc-4ff2-8dbe-23c16f2b09c2',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 25, 22, 15, 1, 64000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 25, 22, 15, 1, 64000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d438ecf5-e3ea-480f-9f11-36b8816cdda2',\n",
" 'AnalysisId': 'd438ecf5-e3ea-480f-9f11-36b8816cdda2',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 6, 12, 29, 55, 73000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 6, 12, 29, 55, 73000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d4b2e9df-1066-46f9-ae16-a4897a23f2d0',\n",
" 'AnalysisId': 'd4b2e9df-1066-46f9-ae16-a4897a23f2d0',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 43, 10, 353000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 43, 10, 353000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d547a27d-0247-434c-a4de-1b06c25e5aaa',\n",
" 'AnalysisId': 'd547a27d-0247-434c-a4de-1b06c25e5aaa',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 4, 23, 56, 47, 388000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 4, 23, 56, 47, 388000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d5a021b4-6691-4b46-b072-92b2e97a7bd5',\n",
" 'AnalysisId': 'd5a021b4-6691-4b46-b072-92b2e97a7bd5',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 2, 18, 37, 35000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 2, 18, 37, 35000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d6e463f4-ec05-403f-8d30-07c82345be1e',\n",
" 'AnalysisId': 'd6e463f4-ec05-403f-8d30-07c82345be1e',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 2, 30, 48, 148000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 2, 30, 48, 148000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d7710e75-a967-47a1-8faa-d14e3fa0e717',\n",
" 'AnalysisId': 'd7710e75-a967-47a1-8faa-d14e3fa0e717',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 13, 20, 12, 33, 577000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 13, 20, 12, 33, 577000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/d9710769-5c8c-4340-b3d5-c0379f96428d',\n",
" 'AnalysisId': 'd9710769-5c8c-4340-b3d5-c0379f96428d',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 24, 18, 43, 26, 901000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 5, 24, 18, 43, 26, 901000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/da6225b0-eb4a-4488-b360-f9fadc878562',\n",
" 'AnalysisId': 'da6225b0-eb4a-4488-b360-f9fadc878562',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 7, 19, 27, 34, 440000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 4, 7, 19, 27, 34, 440000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/daf81ea7-4ccd-4d5f-8916-217fcf1b91fc',\n",
" 'AnalysisId': 'daf81ea7-4ccd-4d5f-8916-217fcf1b91fc',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 3, 17, 11, 158000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 3, 17, 11, 158000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/db4fb7e2-0b0a-493c-a6a7-f225c1402a4d',\n",
" 'AnalysisId': 'db4fb7e2-0b0a-493c-a6a7-f225c1402a4d',\n",
" 'Name': 'Book7.xlsx analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 28, 16, 49, 15, 220000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 28, 17, 31, 17, 922000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/db818e58-6739-488a-8a70-bc285e8c5cd5',\n",
" 'AnalysisId': 'db818e58-6739-488a-8a70-bc285e8c5cd5',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 3, 19, 19, 19, 38, 213000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 3, 19, 19, 19, 38, 213000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/dd95fe98-6b1a-454f-98f6-558f7ad26a5e',\n",
" 'AnalysisId': 'dd95fe98-6b1a-454f-98f6-558f7ad26a5e',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 1, 18, 14, 29, 507000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 1, 18, 14, 29, 507000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/ddd32c66-a430-4193-a6d6-ad3419eec120',\n",
" 'AnalysisId': 'ddd32c66-a430-4193-a6d6-ad3419eec120',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 2, 8, 20, 20, 42, 314000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 2, 8, 20, 20, 42, 314000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/df1e7cc9-25bc-4ca8-b671-715cebafe64e',\n",
" 'AnalysisId': 'df1e7cc9-25bc-4ca8-b671-715cebafe64e',\n",
" 'Name': 'dataset_geofence analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 29, 0, 31, 28, 830000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 29, 18, 45, 12, 423000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/df69d0fc-2031-43be-8721-d1b2b7809682',\n",
" 'AnalysisId': 'df69d0fc-2031-43be-8721-d1b2b7809682',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 6, 2, 18, 37, 152000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 6, 2, 18, 37, 152000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/e1232193-8425-4895-9837-f26ba7d1472a',\n",
" 'AnalysisId': 'e1232193-8425-4895-9837-f26ba7d1472a',\n",
" 'Name': 'Business Review analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 24, 18, 43, 27, 110000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 5, 24, 18, 43, 27, 110000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/e1ebd52a-4057-4cf1-93c8-7d1d8348c1e2',\n",
" 'AnalysisId': 'e1ebd52a-4057-4cf1-93c8-7d1d8348c1e2',\n",
" 'Name': 'vehicle_dimension_test',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 3, 15, 14, 31, 32, 488000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 35, 519000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/e4751eba-0d72-4233-b0c4-a957f0e474c2',\n",
" 'AnalysisId': 'e4751eba-0d72-4233-b0c4-a957f0e474c2',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 30, 30, 304000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 30, 30, 304000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/e545dfb6-d757-43d2-b813-514a7d3dc9ca',\n",
" 'AnalysisId': 'e545dfb6-d757-43d2-b813-514a7d3dc9ca',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 18, 17, 42, 368000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 18, 17, 42, 368000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/e755aa3e-4ddb-40aa-9e25-1d9da4f2fa2e',\n",
" 'AnalysisId': 'e755aa3e-4ddb-40aa-9e25-1d9da4f2fa2e',\n",
" 'Name': 'Fuel2_test analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 27, 15, 4, 8, 301000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 6, 14, 36, 45, 219000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/e87ba323-dbd6-40e5-a9f4-102173cde619',\n",
" 'AnalysisId': 'e87ba323-dbd6-40e5-a9f4-102173cde619',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 22, 18, 42, 3, 579000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 22, 18, 42, 3, 579000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/eaa89220-6be1-4c83-9bfb-f178d507247a',\n",
" 'AnalysisId': 'eaa89220-6be1-4c83-9bfb-f178d507247a',\n",
" 'Name': 'qs_software analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 10, 1, 20, 50, 47, 380000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 1, 21, 6, 27, 452000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/ed7bf7ba-40ed-43b7-a00e-19ece25c566b',\n",
" 'AnalysisId': 'ed7bf7ba-40ed-43b7-a00e-19ece25c566b',\n",
" 'Name': 'qs_fuel analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 9, 7, 18, 35, 4, 336000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 16, 38, 436000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/ede2a82f-6c97-43b0-8ba6-023a9b1661f3',\n",
" 'AnalysisId': 'ede2a82f-6c97-43b0-8ba6-023a9b1661f3',\n",
" 'Name': 'pilot_demo',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 26, 17, 42, 26, 834000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 9, 28, 22, 49, 59, 914000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/f12cc59d-c664-443e-b023-82e28cdcc72a',\n",
" 'AnalysisId': 'f12cc59d-c664-443e-b023-82e28cdcc72a',\n",
" 'Name': 'Patient-Info (1).csv analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 23, 18, 30, 54, 148000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 23, 18, 30, 54, 148000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/f15630fd-60e4-4611-8239-9227d1c0ac41',\n",
" 'AnalysisId': 'f15630fd-60e4-4611-8239-9227d1c0ac41',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 28, 21, 11, 20, 18000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 28, 21, 11, 20, 18000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/f374897e-3283-47af-a539-d4272820cb7d',\n",
" 'AnalysisId': 'f374897e-3283-47af-a539-d4272820cb7d',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 5, 0, 13, 47, 365000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 5, 0, 13, 47, 365000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/f411282e-2e99-45e5-aa14-0116e0eecac6',\n",
" 'AnalysisId': 'f411282e-2e99-45e5-aa14-0116e0eecac6',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2020, 12, 30, 3, 17, 11, 257000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2020, 12, 30, 3, 17, 11, 257000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/f7999662-ebfb-4c2d-adb3-47356aaf5e06',\n",
" 'AnalysisId': 'f7999662-ebfb-4c2d-adb3-47356aaf5e06',\n",
" 'Name': 'data1.xlsx analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 28, 17, 38, 47, 225000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 28, 17, 47, 2, 474000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/fa0211c8-41fe-4fd0-89ad-f77235c354da',\n",
" 'AnalysisId': 'fa0211c8-41fe-4fd0-89ad-f77235c354da',\n",
" 'Name': 'Web and Social Media Analytics analysis',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 4, 5, 17, 37, 21, 881000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 25, 334000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/fa50dcb7-9bc4-488b-bee4-cd29860d1d25',\n",
" 'AnalysisId': 'fa50dcb7-9bc4-488b-bee4-cd29860d1d25',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 4, 23, 56, 47, 458000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 4, 23, 56, 47, 458000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/fb61f4ea-7275-4ca4-a503-f75b56473b4e',\n",
" 'AnalysisId': 'fb61f4ea-7275-4ca4-a503-f75b56473b4e',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 7, 16, 3, 42, 11, 337000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 7, 16, 3, 42, 11, 337000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/fd0901f6-b0c2-4c32-8087-d57b66a56d50',\n",
" 'AnalysisId': 'fd0901f6-b0c2-4c32-8087-d57b66a56d50',\n",
" 'Name': 'People Overview analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 5, 24, 18, 43, 26, 808000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 5, 24, 18, 43, 26, 808000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/fd0fe0b8-f9c6-4d22-ada2-00154da05b93',\n",
" 'AnalysisId': 'fd0fe0b8-f9c6-4d22-ada2-00154da05b93',\n",
" 'Name': 'Sales Pipeline analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 8, 25, 14, 26, 35, 455000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 8, 25, 14, 26, 35, 455000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/migrated-dealer-portal-analysis',\n",
" 'AnalysisId': 'migrated-dealer-portal-analysis',\n",
" 'Name': 'migrated-dealer-portal-analysis',\n",
" 'Status': 'CREATION_FAILED',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 21, 0, 22, 8, 559000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 22, 19, 19, 40, 558000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/migrated-dealer-portal-analysis-20210122',\n",
" 'AnalysisId': 'migrated-dealer-portal-analysis-20210122',\n",
" 'Name': 'migrated-dealer-portal-analysis-20210122',\n",
" 'Status': 'DELETED',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 22, 19, 19, 21, 516000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 10, 4, 18, 15, 40, 853000, tzinfo=tzlocal())},\n",
" {'Arn': 'arn:aws:quicksight:us-east-1:233081732471:analysis/migrated-sales-analysis',\n",
" 'AnalysisId': 'migrated-sales-analysis',\n",
" 'Name': 'migrated-sales-analysis',\n",
" 'Status': 'CREATION_SUCCESSFUL',\n",
" 'CreatedTime': datetime.datetime(2021, 1, 12, 0, 25, 48, 708000, tzinfo=tzlocal()),\n",
" 'LastUpdatedTime': datetime.datetime(2021, 1, 12, 0, 47, 53, 504000, tzinfo=tzlocal())}]"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sourceanalysis_list_complete"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Deploy Analysis"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"sourceanalysis_all=[]\n",
"for i in sourceanalysis_list:\n",
" if i['Status']!= 'DELETED':\n",
" sourceanalysis_all.append(i)\n",
"\n",
"success=[]\n",
"faillist=[]\n",
"sts_client = targetsession.client(\"sts\")\n",
"account_id = sts_client.get_caller_identity()[\"Account\"]\n",
"for i in sourceanalysis_all:\n",
" sourceanalysis=describe_analysis(sourcesession, i['AnalysisId'])\n",
" sourceanalysisid=sourceanalysis['Analysis']['AnalysisId']\n",
" sourceanalysisArn=sourceanalysis['Analysis']['Arn']\n",
" sourceanalysisname=sourceanalysis['Analysis']['Name']\n",
" DataSetArns=sourceanalysis['Analysis']['DataSetArns']\n",
" sourcetid=sourceanalysisid\n",
" sourcetname=sourceanalysisname\n",
" targettid=sourcetid\n",
" targettname=sourceanalysisname\n",
" \n",
" TargetThemeArn=''\n",
" if 'ThemeArn' in sourceanalysis['Analysis'].keys():\n",
" SourceThemeArn=sourceanalysis['Analysis']['ThemeArn']\n",
" TargetThemeArn = 'arn:aws:quicksight:'+region+':'+account_id+':theme/'+sourceanalysis['Analysis']['ThemeArn'].split(\"/\")[1]\n",
"\n",
" sourcedsref = []\n",
" for i in DataSetArns:\n",
" missing=False\n",
" did = i.split(\"/\")[1]\n",
" try:\n",
" dname=get_dataset_name(did, sourcesession)\n",
" except Exception as e:\n",
" faillist.append({\"Error Type\": \"Dataset: \"+did+\" is missing!\",\"sourceanalysisid\": sourcetid, \"Name\": sourcetname, \"Error\": str(e)})\n",
" missing=True\n",
" break\n",
" \n",
" sourcedsref.append({'DataSetPlaceholder': dname,\n",
" 'DataSetArn': i})\n",
" if missing: continue\n",
" try:\n",
" sourcetemplate = create_template(sourcesession, sourcetid, sourcetname, sourcedsref, sourceanalysisArn, '1')\n",
" sourcetemplate=describe_template(sourcesession,sourcetid)\n",
" except Exception as e:\n",
" faillist.append({\"Error Type\": \"Create Source Template Error\",\"sourceanalysisid\": sourcetid, \"Name\": sourcetname, \"Error\": str(e)})\n",
"\n",
" continue\n",
" \n",
" while sourcetemplate['Template']['Version']['Status']==\"CREATION_IN_PROGRESS\":\n",
" time.sleep(5)\n",
" sourcetemplate=describe_template(sourcesession,sourcetid)\n",
" if sourcetemplate['Template']['Version']['Status']==\"CREATION_SUCCESSFUL\":\n",
" try:\n",
" updateres=update_template_permission(sourcesession, sourcetid, targetroot)\n",
" except Exception as e:\n",
" delete_template(sourcesession, sourcetid)\n",
" faillist.append({\"Error Type\": \"Update Source Template Permission Error\",\n",
" \"sourceanalysisid\": sourcetid, \n",
" \"Name\": sourcetname, \n",
" \"Error\": str(e)})\n",
" else: \n",
" if sourcetemplate['Template']['Version']['Status']==\"CREATION_SUCCESSFUL\":\n",
" try:\n",
" updateres=update_template_permission(sourcesession, sourcetid, targetroot)\n",
" except Exception as e:\n",
" delete_template(sourcesession, sourcetid)\n",
" faillist.append({\"Error Type\": \"Update Source Template Permission Error\",\n",
" \"sourceanalysisid\": sourcetid, \n",
" \"Name\": sourcetname, \n",
" \"Error\": str(e)})\n",
" continue \n",
"\n",
" ds=data_sets (targetsession)\n",
" Template=sourcetemplate['Template']\n",
" dsref=[]\n",
" \n",
" missing=False\n",
" for i in Template['Version']['DataSetConfigurations']:\n",
" #print(i)\n",
" n=Template['Version']['DataSetConfigurations'].index(i)\n",
" #print(n)\n",
" for j in ds:\n",
" if i['Placeholder']==j['Name']:\n",
" dsref.append({\n",
" 'DataSetPlaceholder': i['Placeholder'],\n",
" 'DataSetArn': j['Arn']\n",
" })\n",
" if n>len(dsref): \n",
" e=\"Dataset \"+i['Placeholder']+\"is missing!\"\n",
" faillist.append({\"Error Type\": \"Datasets in target env are missing for this analysis\",\n",
" \"sourceanalysisid\": sourcetid, \n",
" \"Name\": sourcetname, \n",
" \"Error\": str(e)})\n",
" missing=True\n",
" break\n",
" if missing: break\n",
" if missing: continue\n",
" \n",
"##working\n",
" SourceEntity={\n",
" 'SourceTemplate': {\n",
" 'DataSetReferences': dsref,\n",
" 'Arn': Template['Arn']\n",
" }\n",
" }\n",
" \n",
" #print(SourceEntity)\n",
" analysis=describe_analysis(targetsession, targettid)\n",
" if 'Faild to describe analysis:' in analysis or analysis['Analysis']['Status']=='DELETED':\n",
" if 'analysis/'+targettid+' is not found' in analysis or analysis['Analysis']['Status']=='DELETED':\n",
" print(\"Create new anlaysis now:\")\n",
" try:\n",
" newanalysis=create_analysis(targetsession, targettid, targettname,targetadmin,SourceEntity,TargetThemeArn)\n",
" except Exception as e:\n",
" delete_template(sourcesession, targettid)\n",
" faillist.append({\"Error Type\": \"Create New Analysis Error\",\n",
" \"AnalysisID\": targettid, \n",
" \"Name\": targettname, \n",
" \"Error\": str(e)}) \n",
" continue\n",
" else:\n",
" faillist.append({\"Error Type\": \"Describe Target Analysis Error\",\n",
" \"AnalysisID\": targettid, \n",
" \"Name\": targettname, \n",
" \"Error\": str(analysis)}) \n",
" continue\n",
" elif analysis['Analysis']['Status']==\"CREATION_FAILED\":\n",
" res=delete_analysis(sourcesession, targettid)\n",
" try:\n",
" newanalysis=create_analysis(targetsession, targettid, targettname,targetadmin, SourceEntity,TargetThemeArn)\n",
" except Exception as e:\n",
" delete_template(sourcesession, targettid)\n",
" faillist.append({\"Error Type\": \"Create Analysis Error\",\n",
" \"AnalysisID\": targettid, \n",
" \"Name\": targettname, \n",
" \"Error\": str(e)})\n",
" continue\n",
" \n",
" else:\n",
" print(\"analysis is existing. update it now.\")\n",
" try:\n",
" newanalysis=update_analysis(targetsession, targettid, targettname, SourceEntity,TargetThemeArn)\n",
" except Exception as e:\n",
" delete_template(sourcesession, targettid)\n",
" faillist.append({\"Error Type\": \"Update Analysis Error\",\n",
" \"AnalysisID\": targettid, \n",
" \"Name\": targettname, \n",
" \"Error\": str(e)})\n",
" continue\n",
" time.sleep(20)\n",
" res=describe_analysis(targetsession,newanalysis['AnalysisId'])\n",
" if res['Status']==200:\n",
" status=res['Analysis']['Status']\n",
" if status=='CREATION_SUCCESSFUL' or status=='UPDATE_SUCCESSFUL':\n",
" success.append(res['Analysis'])\n",
" #filename=\"Deployment_Results/Successful/Analysis_\"+res['Analysis']['Name']+\".json\"\n",
" else:\n",
" faillist.append({\"Error Type\": \"Analysis Creation Status is not Successful\", \"Analysis\": res['Analysis']})\n",
" #filename=\"Deployment_Results/Fail/Analysis_\"+res['Analysis']['Name']+\".json\""
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"with open(faillocation+now+'Analysis_Error.json', \"w\") as f:\n",
" json.dump(faillist, f, indent=4, sort_keys=True, default=str)\n",
"\n",
"with open(successlocation+now+'Analysis_Success.json', \"w\") as f:\n",
" json.dump(success, f, indent=4, sort_keys=True, default=str)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get dashboards list"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#source account\n",
"sourceaccountid=\"\"\n",
"role_name=\"\"\n",
"aws_region='us-east-1'\n",
"sourcesession = _assume_role(sourceaccountid, role_name, aws_region)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#target account\n",
"targetaccountid=\"\"\n",
"role_name=\"\"\n",
"aws_region='us-east-1'\n",
"targetsession = _assume_role(targetaccountid, role_name, aws_region)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"application/json": "",
"text/plain": [
""
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sourcedashboards=dashboards(sourcesession)\n",
"\n",
"#Get id of datasets deployment list\n",
"deployment_list=[]\n",
"for newset in dashboard_deploy_list:\n",
" ids = get_dashboard_ids(newset, sourcesession)\n",
" for dashboard in sourcedashboards:\n",
" if ids[0] == dashboard[\"DashboardId\"]:\n",
" deployment_list.append(dashboard)\n",
"\n",
"JSON(deployment_list)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Deploy dashboards"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"arn:aws:quicksight:us-east-1:233081732471:analysis/1c0f3212-d0f8-40bf-a344-e19ba9690b9b\n",
"1\n",
"2\n",
"template created\n",
"3\n",
"4\n",
"Template is successful copied!\n",
"qs_dataset_date_range\n",
"qs_dataset_date_range-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/a6a7c495-3174-4013-9766-d80a84eae54d-UAT\n",
"qs_fuel_comparison\n",
"qs_fuel_comparison-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/12bc8d1c-9158-4bd2-b5bc-8af977149b20-UAT\n",
"qs_location\n",
"qs_location-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/41dbfd62-bbc7-4516-ab6a-fa51278b9dca-UAT\n",
"qs_not_reporting\n",
"qs_not_reporting-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/f423b170-f4dc-436e-b58b-fdbf2d4654b1-UAT\n",
"qs_subscription\n",
"qs_subscription-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/0e91b4ef-4a53-495d-8c88-66560abed72e-UAT\n",
"qs_ecu\n",
"qs_ecu-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/f5506260-505b-418c-aa45-c9a04f606180-UAT\n",
"qs_location_comparison\n",
"qs_location_comparison-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/5287927a-02d2-4a1a-8f29-3c1f6c724309-UAT\n",
"qs_geofence\n",
"qs_geofence-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/1c162a65-dd99-4142-b44a-fb6397e7b38c-UAT\n",
"qs_faults\n",
"qs_faults-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/1d04d9b5-d25f-4fd6-bb28-60392e25a6be-UAT\n",
"qs_veh_dimension\n",
"qs_veh_dimension-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/85d8610a-2739-4ec1-8df6-374ed5fe2ecd-UAT\n",
"qs_fuel\n",
"qs_fuel-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/68ee6c11-d7d8-462f-8321-66a909516ae9-UAT\n",
"qs_software\n",
"qs_software-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/fd093c9c-1152-487f-926c-0e780fa06bfc-UAT\n",
"qs_vehicle_exclusion\n",
"qs_vehicle_exclusion-UAT\n",
"arn:aws:quicksight:us-east-1:233081732471:dataset/60ebd06e-978d-4e24-ac51-450837fadc85-UAT\n",
"dashboard is existing. update it now.\n",
"added dashboard to UAT folder\n"
]
}
],
"source": [
"success=[]\n",
"faillist=[]\n",
"for dashboard in deployment_list:\n",
" sourcedashboard=describe_dashboard(sourcesession, dashboard['DashboardId'])\n",
" SourceEntityArn=sourcedashboard['Dashboard']['Version']['SourceEntityArn']\n",
" print(SourceEntityArn)\n",
" if SourceEntityArn.split(\"/\")[0].split(\":\")[-1]==\"analysis\" or SourceEntityArn.split(\"/\")[0].split(\":\")[-1]=='template':\n",
" sourceanalysis=sourcedashboard['Dashboard']['Version']['SourceEntityArn']\n",
" else: \n",
" faillist.append({\"Error Type\": \"Source Analysis is missing!\",\"DashboardId\": sourcetid, \"Name\": sourcetname, \"Error\": \"Source Analysis is missing!\"})\n",
" continue\n",
" \n",
" sourceversion=sourcedashboard['Dashboard']['Version']['VersionNumber']\n",
" sourcedid=sourcedashboard['Dashboard']['DashboardId']\n",
" sourcedname=sourcedashboard['Dashboard']['Name']\n",
" sourcetid=sourcedid\n",
" sourcetname=sourcedname\n",
" targetdid=get_target_id(sourcetid)\n",
" targetdname=get_target_id(sourcetname)\n",
" print('1')\n",
" \n",
" \n",
" DataSetArns=sourcedashboard['Dashboard']['Version']['DataSetArns']\n",
" TargetThemeArn=''\n",
" if 'ThemeArn' in sourcedashboard['Dashboard']['Version'].keys():\n",
" SourceThemearn=sourcedashboard['Dashboard']['Version']['ThemeArn']\n",
" TargetThemeArn = 'arn:aws:quicksight:'+region+':'+account_id+':theme/'+SourceThemearn.split(\"/\")[1]\n",
" sourcedsref = []\n",
" print('2')\n",
" for i in DataSetArns:\n",
" missing=False\n",
" did = i.split(\"/\")[1]\n",
" try:\n",
" dname=get_dataset_name(did, sourcesession)\n",
" except Exception as e:\n",
" faillist.append({\"Error Type\": \"Dataset: \"+did+\" is missing!\",\"DashboardId\": sourcetid, \"Name\": sourcetname, \"Error\": str(e)})\n",
" missing=True\n",
" break\n",
"\n",
" sourcedsref.append({'DataSetPlaceholder': dname,\n",
" 'DataSetArn': i})\n",
" if missing: continue\n",
" \n",
" if SourceEntityArn.split(\"/\")[0].split(\":\")[-1]==\"analysis\" and same_account_deployment == True:\n",
"\n",
" try:\n",
" sourcetemplate = create_template(sourcesession, sourcetid, sourcetname, sourcedsref, sourceanalysis, '1')\n",
" sourcetemplate = describe_template(sourcesession,sourcetid)\n",
" print('template created')\n",
" except Exception as e:\n",
" faillist.append({\"Error Type\": \"Create Source Template Error\",\"DashboardId\": sourcetid, \"Name\": sourcetname, \"Error\": str(e)})\n",
" continue\n",
" print('3')\n",
" while sourcetemplate['Template']['Version']['Status']==\"CREATION_IN_PROGRESS\":\n",
" time.sleep(5)\n",
" sourcetemplate=describe_template(sourcesession,sourcetid)\n",
" #print(sourcetemplate)\n",
"\n",
" print('4')\n",
" sourcetemplate = describe_template(sourcesession,sourcetid)\n",
" targettemplate = describe_template(targetsession,sourcetid) #there is no need to copy template within the same account\n",
"\n",
" while targettemplate['Template']['Version']['Status']==\"CREATION_IN_PROGRESS\":\n",
" time.sleep(5)\n",
" targettemplate=describe_template(targetsession,sourcetid)\n",
" if targettemplate['Template']['Version']['Status']==\"CREATION_SUCCESSFUL\":\n",
" break\n",
" else: \n",
" if targettemplate['Template']['Version']['Status']==\"CREATION_SUCCESSFUL\":\n",
" print(\"Template is successful copied!\")\n",
" else: \n",
" delete_template(targetsession, sourcetid)\n",
" faillist.append({\"Error Type\": \"Copy Template Error\",\n",
" \"DashboardId\": sourcetid, \n",
" \"Name\": sourcetname, \n",
" \"Error\": str(e)})\n",
" continue\n",
"\n",
" elif SourceEntityArn.split(\"/\")[0].split(\":\")[-1]==\"template\" and same_account_deployment == True:\n",
" sourcetid = SourceEntityArn.split(\"/\")[1]\n",
" sourcetemplate = describe_template(sourcesession,sourcetid)\n",
" targettemplate = describe_template(targetsession,sourcetid)\n",
" \n",
" elif SourceEntityArn.split(\"/\")[0].split(\":\")[-1]==\"analysis\" and same_account_deployment == False:\n",
" #To fill\n",
" print('to do')\n",
" \n",
" elif SourceEntityArn.split(\"/\")[0].split(\":\")[-1]==\"analysis\" and same_account_deployment == False:\n",
" #To fill\n",
" print('to do')\n",
" \n",
" \n",
" #ds=data_sets (targetsession)\n",
" ds = folder_members (targetsession, target_folder_ID)\n",
" Template=targettemplate['Template']\n",
" dsref=[]\n",
" #print(Template['Version']['DataSetConfigurations'])\n",
" missing=False\n",
" for i in Template['Version']['DataSetConfigurations']:\n",
" #print(\"i is \"+str(i))\n",
" n=Template['Version']['DataSetConfigurations'].index(i)\n",
" #print(\"n is \"+str(n))\n",
" for j in ds:\n",
" member_type = j['MemberArn'].split('/')[0].split(':')[-1]\n",
" if member_type != 'dataset':\n",
" continue\n",
" j['Arn'] = j['MemberArn'] \n",
" ds_des = describe_dataset (targetsession, j['MemberId'])\n",
" j['Name'] = ds_des['DataSet']['Name']\n",
" if get_target_placeholder(i['Placeholder'])==j['Name']:\n",
" print(i['Placeholder'])\n",
" print(j['Name'])\n",
" print(j['Arn'])\n",
" dsref.append({\n",
" 'DataSetPlaceholder': i['Placeholder'],\n",
" 'DataSetArn': j['Arn']\n",
" })\n",
" break\n",
" print(\"len of dsref is \"+str(len(dsref)))\n",
" print(dsref)\n",
" if (n+1)>len(dsref): \n",
" e=\"Dataset \"+i['Placeholder']+\" is missing!\"\n",
" faillist.append({\"Error Type\": \"Datasets in target env are missing for this dashboard\",\n",
" \"DashboardId\": sourcetid, \n",
" \"Name\": sourcetname, \n",
" \"Error\": str(e)})\n",
" missing=True\n",
" break\n",
" if missing: break\n",
" if missing: continue\n",
" #print(\"len of dsref is \"+str(len(dsref)))\n",
" #print(dsref) \n",
" \n",
" if target_is_dev == True: # create an analysis for dev purposes first\n",
" print('create an analysis for dev purposes first')\n",
" SourceEntity={\n",
" 'SourceTemplate': {\n",
" 'DataSetReferences': dsref,\n",
" 'Arn': Template['Arn']\n",
" }\n",
" }\n",
" newanalysis=create_analysis(targetsession, targetdid, targetdname, targetadmin, SourceEntity,TargetThemeArn)\n",
" #print(newanalysis)\n",
" time.sleep(30)\n",
" create_folder_membership(targetsession, target_folder_ID, targetdid, 'ANALYSIS' )\n",
" continue\n",
" \n",
" else: \n",
" SourceEntity={\n",
" 'SourceTemplate': {\n",
" 'DataSetReferences': dsref,\n",
" 'Arn': Template['Arn']\n",
" }\n",
" }\n",
" #print(SourceEntity)\n",
" dashboard=describe_dashboard(targetsession, targetdid)\n",
"\n",
" if 'Faild to describe dashboard:' in dashboard:\n",
" if 'dashboard/'+targetdid+' is not found' in dashboard:\n",
" print(\"Create new dashboard now:\")\n",
" try:\n",
" newdashboard=create_dashboard(targetsession, targetdid, targetdname,targetadmin, SourceEntity, '1',TargetThemeArn, filter='DISABLED',csv='ENABLED', sheetcontrol='COLLAPSED')\n",
" except Exception as e:\n",
" delete_template(targetsession, targetdid)\n",
" faillist.append({\"Error Type\": \"Create New Dashboard Error\",\n",
" \"DashboardId\": targetdid, \n",
" \"Name\": targetdname, \n",
" \"Error\": str(e)}) \n",
" continue\n",
" else: \n",
" faillist.append({\"Error Type\": \"Describe Target Dashboard Error\",\n",
" \"DashboardId\": targetdid, \n",
" \"Name\": targetdname, \n",
" \"Error\": str(dashboard)}) \n",
" continue\n",
" elif dashboard['Dashboard']['Version']['Status']==\"CREATION_FAILED\":\n",
" res=delete_dashboard(targetsession, targetdid)\n",
" try:\n",
" newdashboard=create_dashboard(targetsession, targetdid, targetdname,targetadmin, SourceEntity, '1',TargetThemeArn, filter='DISABLED',csv='ENABLED', sheetcontrol='COLLAPSED')\n",
" except Exception as e:\n",
" delete_template(targetsession, targetdid)\n",
" print('fail to create dashboard, add to faillist')\n",
" faillist.append({\"Error Type\": \"Create Dashboard Error\",\n",
" \"DashboardId\": targetdid, \n",
" \"Name\": targetdname, \n",
" \"Error\": str(e)})\n",
" continue\n",
" \n",
" else:\n",
" print(\"dashboard is existing. update it now.\")\n",
" try:\n",
" res=delete_dashboard(targetsession, targetdid)\n",
" newdashboard=create_dashboard(targetsession, targetdid, targetdname,targetadmin, SourceEntity, '1',TargetThemeArn, filter='DISABLED',csv='ENABLED', sheetcontrol='COLLAPSED')\n",
" except Exception as e:\n",
" #print(newdashboard)\n",
" delete_template(targetsession, targetdid)\n",
" print('fail to update dashboard, add to faillist')\n",
" faillist.append({\"Error Type\": \"Create Dashboard Error\",\n",
" \"DashboardId\": targetdid, \n",
" \"Name\": targetdname, \n",
" \"Error\": str(e)})\n",
" continue\n",
" while(True):\n",
" res=describe_dashboard(targetsession,newdashboard['DashboardId'])\n",
"\n",
" if res['Status']==200:\n",
" status=res['Dashboard']['Version']['Status']\n",
" if status=='CREATION_SUCCESSFUL' or status=='UPDATE_SUCCESSFUL':\n",
" success.append(res['Dashboard'])\n",
" break\n",
" elif status=='CREATION_IN_PROGRESS':\n",
" time.sleep(10)\n",
" continue\n",
" else:\n",
" faillist.append({\"Error Type\": \"Dashboard Creation Status is not Successful\", \"Dashboard\": res['Dashboard']})\n",
" break\n",
" #filename=\"Deployment_Results/Fail/Dashboard_\"+res['Dashboard']['Name']+\".json\"\n",
" \n",
" create_folder_membership(targetsession, target_folder_ID, targetdid, 'DASHBOARD' )\n",
" print('added dashboard to {} folder'.format(target_folder_name))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"with open(faillocation+now+'Dashboard_Error.json', \"w\") as f:\n",
" json.dump(faillist, f, indent=4, sort_keys=True, default=str)\n",
"\n",
"with open(successlocation+now+'Dashboard_Success.json', \"w\") as f:\n",
" json.dump(success, f, indent=4, sort_keys=True, default=str)\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"faillist"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Delete objects"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# THIS WILL DELETE ALL TARGET DATASETS\n",
"\n",
"delete = \"template\"\n",
"\n",
"if delete == \"datasource\": \n",
" for datasource in data_sources(targetsession):\n",
" #if datasource['Type'] == \"REDSHIFT\":\n",
" try:\n",
" delete_source (targetsession, datasource['DataSourceId'])\n",
" except Exception: pass \n",
"elif delete == \"dataset\":\n",
" for dataset in data_sets(targetsession):\n",
" delete_dataset (targetsession, dataset['DataSetId'])\n",
"elif delete == \"template\": \n",
" for template in templates(targetsession):\n",
" delete_template(targetsession, template['TemplateId'])\n",
"elif delete == \"analysis\":\n",
" for analysis in analysis(targetsession): delete_analysis(targetsession, analysis['AnalysisId'])\n",
" \n",
"elif delete == \"dashboard\": \n",
" for dashboard in dashboards(targetsession):\n",
" delete_dashboard(targetsession, dashboard['DashboardId'])\n",
"delete =\"don't delete anything\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Schedule notebooks to execute"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"https://aws.amazon.com/blogs/machine-learning/scheduling-jupyter-notebooks-on-sagemaker-ephemeral-instances/"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "conda_python3",
"language": "python",
"name": "conda_python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.13"
},
"toc-showcode": false,
"toc-showmarkdowntxt": true
},
"nbformat": 4,
"nbformat_minor": 4
}