api_op_CreateReusableDelegationSet.go (6464B)
1 // Code generated by smithy-go-codegen DO NOT EDIT. 2 3 package route53 4 5 import ( 6 "context" 7 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 8 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 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 // Creates a delegation set (a group of four name servers) that can be reused by 15 // multiple hosted zones that were created by the same Amazon Web Services account. 16 // You can also create a reusable delegation set that uses the four name servers 17 // that are associated with an existing hosted zone. Specify the hosted zone ID in 18 // the CreateReusableDelegationSet request. You can't associate a reusable 19 // delegation set with a private hosted zone. For information about using a 20 // reusable delegation set to configure white label name servers, see Configuring 21 // White Label Name Servers 22 // (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/white-label-name-servers.html). 23 // The process for migrating existing hosted zones to use a reusable delegation set 24 // is comparable to the process for configuring white label name servers. You need 25 // to perform the following steps: 26 // 27 // * Create a reusable delegation set. 28 // 29 // * Recreate 30 // hosted zones, and reduce the TTL to 60 seconds or less. 31 // 32 // * Recreate resource 33 // record sets in the new hosted zones. 34 // 35 // * Change the registrar's name servers to 36 // use the name servers for the new hosted zones. 37 // 38 // * Monitor traffic for the 39 // website or application. 40 // 41 // * Change TTLs back to their original values. 42 // 43 // If you 44 // want to migrate existing hosted zones to use a reusable delegation set, the 45 // existing hosted zones can't use any of the name servers that are assigned to the 46 // reusable delegation set. If one or more hosted zones do use one or more name 47 // servers that are assigned to the reusable delegation set, you can do one of the 48 // following: 49 // 50 // * For small numbers of hosted zones—up to a few hundred—it's 51 // relatively easy to create reusable delegation sets until you get one that has 52 // four name servers that don't overlap with any of the name servers in your hosted 53 // zones. 54 // 55 // * For larger numbers of hosted zones, the easiest solution is to use 56 // more than one reusable delegation set. 57 // 58 // * For larger numbers of hosted zones, 59 // you can also migrate hosted zones that have overlapping name servers to hosted 60 // zones that don't have overlapping name servers, then migrate the hosted zones 61 // again to use the reusable delegation set. 62 func (c *Client) CreateReusableDelegationSet(ctx context.Context, params *CreateReusableDelegationSetInput, optFns ...func(*Options)) (*CreateReusableDelegationSetOutput, error) { 63 if params == nil { 64 params = &CreateReusableDelegationSetInput{} 65 } 66 67 result, metadata, err := c.invokeOperation(ctx, "CreateReusableDelegationSet", params, optFns, c.addOperationCreateReusableDelegationSetMiddlewares) 68 if err != nil { 69 return nil, err 70 } 71 72 out := result.(*CreateReusableDelegationSetOutput) 73 out.ResultMetadata = metadata 74 return out, nil 75 } 76 77 type CreateReusableDelegationSetInput struct { 78 79 // A unique string that identifies the request, and that allows you to retry failed 80 // CreateReusableDelegationSet requests without the risk of executing the operation 81 // twice. You must use a unique CallerReference string every time you submit a 82 // CreateReusableDelegationSet request. CallerReference can be any unique string, 83 // for example a date/time stamp. 84 // 85 // This member is required. 86 CallerReference *string 87 88 // If you want to mark the delegation set for an existing hosted zone as reusable, 89 // the ID for that hosted zone. 90 HostedZoneId *string 91 92 noSmithyDocumentSerde 93 } 94 95 type CreateReusableDelegationSetOutput struct { 96 97 // A complex type that contains name server information. 98 // 99 // This member is required. 100 DelegationSet *types.DelegationSet 101 102 // The unique URL representing the new reusable delegation set. 103 // 104 // This member is required. 105 Location *string 106 107 // Metadata pertaining to the operation's result. 108 ResultMetadata middleware.Metadata 109 110 noSmithyDocumentSerde 111 } 112 113 func (c *Client) addOperationCreateReusableDelegationSetMiddlewares(stack *middleware.Stack, options Options) (err error) { 114 err = stack.Serialize.Add(&awsRestxml_serializeOpCreateReusableDelegationSet{}, middleware.After) 115 if err != nil { 116 return err 117 } 118 err = stack.Deserialize.Add(&awsRestxml_deserializeOpCreateReusableDelegationSet{}, middleware.After) 119 if err != nil { 120 return err 121 } 122 if err = addSetLoggerMiddleware(stack, options); err != nil { 123 return err 124 } 125 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 126 return err 127 } 128 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 129 return err 130 } 131 if err = addResolveEndpointMiddleware(stack, options); err != nil { 132 return err 133 } 134 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 135 return err 136 } 137 if err = addRetryMiddlewares(stack, options); err != nil { 138 return err 139 } 140 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 141 return err 142 } 143 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 144 return err 145 } 146 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 147 return err 148 } 149 if err = addClientUserAgent(stack); err != nil { 150 return err 151 } 152 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 153 return err 154 } 155 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 156 return err 157 } 158 if err = addOpCreateReusableDelegationSetValidationMiddleware(stack); err != nil { 159 return err 160 } 161 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateReusableDelegationSet(options.Region), middleware.Before); err != nil { 162 return err 163 } 164 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 165 return err 166 } 167 if err = addResponseErrorMiddleware(stack); err != nil { 168 return err 169 } 170 if err = addSanitizeURLMiddleware(stack); err != nil { 171 return err 172 } 173 if err = addRequestResponseLogging(stack, options); err != nil { 174 return err 175 } 176 return nil 177 } 178 179 func newServiceMetadataMiddleware_opCreateReusableDelegationSet(region string) *awsmiddleware.RegisterServiceMetadata { 180 return &awsmiddleware.RegisterServiceMetadata{ 181 Region: region, 182 ServiceID: ServiceID, 183 SigningName: "route53", 184 OperationName: "CreateReusableDelegationSet", 185 } 186 }