putDashboard method
Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard, the entire contents are replaced with what you specify here.
All dashboards in your account are global, not region-specific.
A simple way to create a dashboard using PutDashboard is to
copy an existing dashboard. To copy an existing dashboard using the
console, you can load the dashboard and then use the View/edit source
command in the Actions menu to display the JSON block for that dashboard.
Another way to copy a dashboard is to use GetDashboard, and
then use the data returned within DashboardBody as the
template for the new dashboard when you call PutDashboard.
When you create a dashboard with PutDashboard, a good
practice is to add a text widget at the top of the dashboard with a
message that the dashboard was created by script and should not be changed
in the console. This message could also point console users to the
location of the DashboardBody script or the CloudFormation
template used to create the dashboard.
May throw ConflictException.
May throw DashboardInvalidInputError.
May throw InternalServiceFault.
Parameter dashboardBody :
The detailed information about the dashboard in JSON format, including the
widgets to include and their location on the dashboard. This parameter is
required.
For more information about the syntax, see Dashboard Body Structure and Syntax.
Parameter dashboardName :
The name of the dashboard. If a dashboard with this name already exists,
this call modifies that dashboard, replacing its current contents.
Otherwise, a new dashboard is created. The maximum length is 255, and
valid characters are A-Z, a-z, 0-9, "-", and "_". This parameter is
required.
Parameter tags :
A list of key-value pairs to associate with the dashboard. You can
associate as many as 50 tags with a dashboard.
Tags can help you organize and categorize your dashboards. You can also use them to scope user permissions by granting a user permission to access or change only dashboards with certain tag values.
You can use this parameter only when creating a new dashboard. If you
specify Tags when updating an existing dashboard, the tag
updates are ignored. To add or update tags on an existing dashboard, use
TagResource.
To remove tags, use UntagResource.
Implementation
Future<PutDashboardOutput> putDashboard({
required String dashboardBody,
required String dashboardName,
List<Tag>? tags,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.0',
'X-Amz-Target': 'GraniteServiceVersion20100801.PutDashboard'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'DashboardBody': dashboardBody,
'DashboardName': dashboardName,
if (tags != null) 'Tags': tags,
},
);
return PutDashboardOutput.fromJson(jsonResponse.body);
}