-
Notifications
You must be signed in to change notification settings - Fork 598
/
api_op_CreateSnapshotCopyGrant.go
153 lines (128 loc) · 5.08 KB
/
api_op_CreateSnapshotCopyGrant.go
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
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package redshift
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
// The result of the CreateSnapshotCopyGrant action.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrantMessage
type CreateSnapshotCopyGrantInput struct {
_ struct{} `type:"structure"`
// The unique identifier of the customer master key (CMK) to which to grant
// Amazon Redshift permission. If no key is specified, the default key is used.
KmsKeyId *string `type:"string"`
// The name of the snapshot copy grant. This name must be unique in the region
// for the AWS account.
//
// Constraints:
//
// * Must contain from 1 to 63 alphanumeric characters or hyphens.
//
// * Alphabetic characters must be lowercase.
//
// * First character must be a letter.
//
// * Cannot end with a hyphen or contain two consecutive hyphens.
//
// * Must be unique for all clusters within an AWS account.
//
// SnapshotCopyGrantName is a required field
SnapshotCopyGrantName *string `type:"string" required:"true"`
// A list of tag instances.
Tags []Tag `locationNameList:"Tag" type:"list"`
}
// String returns the string representation
func (s CreateSnapshotCopyGrantInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateSnapshotCopyGrantInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "CreateSnapshotCopyGrantInput"}
if s.SnapshotCopyGrantName == nil {
invalidParams.Add(aws.NewErrParamRequired("SnapshotCopyGrantName"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrantResult
type CreateSnapshotCopyGrantOutput struct {
_ struct{} `type:"structure"`
// The snapshot copy grant that grants Amazon Redshift permission to encrypt
// copied snapshots with the specified customer master key (CMK) from AWS KMS
// in the destination region.
//
// For more information about managing snapshot copy grants, go to Amazon Redshift
// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
// in the Amazon Redshift Cluster Management Guide.
SnapshotCopyGrant *SnapshotCopyGrant `type:"structure"`
}
// String returns the string representation
func (s CreateSnapshotCopyGrantOutput) String() string {
return awsutil.Prettify(s)
}
const opCreateSnapshotCopyGrant = "CreateSnapshotCopyGrant"
// CreateSnapshotCopyGrantRequest returns a request value for making API operation for
// Amazon Redshift.
//
// Creates a snapshot copy grant that permits Amazon Redshift to use a customer
// master key (CMK) from AWS Key Management Service (AWS KMS) to encrypt copied
// snapshots in a destination region.
//
// For more information about managing snapshot copy grants, go to Amazon Redshift
// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
// in the Amazon Redshift Cluster Management Guide.
//
// // Example sending a request using CreateSnapshotCopyGrantRequest.
// req := client.CreateSnapshotCopyGrantRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrant
func (c *Client) CreateSnapshotCopyGrantRequest(input *CreateSnapshotCopyGrantInput) CreateSnapshotCopyGrantRequest {
op := &aws.Operation{
Name: opCreateSnapshotCopyGrant,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &CreateSnapshotCopyGrantInput{}
}
req := c.newRequest(op, input, &CreateSnapshotCopyGrantOutput{})
return CreateSnapshotCopyGrantRequest{Request: req, Input: input, Copy: c.CreateSnapshotCopyGrantRequest}
}
// CreateSnapshotCopyGrantRequest is the request type for the
// CreateSnapshotCopyGrant API operation.
type CreateSnapshotCopyGrantRequest struct {
*aws.Request
Input *CreateSnapshotCopyGrantInput
Copy func(*CreateSnapshotCopyGrantInput) CreateSnapshotCopyGrantRequest
}
// Send marshals and sends the CreateSnapshotCopyGrant API request.
func (r CreateSnapshotCopyGrantRequest) Send(ctx context.Context) (*CreateSnapshotCopyGrantResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &CreateSnapshotCopyGrantResponse{
CreateSnapshotCopyGrantOutput: r.Request.Data.(*CreateSnapshotCopyGrantOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// CreateSnapshotCopyGrantResponse is the response type for the
// CreateSnapshotCopyGrant API operation.
type CreateSnapshotCopyGrantResponse struct {
*CreateSnapshotCopyGrantOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// CreateSnapshotCopyGrant request.
func (r *CreateSnapshotCopyGrantResponse) SDKResponseMetdata() *aws.Response {
return r.response
}