File: api_op_ListHostedZonesByName.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.30.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 662,428 kB
  • sloc: java: 16,875; makefile: 432; sh: 175
file content (257 lines) | stat: -rw-r--r-- 9,791 bytes parent folder | download
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
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
// Code generated by smithy-go-codegen DO NOT EDIT.

package route53

import (
	"context"
	"fmt"
	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
	"github.com/aws/aws-sdk-go-v2/service/route53/types"
	"github.com/aws/smithy-go/middleware"
	smithyhttp "github.com/aws/smithy-go/transport/http"
)

// Retrieves a list of your hosted zones in lexicographic order. The response
// includes a HostedZones child element for each hosted zone created by the
// current Amazon Web Services account.
//
// ListHostedZonesByName sorts hosted zones by name with the labels reversed. For
// example:
//
//	com.example.www.
//
// Note the trailing dot, which can change the sort order in some circumstances.
//
// If the domain name includes escape characters or Punycode, ListHostedZonesByName
// alphabetizes the domain name using the escaped or Punycoded value, which is the
// format that Amazon Route 53 saves in its database. For example, to create a
// hosted zone for exämple.com, you specify ex\344mple.com for the domain name.
// ListHostedZonesByName alphabetizes it as:
//
//	com.ex\344mple.
//
// The labels are reversed and alphabetized using the escaped value. For more
// information about valid domain name formats, including internationalized domain
// names, see [DNS Domain Name Format]in the Amazon Route 53 Developer Guide.
//
// Route 53 returns up to 100 items in each response. If you have a lot of hosted
// zones, use the MaxItems parameter to list them in groups of up to 100. The
// response includes values that help navigate from one group of MaxItems hosted
// zones to the next:
//
//   - The DNSName and HostedZoneId elements in the response contain the values, if
//     any, specified for the dnsname and hostedzoneid parameters in the request that
//     produced the current response.
//
//   - The MaxItems element in the response contains the value, if any, that you
//     specified for the maxitems parameter in the request that produced the current
//     response.
//
//   - If the value of IsTruncated in the response is true, there are more hosted
//     zones associated with the current Amazon Web Services account.
//
// If IsTruncated is false, this response includes the last hosted zone that is
//
//	associated with the current account. The NextDNSName element and
//	NextHostedZoneId elements are omitted from the response.
//
//	- The NextDNSName and NextHostedZoneId elements in the response contain the
//	domain name and the hosted zone ID of the next hosted zone that is associated
//	with the current Amazon Web Services account. If you want to list more hosted
//	zones, make another call to ListHostedZonesByName , and specify the value of
//	NextDNSName and NextHostedZoneId in the dnsname and hostedzoneid parameters,
//	respectively.
//
// [DNS Domain Name Format]: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html
func (c *Client) ListHostedZonesByName(ctx context.Context, params *ListHostedZonesByNameInput, optFns ...func(*Options)) (*ListHostedZonesByNameOutput, error) {
	if params == nil {
		params = &ListHostedZonesByNameInput{}
	}

	result, metadata, err := c.invokeOperation(ctx, "ListHostedZonesByName", params, optFns, c.addOperationListHostedZonesByNameMiddlewares)
	if err != nil {
		return nil, err
	}

	out := result.(*ListHostedZonesByNameOutput)
	out.ResultMetadata = metadata
	return out, nil
}

// Retrieves a list of the public and private hosted zones that are associated
// with the current Amazon Web Services account in ASCII order by domain name.
type ListHostedZonesByNameInput struct {

	// (Optional) For your first request to ListHostedZonesByName , include the dnsname
	// parameter only if you want to specify the name of the first hosted zone in the
	// response. If you don't include the dnsname parameter, Amazon Route 53 returns
	// all of the hosted zones that were created by the current Amazon Web Services
	// account, in ASCII order. For subsequent requests, include both dnsname and
	// hostedzoneid parameters. For dnsname , specify the value of NextDNSName from
	// the previous response.
	DNSName *string

	// (Optional) For your first request to ListHostedZonesByName , do not include the
	// hostedzoneid parameter.
	//
	// If you have more hosted zones than the value of maxitems , ListHostedZonesByName
	// returns only the first maxitems hosted zones. To get the next group of maxitems
	// hosted zones, submit another request to ListHostedZonesByName and include both
	// dnsname and hostedzoneid parameters. For the value of hostedzoneid , specify the
	// value of the NextHostedZoneId element from the previous response.
	HostedZoneId *string

	// The maximum number of hosted zones to be included in the response body for this
	// request. If you have more than maxitems hosted zones, then the value of the
	// IsTruncated element in the response is true, and the values of NextDNSName and
	// NextHostedZoneId specify the first hosted zone in the next group of maxitems
	// hosted zones.
	MaxItems *int32

	noSmithyDocumentSerde
}

