api_op_AssociateVPCWithHostedZone.go raw
1 // Code generated by smithy-go-codegen DO NOT EDIT.
2
3 package route53
4
5 import (
6 "context"
7 "fmt"
8 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
9 "github.com/aws/aws-sdk-go-v2/service/route53/types"
10 "github.com/aws/smithy-go/middleware"
11 smithyhttp "github.com/aws/smithy-go/transport/http"
12 )
13
14 // Associates an Amazon VPC with a private hosted zone.
15 //
16 // To perform the association, the VPC and the private hosted zone must already
17 // exist. You can't convert a public hosted zone into a private hosted zone.
18 //
19 // If you want to associate a VPC that was created by using one Amazon Web
20 // Services account with a private hosted zone that was created by using a
21 // different account, the Amazon Web Services account that created the private
22 // hosted zone must first submit a CreateVPCAssociationAuthorization request. Then
23 // the account that created the VPC must submit an AssociateVPCWithHostedZone
24 // request.
25 //
26 // When granting access, the hosted zone and the Amazon VPC must belong to the
27 // same partition. A partition is a group of Amazon Web Services Regions. Each
28 // Amazon Web Services account is scoped to one partition.
29 //
30 // The following are the supported partitions:
31 //
32 // - aws - Amazon Web Services Regions
33 //
34 // - aws-cn - China Regions
35 //
36 // - aws-us-gov - Amazon Web Services GovCloud (US) Region
37 //
38 // For more information, see [Access Management] in the Amazon Web Services General Reference.
39 //
40 // [Access Management]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
41 func (c *Client) AssociateVPCWithHostedZone(ctx context.Context, params *AssociateVPCWithHostedZoneInput, optFns ...func(*Options)) (*AssociateVPCWithHostedZoneOutput, error) {
42 if params == nil {
43 params = &AssociateVPCWithHostedZoneInput{}
44 }
45
46 result, metadata, err := c.invokeOperation(ctx, "AssociateVPCWithHostedZone", params, optFns, c.addOperationAssociateVPCWithHostedZoneMiddlewares)
47 if err != nil {
48 return nil, err
49 }
50
51 out := result.(*AssociateVPCWithHostedZoneOutput)
52 out.ResultMetadata = metadata
53 return out, nil
54 }
55
56 // A complex type that contains information about the request to associate a VPC
57 // with a private hosted zone.
58 type AssociateVPCWithHostedZoneInput struct {
59
60 // The ID of the private hosted zone that you want to associate an Amazon VPC with.
61 //
62 // Note that you can't associate a VPC with a hosted zone that doesn't have an
63 // existing VPC association.
64 //
65 // This member is required.
66 HostedZoneId *string
67
68 // A complex type that contains information about the VPC that you want to
69 // associate with a private hosted zone.
70 //
71 // This member is required.
72 VPC *types.VPC
73
74 // Optional: A comment about the association request.
75 Comment *string
76
77 noSmithyDocumentSerde
78 }
79
80 // A complex type that contains the response information for the
81 // AssociateVPCWithHostedZone request.
82 type AssociateVPCWithHostedZoneOutput struct {
83
84 // A complex type that describes the changes made to your hosted zone.
85 //
86 // This member is required.
87 ChangeInfo *types.ChangeInfo
88
89 // Metadata pertaining to the operation's result.
90 ResultMetadata middleware.Metadata
91
92 noSmithyDocumentSerde
93 }
94
95 func (c *Client) addOperationAssociateVPCWithHostedZoneMiddlewares(stack *middleware.Stack, options Options) (err error) {
96 if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
97 return err
98 }
99 err = stack.Serialize.Add(&awsRestxml_serializeOpAssociateVPCWithHostedZone{}, middleware.After)
100 if err != nil {
101 return err
102 }
103 err = stack.Deserialize.Add(&awsRestxml_deserializeOpAssociateVPCWithHostedZone{}, middleware.After)
104 if err != nil {
105 return err
106 }
107 if err := addProtocolFinalizerMiddlewares(stack, options, "AssociateVPCWithHostedZone"); err != nil {
108 return fmt.Errorf("add protocol finalizers: %v", err)
109 }
110
111 if err = addlegacyEndpointContextSetter(stack, options); err != nil {
112 return err
113 }
114 if err = addSetLoggerMiddleware(stack, options); err != nil {
115 return err
116 }
117 if err = addClientRequestID(stack); err != nil {
118 return err
119 }
120 if err = addComputeContentLength(stack); err != nil {
121 return err
122 }
123 if err = addResolveEndpointMiddleware(stack, options); err != nil {
124 return err
125 }
126 if err = addComputePayloadSHA256(stack); err != nil {
127 return err
128 }
129 if err = addRetry(stack, options); err != nil {
130 return err
131 }
132 if err = addRawResponseToMetadata(stack); err != nil {
133 return err
134 }
135 if err = addRecordResponseTiming(stack); err != nil {
136 return err
137 }
138 if err = addSpanRetryLoop(stack, options); err != nil {
139 return err
140 }
141 if err = addClientUserAgent(stack, options); err != nil {
142 return err
143 }
144 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
145 return err
146 }
147 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
148 return err
149 }
150 if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
151 return err
152 }
153 if err = addTimeOffsetBuild(stack, c); err != nil {
154 return err
155 }
156 if err = addUserAgentRetryMode(stack, options); err != nil {
157 return err
158 }
159 if err = addCredentialSource(stack, options); err != nil {
160 return err
161 }
162 if err = addOpAssociateVPCWithHostedZoneValidationMiddleware(stack); err != nil {
163 return err
164 }
165 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateVPCWithHostedZone(options.Region), middleware.Before); err != nil {
166 return err
167 }
168 if err = addRecursionDetection(stack); err != nil {
169 return err
170 }
171 if err = addRequestIDRetrieverMiddleware(stack); err != nil {
172 return err
173 }
174 if err = addResponseErrorMiddleware(stack); err != nil {
175 return err
176 }
177 if err = addSanitizeURLMiddleware(stack); err != nil {
178 return err
179 }
180 if err = addRequestResponseLogging(stack, options); err != nil {
181 return err
182 }
183 if err = addDisableHTTPSMiddleware(stack, options); err != nil {
184 return err
185 }
186 if err = addInterceptBeforeRetryLoop(stack, options); err != nil {
187 return err
188 }
189 if err = addInterceptAttempt(stack, options); err != nil {
190 return err
191 }
192 if err = addInterceptors(stack, options); err != nil {
193 return err
194 }
195 return nil
196 }
197
198 func newServiceMetadataMiddleware_opAssociateVPCWithHostedZone(region string) *awsmiddleware.RegisterServiceMetadata {
199 return &awsmiddleware.RegisterServiceMetadata{
200 Region: region,
201 ServiceID: ServiceID,
202 OperationName: "AssociateVPCWithHostedZone",
203 }
204 }
205