1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package cloudwatch
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
"github.com/aws/aws-sdk-go-v2/service/cloudwatch/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// 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.
func (c *Client) PutDashboard(ctx context.Context, params *PutDashboardInput, optFns ...func(*Options)) (*PutDashboardOutput, error) {
if params == nil {
params = &PutDashboardInput{}
}
result, metadata, err := c.invokeOperation(ctx, "PutDashboard", params, optFns, c.addOperationPutDashboardMiddlewares)
if err != nil {
return nil, err
}
out := result.(*PutDashboardOutput)
out.ResultMetadata = metadata
return out, nil
}
type PutDashboardInput struct {
// 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 (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html)
// .
//
// This member is required.
DashboardBody *string
// 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.
//
// This member is required.
DashboardName *string
noSmithyDocumentSerde
}
type PutDashboardOutput struct {
// If the input for PutDashboard was correct and the dashboard was successfully
// created or modified, this result is empty. If this result includes only warning
// messages, then the input was valid enough for the dashboard to be created or
// modified, but some elements of the dashboard might not render. If this result
// includes error messages, the input was not valid and the operation failed.
DashboardValidationMessages []types.DashboardValidationMessage
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationPutDashboardMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsquery_serializeOpPutDashboard{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsquery_deserializeOpPutDashboard{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "PutDashboard"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
return err
}
if err = addRetryMiddlewares(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
return err
}
if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addOpPutDashboardValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutDashboard(options.Region), middleware.Before); err != nil {
return err
}
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opPutDashboard(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "PutDashboard",
}
}
|