-
Notifications
You must be signed in to change notification settings - Fork 597
/
api_op_AssociateVpcCidrBlock.go
158 lines (137 loc) · 5.1 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
// Code generated by smithy-go-codegen DO NOT EDIT.
package ec2
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/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)). The IPv6
// CIDR block size is fixed at /56. 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 VPC and subnet sizing
// (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing)
// in the Amazon Virtual Private Cloud 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
// 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
// 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) {
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 = 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 = addOpAssociateVpcCidrBlockValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateVpcCidrBlock(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_opAssociateVpcCidrBlock(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
SigningName: "ec2",
OperationName: "AssociateVpcCidrBlock",
}
}