-
Notifications
You must be signed in to change notification settings - Fork 626
/
api_op_UpdatePolicy.go
150 lines (124 loc) · 4.47 KB
/
api_op_UpdatePolicy.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
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package organizations
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
// Please also see https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/UpdatePolicyRequest
type UpdatePolicyInput struct {
_ struct{} `type:"structure"`
// If provided, the new content for the policy. The text must be correctly formatted
// JSON that complies with the syntax for the policy's type. For more information,
// see Service Control Policy Syntax (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
// in the AWS Organizations User Guide.
Content *string `min:"1" type:"string"`
// If provided, the new description for the policy.
Description *string `type:"string"`
// If provided, the new name for the policy.
//
// The regex pattern (http://wikipedia.org/wiki/regex) that is used to validate
// this parameter is a string of any of the characters in the ASCII character
// range.
Name *string `min:"1" type:"string"`
// The unique identifier (ID) of the policy that you want to update.
//
// The regex pattern (http://wikipedia.org/wiki/regex) for a policy ID string
// requires "p-" followed by from 8 to 128 lower-case letters or digits.
//
// PolicyId is a required field
PolicyId *string `type:"string" required:"true"`
}
// String returns the string representation
func (s UpdatePolicyInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdatePolicyInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "UpdatePolicyInput"}
if s.Content != nil && len(*s.Content) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("Content", 1))
}
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("Name", 1))
}
if s.PolicyId == nil {
invalidParams.Add(aws.NewErrParamRequired("PolicyId"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Please also see https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/UpdatePolicyResponse
type UpdatePolicyOutput struct {
_ struct{} `type:"structure"`
// A structure that contains details about the updated policy, showing the requested
// changes.
Policy *Policy `type:"structure"`
}
// String returns the string representation
func (s UpdatePolicyOutput) String() string {
return awsutil.Prettify(s)
}
const opUpdatePolicy = "UpdatePolicy"
// UpdatePolicyRequest returns a request value for making API operation for
// AWS Organizations.
//
// Updates an existing policy with a new name, description, or content. If you
// don't supply any parameter, that value remains unchanged. You can't change
// a policy's type.
//
// This operation can be called only from the organization's master account.
//
// // Example sending a request using UpdatePolicyRequest.
// req := client.UpdatePolicyRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/UpdatePolicy
func (c *Client) UpdatePolicyRequest(input *UpdatePolicyInput) UpdatePolicyRequest {
op := &aws.Operation{
Name: opUpdatePolicy,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &UpdatePolicyInput{}
}
req := c.newRequest(op, input, &UpdatePolicyOutput{})
return UpdatePolicyRequest{Request: req, Input: input, Copy: c.UpdatePolicyRequest}
}
// UpdatePolicyRequest is the request type for the
// UpdatePolicy API operation.
type UpdatePolicyRequest struct {
*aws.Request
Input *UpdatePolicyInput
Copy func(*UpdatePolicyInput) UpdatePolicyRequest
}
// Send marshals and sends the UpdatePolicy API request.
func (r UpdatePolicyRequest) Send(ctx context.Context) (*UpdatePolicyResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &UpdatePolicyResponse{
UpdatePolicyOutput: r.Request.Data.(*UpdatePolicyOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// UpdatePolicyResponse is the response type for the
// UpdatePolicy API operation.
type UpdatePolicyResponse struct {
*UpdatePolicyOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// UpdatePolicy request.
func (r *UpdatePolicyResponse) SDKResponseMetdata() *aws.Response {
return r.response
}