1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package route53domains
4
5import (
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/smithy-go/middleware"
10	smithyhttp "github.com/aws/smithy-go/transport/http"
11)
12
13// This operation renews a domain for the specified number of years. The cost of
14// renewing your domain is billed to your AWS account. We recommend that you renew
15// your domain several weeks before the expiration date. Some TLD registries delete
16// domains before the expiration date if you haven't renewed far enough in advance.
17// For more information about renewing domain registration, see Renewing
18// Registration for a Domain
19// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-renew.html) in
20// the Amazon Route 53 Developer Guide.
21func (c *Client) RenewDomain(ctx context.Context, params *RenewDomainInput, optFns ...func(*Options)) (*RenewDomainOutput, error) {
22	if params == nil {
23		params = &RenewDomainInput{}
24	}
25
26	result, metadata, err := c.invokeOperation(ctx, "RenewDomain", params, optFns, addOperationRenewDomainMiddlewares)
27	if err != nil {
28		return nil, err
29	}
30
31	out := result.(*RenewDomainOutput)
32	out.ResultMetadata = metadata
33	return out, nil
34}
35
36// A RenewDomain request includes the number of years that you want to renew for
37// and the current expiration year.
38type RenewDomainInput struct {
39
40	// The year when the registration for the domain is set to expire. This value must
41	// match the current expiration date for the domain.
42	//
43	// This member is required.
44	CurrentExpiryYear int32
45
46	// The name of the domain that you want to renew.
47	//
48	// This member is required.
49	DomainName *string
50
51	// The number of years that you want to renew the domain for. The maximum number of
52	// years depends on the top-level domain. For the range of valid values for your
53	// domain, see Domains that You Can Register with Amazon Route 53
54	// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html)
55	// in the Amazon Route 53 Developer Guide. Default: 1
56	DurationInYears *int32
57}
58
59type RenewDomainOutput struct {
60
61	// Identifier for tracking the progress of the request. To query the operation
62	// status, use GetOperationDetail
63	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html).
64	//
65	// This member is required.
66	OperationId *string
67
68	// Metadata pertaining to the operation's result.
69	ResultMetadata middleware.Metadata
70}
71
72func addOperationRenewDomainMiddlewares(stack *middleware.Stack, options Options) (err error) {
73	err = stack.Serialize.Add(&awsAwsjson11_serializeOpRenewDomain{}, middleware.After)
74	if err != nil {
75		return err
76	}
77	err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpRenewDomain{}, middleware.After)
78	if err != nil {
79		return err
80	}
81	if err = addSetLoggerMiddleware(stack, options); err != nil {
82		return err
83	}
84	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
85		return err
86	}
87	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
88		return err
89	}
90	if err = addResolveEndpointMiddleware(stack, options); err != nil {
91		return err
92	}
93	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
94		return err
95	}
96	if err = addRetryMiddlewares(stack, options); err != nil {
97		return err
98	}
99	if err = addHTTPSignerV4Middleware(stack, options); err != nil {
100		return err
101	}
102	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
103		return err
104	}
105	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
106		return err
107	}
108	if err = addClientUserAgent(stack); err != nil {
109		return err
110	}
111	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
112		return err
113	}
114	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
115		return err
116	}
117	if err = addOpRenewDomainValidationMiddleware(stack); err != nil {
118		return err
119	}
120	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opRenewDomain(options.Region), middleware.Before); err != nil {
121		return err
122	}
123	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
124		return err
125	}
126	if err = addResponseErrorMiddleware(stack); err != nil {
127		return err
128	}
129	if err = addRequestResponseLogging(stack, options); err != nil {
130		return err
131	}
132	return nil
133}
134
135func newServiceMetadataMiddleware_opRenewDomain(region string) *awsmiddleware.RegisterServiceMetadata {
136	return &awsmiddleware.RegisterServiceMetadata{
137		Region:        region,
138		ServiceID:     ServiceID,
139		SigningName:   "route53domains",
140		OperationName: "RenewDomain",
141	}
142}
143