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 194
|
// 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/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)
// ). 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 = 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 = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
return err
}
if err = awsmiddleware.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 = awsmiddleware.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",
}
}
|