@Override
    public PutDashboardResult putDashboard(PutDashboardRequest request) {
        request = beforeClientExecution(request);
        return executePutDashboard(request);
    }
<p>
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.
</p>
<p>
All dashboards in your account are global, not region-specific.
</p>
<p>
A simple way to create a dashboard using <code>PutDashboard</code> 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
<code>GetDashboard</code>, and then use the data returned within <code>DashboardBody</code> as the template for
the new dashboard when you call <code>PutDashboard</code>.
</p>
<p>
When you create a dashboard with <code>PutDashboard</code>, 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 <code>DashboardBody</code> script or the
CloudFormation template used to create the dashboard.
</p>

@param putDashboardRequest
@return Result of the PutDashboard operation returned by the service.
@throws DashboardInvalidInputErrorException
        Some part of the dashboard data is invalid.
@throws InternalServiceException
        Request processing has failed due to some unknown error, exception, or failure.
@sample AmazonCloudWatch.PutDashboard
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutDashboard" target="_top">AWS API
     Documentation</a>
aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchClient.java