/
api_op_AssociateVpcCidrBlock.go
193 lines (167 loc) · 6.57 KB
/
api_op_AssociateVpcCidrBlock.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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
// Code generated by smithy-go-codegen DO NOT EDIT.
package ec2
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/service/ec2/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR
// block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6
// address pool that you provisioned through bring your own IP addresses ( BYOIP (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)
// ). You must specify one of the following in the request: an IPv4 CIDR block, an
// IPv6 pool, or an Amazon-provided IPv6 CIDR block. For more information about
// associating CIDR blocks with your VPC and applicable restrictions, see IP
// addressing for your VPCs and subnets (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html)
// in the Amazon VPC User Guide.
func (c *Client) AssociateVpcCidrBlock(ctx context.Context, params *AssociateVpcCidrBlockInput, optFns ...func(*Options)) (*AssociateVpcCidrBlockOutput, error) {
if params == nil {
params = &AssociateVpcCidrBlockInput{}
}
result, metadata, err := c.invokeOperation(ctx, "AssociateVpcCidrBlock", params, optFns, c.addOperationAssociateVpcCidrBlockMiddlewares)
if err != nil {
return nil, err
}
out := result.(*AssociateVpcCidrBlockOutput)
out.ResultMetadata = metadata
return out, nil
}
type AssociateVpcCidrBlockInput struct {
// The ID of the VPC.
//
// This member is required.
VpcId *string
// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the
// VPC. You cannot specify the range of IPv6 addresses or the size of the CIDR
// block.
AmazonProvidedIpv6CidrBlock *bool
// An IPv4 CIDR block to associate with the VPC.
CidrBlock *string
// Associate a CIDR allocated from an IPv4 IPAM pool to a VPC. For more
// information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? (https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html)
// in the Amazon VPC IPAM User Guide.
Ipv4IpamPoolId *string
// The netmask length of the IPv4 CIDR you would like to associate from an Amazon
// VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What
// is IPAM? (https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in
// the Amazon VPC IPAM User Guide.
Ipv4NetmaskLength *int32
// An IPv6 CIDR block from the IPv6 address pool. You must also specify Ipv6Pool
// in the request. To let Amazon choose the IPv6 CIDR block for you, omit this
// parameter.
Ipv6CidrBlock *string
// The name of the location from which we advertise the IPV6 CIDR block. Use this
// parameter to limit the CIDR block to this location. You must set
// AmazonProvidedIpv6CidrBlock to true to use this parameter. You can have one
// IPv6 CIDR block association per network border group.
Ipv6CidrBlockNetworkBorderGroup *string
// Associates a CIDR allocated from an IPv6 IPAM pool to a VPC. For more
// information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? (https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html)
// in the Amazon VPC IPAM User Guide.
Ipv6IpamPoolId *string
// The netmask length of the IPv6 CIDR you would like to associate from an Amazon
// VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What
// is IPAM? (https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in
// the Amazon VPC IPAM User Guide.
Ipv6NetmaskLength *int32
// The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.
Ipv6Pool *string
noSmithyDocumentSerde
}
type AssociateVpcCidrBlockOutput struct {
// Information about the IPv4 CIDR block association.
CidrBlockAssociation *types.VpcCidrBlockAssociation
// Information about the IPv6 CIDR block association.
Ipv6CidrBlockAssociation *types.VpcIpv6CidrBlockAssociation
// The ID of the VPC.
VpcId *string
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationAssociateVpcCidrBlockMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsEc2query_serializeOpAssociateVpcCidrBlock{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsEc2query_deserializeOpAssociateVpcCidrBlock{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "AssociateVpcCidrBlock"); 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 = addClientRequestID(stack); err != nil {
return err
}
if err = addComputeContentLength(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = addComputePayloadSHA256(stack); err != nil {
return err
}
if err = addRetry(stack, options); err != nil {
return err
}
if err = addRawResponseToMetadata(stack); err != nil {
return err
}
if err = 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 = addOpAssociateVpcCidrBlockValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateVpcCidrBlock(options.Region), middleware.Before); err != nil {
return err
}
if err = 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_opAssociateVpcCidrBlock(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "AssociateVpcCidrBlock",
}
}