// A complex type that contains the response information for the request.
type ListHostedZonesByNameOutput struct {

	// A complex type that contains general information about the hosted zone.
	//
	// This member is required.
	HostedZones []types.HostedZone

	// A flag that indicates whether there are more hosted zones to be listed. If the
	// response was truncated, you can get the next group of maxitems hosted zones by
	// calling ListHostedZonesByName again and specifying the values of NextDNSName
	// and NextHostedZoneId elements in the dnsname and hostedzoneid parameters.
	//
	// This member is required.
	IsTruncated bool

	// The value that you specified for the maxitems parameter in the call to
	// ListHostedZonesByName that produced the current response.
	//
	// This member is required.
	MaxItems *int32

	// For the second and subsequent calls to ListHostedZonesByName , DNSName is the
	// value that you specified for the dnsname parameter in the request that produced
	// the current response.
	DNSName *string

	// The ID that Amazon Route 53 assigned to the hosted zone when you created it.
	HostedZoneId *string

	// If IsTruncated is true, the value of NextDNSName is the name of the first
	// hosted zone in the next group of maxitems hosted zones. Call
	// ListHostedZonesByName again and specify the value of NextDNSName and
	// NextHostedZoneId in the dnsname and hostedzoneid parameters, respectively.
	//
	// This element is present only if IsTruncated is true .
	NextDNSName *string

	// If IsTruncated is true , the value of NextHostedZoneId identifies the first
	// hosted zone in the next group of maxitems hosted zones. Call
	// ListHostedZonesByName again and specify the value of NextDNSName and
	// NextHostedZoneId in the dnsname and hostedzoneid parameters, respectively.
	//
	// This element is present only if IsTruncated is true .
	NextHostedZoneId *string

	// Metadata pertaining to the operation's result.
	ResultMetadata middleware.Metadata

	noSmithyDocumentSerde
}

func (c *Client) addOperationListHostedZonesByNameMiddlewares(stack *middleware.Stack, options Options) (err error) {
	if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
		return err
	}
	err = stack.Serialize.Add(&awsRestxml_serializeOpListHostedZonesByName{}, middleware.After)
	if err != nil {
		return err
	}
	err = stack.Deserialize.Add(&awsRestxml_deserializeOpListHostedZonesByName{}, middleware.After)
	if err != nil {
		return err
	}
	if err := addProtocolFinalizerMiddlewares(stack, options, "ListHostedZonesByName"); 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 = addClientRequestID(stack); err != nil {
		return err
	}
	if err = addComputeContentLength(stack); err != nil {
		return err
	}
	if err = addResolveEndpointMiddleware(stack, options); err != nil {
		return err
	}
	if err = addComputePayloadSHA256(stack); err != nil {
		return err
	}
	if err = addRetry(stack, options); err != nil {
		return err
	}
	if err = addRawResponseToMetadata(stack); err != nil {
		return err
	}
	if err = 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 = addTimeOffsetBuild(stack, c); err != nil {
		return err
	}
	if err = addUserAgentRetryMode(stack, options); err != nil {
		return err
	}
	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListHostedZonesByName(options.Region), middleware.Before); err != nil {
		return err
	}
	if err = addRecursionDetection(stack); err != nil {
		return err
	}
	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
		return err
	}
	if err = addResponseErrorMiddleware(stack); err != nil {
		return err
	}
	if err = addSanitizeURLMiddleware(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_opListHostedZonesByName(region string) *awsmiddleware.RegisterServiceMetadata {
	return &awsmiddleware.RegisterServiceMetadata{
		Region:        region,
		ServiceID:     ServiceID,
		OperationName: "ListHostedZonesByName",
	}
}