code.dwrz.net

Go monorepo.
Log | Files | Refs

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 }