in Assets_as_Code/Assets_as_Code/src/functions.py [0:0]
def create_dashboard(session, dashboard, name, principal, SourceEntity, version, themearn, filter='ENABLED',
csv='ENABLED', sheetcontrol='EXPANDED'):
qs = session.client('quicksight')
sts_client = session.client("sts")
account_id = sts_client.get_caller_identity()["Account"]
if themearn == '':
response = qs.create_dashboard(
AwsAccountId=account_id,
DashboardId=dashboard,
Name=name,
Permissions=[
{
'Principal': principal,
'Actions': [
'quicksight:DescribeDashboard',
'quicksight:ListDashboardVersions',
'quicksight:UpdateDashboardPermissions',
'quicksight:QueryDashboard',
'quicksight:UpdateDashboard',
'quicksight:DeleteDashboard',
'quicksight:DescribeDashboardPermissions',
'quicksight:UpdateDashboardPublishedVersion'
]
},
],
SourceEntity=SourceEntity,
VersionDescription=version,
DashboardPublishOptions={
'AdHocFilteringOption': {
'AvailabilityStatus': filter
},
'ExportToCSVOption': {
'AvailabilityStatus': csv
},
'SheetControlsOption': {
'VisibilityState': sheetcontrol
}
}
)
else:
response = qs.create_dashboard(
AwsAccountId=account_id,
DashboardId=dashboard,
Name=name,
Permissions=[
{
'Principal': principal,
'Actions': [
'quicksight:DescribeDashboard',
'quicksight:ListDashboardVersions',
'quicksight:UpdateDashboardPermissions',
'quicksight:QueryDashboard',
'quicksight:UpdateDashboard',
'quicksight:DeleteDashboard',
'quicksight:DescribeDashboardPermissions',
'quicksight:UpdateDashboardPublishedVersion'
]
},
],
SourceEntity=SourceEntity,
VersionDescription=version,
DashboardPublishOptions={
'AdHocFilteringOption': {
'AvailabilityStatus': filter
},
'ExportToCSVOption': {
'AvailabilityStatus': csv
},
'SheetControlsOption': {
'VisibilityState': sheetcontrol
}
},
ThemeArn=themearn
)
return response