-
Notifications
You must be signed in to change notification settings - Fork 597
/
api_op_PutConfigRule.go
146 lines (133 loc) · 5.17 KB
/
api_op_PutConfigRule.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
// Code generated by smithy-go-codegen DO NOT EDIT.
package configservice
import (
"context"
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/configservice/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Adds or updates an Config rule for evaluating whether your Amazon Web Services
// resources comply with your desired configurations. You can use this action for
// Config custom rules and Config managed rules. A Config custom rule is a rule
// that you develop and maintain. An Config managed rule is a customizable,
// predefined rule that Config provides. If you are adding a new Config custom
// rule, you must first create the Lambda function that the rule invokes to
// evaluate your resources. When you use the PutConfigRule action to add the rule
// to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns
// to the function. Specify the ARN for the SourceIdentifier key. This key is part
// of the Source object, which is part of the ConfigRule object. If you are adding
// an Config managed rule, specify the rule's identifier for the SourceIdentifier
// key. To reference Config managed rule identifiers, see About Config managed
// rules
// (https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html).
// For any new rule that you add, specify the ConfigRuleName in the ConfigRule
// object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are
// generated by Config for new rules. If you are updating a rule that you added
// previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or
// ConfigRuleArn in the ConfigRule data type that you use in this request. The
// maximum number of rules that Config supports is 150. For information about
// requesting a rule limit increase, see Config Limits
// (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config)
// in the Amazon Web Services General Reference Guide. For more information about
// developing and using Config rules, see Evaluating Amazon Web Services resource
// Configurations with Config
// (https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html)
// in the Config Developer Guide.
func (c *Client) PutConfigRule(ctx context.Context, params *PutConfigRuleInput, optFns ...func(*Options)) (*PutConfigRuleOutput, error) {
if params == nil {
params = &PutConfigRuleInput{}
}
result, metadata, err := c.invokeOperation(ctx, "PutConfigRule", params, optFns, c.addOperationPutConfigRuleMiddlewares)
if err != nil {
return nil, err
}
out := result.(*PutConfigRuleOutput)
out.ResultMetadata = metadata
return out, nil
}
type PutConfigRuleInput struct {
// The rule that you want to add to your account.
//
// This member is required.
ConfigRule *types.ConfigRule
// An array of tag object.
Tags []types.Tag
noSmithyDocumentSerde
}
type PutConfigRuleOutput struct {
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationPutConfigRuleMiddlewares(stack *middleware.Stack, options Options) (err error) {
err = stack.Serialize.Add(&awsAwsjson11_serializeOpPutConfigRule{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpPutConfigRule{}, middleware.After)
if 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 = addHTTPSignerV4Middleware(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); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addOpPutConfigRuleValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutConfigRule(options.Region), middleware.Before); 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
}
return nil
}
func newServiceMetadataMiddleware_opPutConfigRule(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
SigningName: "config",
OperationName: "PutConfigRule",
}
}