code: @Override
      public PutDashboardResult putDashboard(PutDashboardRequest request) {
          request = beforeClientExecution(request);
          return executePutDashboard(request);
      }
docs: <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>
  There is no limit to the number of dashboards in your account. 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>