File: types.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.24.1-2~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 554,032 kB
  • sloc: java: 15,941; makefile: 419; sh: 175
file content (775 lines) | stat: -rw-r--r-- 32,348 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
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
// Code generated by smithy-go-codegen DO NOT EDIT.

package types

import (
	smithydocument "github.com/aws/smithy-go/document"
	"time"
)

// An accelerator is a complex type that includes one or more listeners that
// process inbound connections and then direct traffic to one or more endpoint
// groups, each of which includes endpoints, such as load balancers.
type Accelerator struct {

	// The Amazon Resource Name (ARN) of the accelerator.
	AcceleratorArn *string

	// The date and time that the accelerator was created.
	CreatedTime *time.Time

	// The Domain Name System (DNS) name that Global Accelerator creates that points
	// to an accelerator's static IPv4 addresses. The naming convention for the DNS
	// name for an accelerator is the following: A lowercase letter a, followed by a
	// 16-bit random hex string, followed by .awsglobalaccelerator.com. For example:
	// a1234567890abcdef.awsglobalaccelerator.com. If you have a dual-stack
	// accelerator, you also have a second DNS name, DualStackDnsName , that points to
	// both the A record and the AAAA record for all four static addresses for the
	// accelerator: two IPv4 addresses and two IPv6 addresses. For more information
	// about the default DNS name, see Support for DNS addressing in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html)
	// in the Global Accelerator Developer Guide.
	DnsName *string

	// The Domain Name System (DNS) name that Global Accelerator creates that points
	// to a dual-stack accelerator's four static IP addresses: two IPv4 addresses and
	// two IPv6 addresses. The naming convention for the dual-stack DNS name is the
	// following: A lowercase letter a, followed by a 16-bit random hex string,
	// followed by .dualstack.awsglobalaccelerator.com. For example:
	// a1234567890abcdef.dualstack.awsglobalaccelerator.com. Note: Global Accelerator
	// also assigns a default DNS name, DnsName , to your accelerator that points just
	// to the static IPv4 addresses. For more information, see Support for DNS
	// addressing in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing)
	// in the Global Accelerator Developer Guide.
	DualStackDnsName *string

	// Indicates whether the accelerator is enabled. The value is true or false. The
	// default value is true. If the value is set to true, the accelerator cannot be
	// deleted. If set to false, accelerator can be deleted.
	Enabled *bool

	// A history of changes that you make to an accelerator in Global Accelerator.
	Events []AcceleratorEvent

	// The IP address type that an accelerator supports. For a standard accelerator,
	// the value can be IPV4 or DUAL_STACK.
	IpAddressType IpAddressType

	// The static IP addresses that Global Accelerator associates with the accelerator.
	IpSets []IpSet

	// The date and time that the accelerator was last modified.
	LastModifiedTime *time.Time

	// The name of the accelerator. The name must contain only alphanumeric characters
	// or hyphens (-), and must not begin or end with a hyphen.
	Name *string

	// Describes the deployment status of the accelerator.
	Status AcceleratorStatus

	noSmithyDocumentSerde
}

// Attributes of an accelerator.
type AcceleratorAttributes struct {

	// Indicates whether flow logs are enabled. The default value is false. If the
	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified. For
	// more information, see Flow logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
	// in the Global Accelerator Developer Guide.
	FlowLogsEnabled *bool

	// The name of the Amazon S3 bucket for the flow logs. Attribute is required if
	// FlowLogsEnabled is true . The bucket must exist and have a bucket policy that
	// grants Global Accelerator permission to write to the bucket.
	FlowLogsS3Bucket *string

	// The prefix for the location in the Amazon S3 bucket for the flow logs.
	// Attribute is required if FlowLogsEnabled is true . If you specify slash (/) for
	// the S3 bucket prefix, the log file bucket folder structure will include a double
	// slash (//), like the following: s3-bucket_name//AWSLogs/aws_account_id
	FlowLogsS3Prefix *string

	noSmithyDocumentSerde
}

// A complex type that contains a Timestamp value and Message for changes that you
// make to an accelerator in Global Accelerator. Messages stored here provide
// progress or error information when you update an accelerator from IPv4 to
// dual-stack, or from dual-stack to IPv4. Global Accelerator stores a maximum of
// ten event messages.
type AcceleratorEvent struct {

	// A string that contains an Event message describing changes or errors when you
	// update an accelerator in Global Accelerator from IPv4 to dual-stack, or
	// dual-stack to IPv4.
	Message *string

	// A timestamp for when you update an accelerator in Global Accelerator from IPv4
	// to dual-stack, or dual-stack to IPv4.
	Timestamp *time.Time

	noSmithyDocumentSerde
}

// A cross-account attachment in Global Accelerator. A cross-account attachment
// specifies the principals who have permission to add to accelerators in their own
// account the resources in your account that you also list in the attachment.
type Attachment struct {

	// The Amazon Resource Name (ARN) of the cross-account attachment.
	AttachmentArn *string

	// The date and time that the cross-account attachment was created.
	CreatedTime *time.Time

	// The date and time that the cross-account attachment was last modified.
	LastModifiedTime *time.Time

	// The name of the cross-account attachment.
	Name *string

	// The principals included in the cross-account attachment.
	Principals []string

	// The resources included in the cross-account attachment.
	Resources []Resource

	noSmithyDocumentSerde
}

// Information about an IP address range that is provisioned for use with your
// Amazon Web Services resources through bring your own IP address (BYOIP). The
// following describes each BYOIP State that your IP address range can be in.
//   - PENDING_PROVISIONING — You’ve submitted a request to provision an IP
//     address range but it is not yet provisioned with Global Accelerator.
//   - READY — The address range is provisioned with Global Accelerator and can be
//     advertised.
//   - PENDING_ADVERTISING — You’ve submitted a request for Global Accelerator to
//     advertise an address range but it is not yet being advertised.
//   - ADVERTISING — The address range is being advertised by Global Accelerator.
//   - PENDING_WITHDRAWING — You’ve submitted a request to withdraw an address
//     range from being advertised but it is still being advertised by Global
//     Accelerator.
//   - PENDING_DEPROVISIONING — You’ve submitted a request to deprovision an
//     address range from Global Accelerator but it is still provisioned.
//   - DEPROVISIONED — The address range is deprovisioned from Global Accelerator.
//   - FAILED_PROVISION — The request to provision the address range from Global
//     Accelerator was not successful. Please make sure that you provide all of the
//     correct information, and try again. If the request fails a second time, contact
//     Amazon Web Services support.
//   - FAILED_ADVERTISING — The request for Global Accelerator to advertise the
//     address range was not successful. Please make sure that you provide all of the
//     correct information, and try again. If the request fails a second time, contact
//     Amazon Web Services support.
//   - FAILED_WITHDRAW — The request to withdraw the address range from
//     advertising by Global Accelerator was not successful. Please make sure that you
//     provide all of the correct information, and try again. If the request fails a
//     second time, contact Amazon Web Services support.
//   - FAILED_DEPROVISION — The request to deprovision the address range from
//     Global Accelerator was not successful. Please make sure that you provide all of
//     the correct information, and try again. If the request fails a second time,
//     contact Amazon Web Services support.
type ByoipCidr struct {

	// The address range, in CIDR notation.
	Cidr *string

	// A history of status changes for an IP address range that you bring to Global
	// Accelerator through bring your own IP address (BYOIP).
	Events []ByoipCidrEvent

	// The state of the address pool.
	State ByoipCidrState

	noSmithyDocumentSerde
}

// A complex type that contains a Message and a Timestamp value for changes that
// you make in the status of an IP address range that you bring to Global
// Accelerator through bring your own IP address (BYOIP).
type ByoipCidrEvent struct {

	// A string that contains an Event message describing changes that you make in the
	// status of an IP address range that you bring to Global Accelerator through bring
	// your own IP address (BYOIP).
	Message *string

	// A timestamp for when you make a status change for an IP address range that you
	// bring to Global Accelerator through bring your own IP address (BYOIP).
	Timestamp *time.Time

	noSmithyDocumentSerde
}

// Provides authorization for Amazon to bring a specific IP address range to a
// specific Amazon Web Services account using bring your own IP addresses (BYOIP).
// For more information, see Bring your own IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
// in the Global Accelerator Developer Guide.
type CidrAuthorizationContext struct {

	// The plain-text authorization message for the prefix and account.
	//
	// This member is required.
	Message *string

	// The signed authorization message for the prefix and account.
	//
	// This member is required.
	Signature *string

	noSmithyDocumentSerde
}

// An endpoint (Amazon Web Services resource) that is listed in a cross-account
// attachment and can be added to an accelerator by specified principals, that are
// also listed in the attachment.
type CrossAccountResource struct {

	// The Amazon Resource Name (ARN) of the cross-account attachment that specifies
	// the endpoints (resources) that can be added to accelerators and principals that
	// have permission to add the endpoints to accelerators.
	AttachmentArn *string

	// The endpoint ID for the endpoint that is listed in a cross-account attachment
	// and can be added to an accelerator by specified principals.
	EndpointId *string

	noSmithyDocumentSerde
}

// Attributes of a custom routing accelerator.
type CustomRoutingAccelerator struct {

	// The Amazon Resource Name (ARN) of the custom routing accelerator.
	AcceleratorArn *string

	// The date and time that the accelerator was created.
	CreatedTime *time.Time

	// The Domain Name System (DNS) name that Global Accelerator creates that points
	// to an accelerator's static IPv4 addresses. The naming convention for the DNS
	// name is the following: A lowercase letter a, followed by a 16-bit random hex
	// string, followed by .awsglobalaccelerator.com. For example:
	// a1234567890abcdef.awsglobalaccelerator.com. If you have a dual-stack
	// accelerator, you also have a second DNS name, DualStackDnsName , that points to
	// both the A record and the AAAA record for all four static addresses for the
	// accelerator: two IPv4 addresses and two IPv6 addresses. For more information
	// about the default DNS name, see Support for DNS addressing in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html)
	// in the Global Accelerator Developer Guide.
	DnsName *string

	// Indicates whether the accelerator is enabled. The value is true or false. The
	// default value is true. If the value is set to true, the accelerator cannot be
	// deleted. If set to false, accelerator can be deleted.
	Enabled *bool

	// The IP address type that an accelerator supports. For a custom routing
	// accelerator, the value must be IPV4.
	IpAddressType IpAddressType

	// The static IP addresses that Global Accelerator associates with the accelerator.
	IpSets []IpSet

	// The date and time that the accelerator was last modified.
	LastModifiedTime *time.Time

	// The name of the accelerator. The name must contain only alphanumeric characters
	// or hyphens (-), and must not begin or end with a hyphen.
	Name *string

	// Describes the deployment status of the accelerator.
	Status CustomRoutingAcceleratorStatus

	noSmithyDocumentSerde
}

// Attributes of a custom routing accelerator.
type CustomRoutingAcceleratorAttributes struct {

	// Indicates whether flow logs are enabled. The default value is false. If the
	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified. For
	// more information, see Flow logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
	// in the Global Accelerator Developer Guide.
	FlowLogsEnabled *bool

	// The name of the Amazon S3 bucket for the flow logs. Attribute is required if
	// FlowLogsEnabled is true . The bucket must exist and have a bucket policy that
	// grants Global Accelerator permission to write to the bucket.
	FlowLogsS3Bucket *string

	// The prefix for the location in the Amazon S3 bucket for the flow logs.
	// Attribute is required if FlowLogsEnabled is true . If you don’t specify a
	// prefix, the flow logs are stored in the root of the bucket. If you specify slash
	// (/) for the S3 bucket prefix, the log file bucket folder structure will include
	// a double slash (//), like the following:
	// DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id
	FlowLogsS3Prefix *string

	noSmithyDocumentSerde
}

// For a custom routing accelerator, sets the port range and protocol for all
// endpoints (virtual private cloud subnets) in an endpoint group to accept client
// traffic on.
type CustomRoutingDestinationConfiguration struct {

	// The first port, inclusive, in the range of ports for the endpoint group that is
	// associated with a custom routing accelerator.
	//
	// This member is required.
	FromPort *int32

	// The protocol for the endpoint group that is associated with a custom routing
	// accelerator. The protocol can be either TCP or UDP.
	//
	// This member is required.
	Protocols []CustomRoutingProtocol

	// The last port, inclusive, in the range of ports for the endpoint group that is
	// associated with a custom routing accelerator.
	//
	// This member is required.
	ToPort *int32

	noSmithyDocumentSerde
}

// For a custom routing accelerator, describes the port range and protocol for all
// endpoints (virtual private cloud subnets) in an endpoint group to accept client
// traffic on.
type CustomRoutingDestinationDescription struct {

	// The first port, inclusive, in the range of ports for the endpoint group that is
	// associated with a custom routing accelerator.
	FromPort *int32

	// The protocol for the endpoint group that is associated with a custom routing
	// accelerator. The protocol can be either TCP or UDP.
	Protocols []Protocol

	// The last port, inclusive, in the range of ports for the endpoint group that is
	// associated with a custom routing accelerator.
	ToPort *int32

	noSmithyDocumentSerde
}

// The list of endpoint objects. For custom routing, this is a list of virtual
// private cloud (VPC) subnet IDs.
type CustomRoutingEndpointConfiguration struct {

	// The Amazon Resource Name (ARN) of the cross-account attachment that specifies
	// the endpoints (resources) that can be added to accelerators and principals that
	// have permission to add the endpoints to accelerators.
	AttachmentArn *string

	// An ID for the endpoint. For custom routing accelerators, this is the virtual
	// private cloud (VPC) subnet ID.
	EndpointId *string

	noSmithyDocumentSerde
}

// A complex type for an endpoint for a custom routing accelerator. Each endpoint
// group can include one or more endpoints, which are virtual private cloud (VPC)
// subnets.
type CustomRoutingEndpointDescription struct {

	// An ID for the endpoint. For custom routing accelerators, this is the virtual
	// private cloud (VPC) subnet ID.
	EndpointId *string

	noSmithyDocumentSerde
}

// A complex type for the endpoint group for a custom routing accelerator. An
// Amazon Web Services Region can have only one endpoint group for a specific
// listener.
type CustomRoutingEndpointGroup struct {

	// For a custom routing accelerator, describes the port range and protocol for all
	// endpoints (virtual private cloud subnets) in an endpoint group to accept client
	// traffic on.
	DestinationDescriptions []CustomRoutingDestinationDescription

	// For a custom routing accelerator, describes the endpoints (virtual private
	// cloud subnets) in an endpoint group to accept client traffic on.
	EndpointDescriptions []CustomRoutingEndpointDescription

	// The Amazon Resource Name (ARN) of the endpoint group.
	EndpointGroupArn *string

	// The Amazon Web Services Region where the endpoint group is located.
	EndpointGroupRegion *string

	noSmithyDocumentSerde
}

// A complex type for a listener for a custom routing accelerator.
type CustomRoutingListener struct {

	// The Amazon Resource Name (ARN) of the listener.
	ListenerArn *string

	// The port range to support for connections from clients to your accelerator.
	// Separately, you set port ranges for endpoints. For more information, see About
	// endpoints for custom routing accelerators (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html)
	// .
	PortRanges []PortRange

	noSmithyDocumentSerde
}

// The port mappings for a specified endpoint IP address (destination).
type DestinationPortMapping struct {

	// The Amazon Resource Name (ARN) of the custom routing accelerator that you have
	// port mappings for.
	AcceleratorArn *string

	// The IP address/port combinations (sockets) that map to a given destination
	// socket address.
	AcceleratorSocketAddresses []SocketAddress

	// The endpoint IP address/port combination for traffic received on the
	// accelerator socket address.
	DestinationSocketAddress *SocketAddress

	// Indicates whether or not a port mapping destination can receive traffic. The
	// value is either ALLOW, if traffic is allowed to the destination, or DENY, if
	// traffic is not allowed to the destination.
	DestinationTrafficState CustomRoutingDestinationTrafficState

	// The Amazon Resource Name (ARN) of the endpoint group.
	EndpointGroupArn *string

	// The Amazon Web Services Region for the endpoint group.
	EndpointGroupRegion *string

	// The ID for the virtual private cloud (VPC) subnet.
	EndpointId *string

	// The IP address type that an accelerator supports. For a custom routing
	// accelerator, the value must be IPV4.
	IpAddressType IpAddressType

	noSmithyDocumentSerde
}

// A complex type for endpoints. A resource must be valid and active when you add
// it as an endpoint.
type EndpointConfiguration struct {

	// The Amazon Resource Name (ARN) of the cross-account attachment that specifies
	// the endpoints (resources) that can be added to accelerators and principals that
	// have permission to add the endpoints to accelerators.
	AttachmentArn *string

	// Indicates whether client IP address preservation is enabled for an endpoint.
	// The value is true or false. The default value is true for Application Load
	// Balancer endpoints. If the value is set to true, the client's IP address is
	// preserved in the X-Forwarded-For request header as traffic travels to
	// applications on the endpoint fronted by the accelerator. Client IP address
	// preservation is supported, in specific Amazon Web Services Regions, for
	// endpoints that are Application Load Balancers, Amazon EC2 instances, and Network
	// Load Balancers with security groups. IMPORTANT: You cannot use client IP address
	// preservation with Network Load Balancers with TLS listeners. For more
	// information, see Preserve client IP addresses in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html)
	// in the Global Accelerator Developer Guide.
	ClientIPPreservationEnabled *bool

	// An ID for the endpoint. If the endpoint is a Network Load Balancer or
	// Application Load Balancer, this is the Amazon Resource Name (ARN) of the
	// resource. If the endpoint is an Elastic IP address, this is the Elastic IP
	// address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. A
	// resource must be valid and active when you add it as an endpoint. An Application
	// Load Balancer can be either internal or internet-facing.
	EndpointId *string

	// The weight associated with the endpoint. When you add weights to endpoints, you
	// configure Global Accelerator to route traffic based on proportions that you
	// specify. For example, you might specify endpoint weights of 4, 5, 5, and 6
	// (sum=20). The result is that 4/20 of your traffic, on average, is routed to the
	// first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20
	// is routed to the last endpoint. For more information, see Endpoint weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html)
	// in the Global Accelerator Developer Guide.
	Weight *int32

	noSmithyDocumentSerde
}

// A complex type for an endpoint. Each endpoint group can include one or more
// endpoints, such as load balancers.
type EndpointDescription struct {

	// Indicates whether client IP address preservation is enabled for an endpoint.
	// The value is true or false. The default value is true for Application Load
	// Balancers endpoints. If the value is set to true, the client's IP address is
	// preserved in the X-Forwarded-For request header as traffic travels to
	// applications on the endpoint fronted by the accelerator. Client IP address
	// preservation is supported, in specific Amazon Web Services Regions, for
	// endpoints that are Application Load Balancers, Amazon EC2 instances, and Network
	// Load Balancers with security groups. IMPORTANT: You cannot use client IP address
	// preservation with Network Load Balancers with TLS listeners. For more
	// information, see Preserve client IP addresses in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html)
	// in the Global Accelerator Developer Guide.
	ClientIPPreservationEnabled *bool

	// An ID for the endpoint. If the endpoint is a Network Load Balancer or
	// Application Load Balancer, this is the Amazon Resource Name (ARN) of the
	// resource. If the endpoint is an Elastic IP address, this is the Elastic IP
	// address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. An
	// Application Load Balancer can be either internal or internet-facing.
	EndpointId *string

	// Returns a null result.
	HealthReason *string

	// The health status of the endpoint.
	HealthState HealthState

	// The weight associated with the endpoint. When you add weights to endpoints, you
	// configure Global Accelerator to route traffic based on proportions that you
	// specify. For example, you might specify endpoint weights of 4, 5, 5, and 6
	// (sum=20). The result is that 4/20 of your traffic, on average, is routed to the
	// first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20
	// is routed to the last endpoint. For more information, see Endpoint weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html)
	// in the Global Accelerator Developer Guide.
	Weight *int32

	noSmithyDocumentSerde
}

// A complex type for the endpoint group. An Amazon Web Services Region can have
// only one endpoint group for a specific listener.
type EndpointGroup struct {

	// The list of endpoint objects.
	EndpointDescriptions []EndpointDescription

	// The Amazon Resource Name (ARN) of the endpoint group.
	EndpointGroupArn *string

	// The Amazon Web Services Region where the endpoint group is located.
	EndpointGroupRegion *string

	// The time—10 seconds or 30 seconds—between health checks for each endpoint. The
	// default value is 30.
	HealthCheckIntervalSeconds *int32

	// If the protocol is HTTP/S, then this value provides the ping path that Global
	// Accelerator uses for the destination on the endpoints for health checks. The
	// default is slash (/).
	HealthCheckPath *string

	// The port that Global Accelerator uses to perform health checks on endpoints
	// that are part of this endpoint group. The default port is the port for the
	// listener that this endpoint group is associated with. If the listener port is a
	// list, Global Accelerator uses the first specified port in the list of ports.
	HealthCheckPort *int32

	// The protocol that Global Accelerator uses to perform health checks on endpoints
	// that are part of this endpoint group. The default value is TCP.
	HealthCheckProtocol HealthCheckProtocol

	// Allows you to override the destination ports used to route traffic to an
	// endpoint. Using a port override lets you map a list of external destination
	// ports (that your users send traffic to) to a list of internal destination ports
	// that you want an application endpoint to receive traffic on.
	PortOverrides []PortOverride

	// The number of consecutive health checks required to set the state of a healthy
	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
	// value is 3.
	ThresholdCount *int32

	// The percentage of traffic to send to an Amazon Web Services Region. Additional
	// traffic is distributed to other endpoint groups for this listener. Use this
	// action to increase (dial up) or decrease (dial down) traffic to a specific
	// Region. The percentage is applied to the traffic that would otherwise have been
	// routed to the Region based on optimal routing. The default value is 100.
	TrafficDialPercentage *float32

	noSmithyDocumentSerde
}

// A complex type for an endpoint. Specifies information about the endpoint to
// remove from the endpoint group.
type EndpointIdentifier struct {

	// An ID for the endpoint. If the endpoint is a Network Load Balancer or
	// Application Load Balancer, this is the Amazon Resource Name (ARN) of the
	// resource. If the endpoint is an Elastic IP address, this is the Elastic IP
	// address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. An
	// Application Load Balancer can be either internal or internet-facing.
	//
	// This member is required.
	EndpointId *string

	// Indicates whether client IP address preservation is enabled for an endpoint.
	// The value is true or false. If the value is set to true, the client's IP address
	// is preserved in the X-Forwarded-For request header as traffic travels to
	// applications on the endpoint fronted by the accelerator.
	ClientIPPreservationEnabled *bool

	noSmithyDocumentSerde
}

// A complex type for the set of IP addresses for an accelerator.
type IpSet struct {

	// The types of IP addresses included in this IP set.
	IpAddressFamily IpAddressFamily

	// The array of IP addresses in the IP address set. An IP address set can have a
	// maximum of two IP addresses.
	IpAddresses []string

	// IpFamily is deprecated and has been replaced by IpAddressFamily.
	//
	// Deprecated: IpFamily has been replaced by IpAddressFamily
	IpFamily *string

	noSmithyDocumentSerde
}

// A complex type for a listener.
type Listener struct {

	// Client affinity lets you direct all requests from a user to the same endpoint,
	// if you have stateful applications, regardless of the port and protocol of the
	// client request. Client affinity gives you control over whether to always route
	// each client to the same specific endpoint. Global Accelerator uses a
	// consistent-flow hashing algorithm to choose the optimal endpoint for a
	// connection. If client affinity is NONE , Global Accelerator uses the
	// "five-tuple" (5-tuple) properties—source IP address, source port, destination IP
	// address, destination port, and protocol—to select the hash value, and then
	// chooses the best endpoint. However, with this setting, if someone uses different
	// ports to connect to Global Accelerator, their connections might not be always
	// routed to the same endpoint because the hash value changes. If you want a given
	// client to always be routed to the same endpoint, set client affinity to
	// SOURCE_IP instead. When you use the SOURCE_IP setting, Global Accelerator uses
	// the "two-tuple" (2-tuple) properties— source (client) IP address and destination
	// IP address—to select the hash value. The default value is NONE .
	ClientAffinity ClientAffinity

	// The Amazon Resource Name (ARN) of the listener.
	ListenerArn *string

	// The list of port ranges for the connections from clients to the accelerator.
	PortRanges []PortRange

	// The protocol for the connections from clients to the accelerator.
	Protocol Protocol

	noSmithyDocumentSerde
}

// Returns the ports and associated IP addresses and ports of Amazon EC2 instances
// in your virtual private cloud (VPC) subnets. Custom routing is a port mapping
// protocol in Global Accelerator that statically associates port ranges with VPC
// subnets, which allows Global Accelerator to route to specific instances and
// ports within one or more subnets.
type PortMapping struct {

	// The accelerator port.
	AcceleratorPort *int32

	// The EC2 instance IP address and port number in the virtual private cloud (VPC)
	// subnet.
	DestinationSocketAddress *SocketAddress

	// Indicates whether or not a port mapping destination can receive traffic. The
	// value is either ALLOW, if traffic is allowed to the destination, or DENY, if
	// traffic is not allowed to the destination.
	DestinationTrafficState CustomRoutingDestinationTrafficState

	// The Amazon Resource Name (ARN) of the endpoint group.
	EndpointGroupArn *string

	// The IP address of the VPC subnet (the subnet ID).
	EndpointId *string

	// The protocols supported by the endpoint group.
	Protocols []CustomRoutingProtocol

	noSmithyDocumentSerde
}

// Override specific listener ports used to route traffic to endpoints that are
// part of an endpoint group. For example, you can create a port override in which
// the listener receives user traffic on ports 80 and 443, but your accelerator
// routes that traffic to ports 1080 and 1443, respectively, on the endpoints. For
// more information, see Overriding listener ports (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html)
// in the Global Accelerator Developer Guide.
type PortOverride struct {

	// The endpoint port that you want a listener port to be mapped to. This is the
	// port on the endpoint, such as the Application Load Balancer or Amazon EC2
	// instance.
	EndpointPort *int32

	// The listener port that you want to map to a specific endpoint port. This is the
	// port that user traffic arrives to the Global Accelerator on.
	ListenerPort *int32

	noSmithyDocumentSerde
}

// A complex type for a range of ports for a listener.
type PortRange struct {

	// The first port in the range of ports, inclusive.
	FromPort *int32

	// The last port in the range of ports, inclusive.
	ToPort *int32

	noSmithyDocumentSerde
}

// An Amazon Web Services resource that is supported by Global Accelerator and can
// be added as an endpoint for an accelerator.
type Resource struct {

	// The endpoint ID for the endpoint (Amazon Web Services resource).
	//
	// This member is required.
	EndpointId *string

	// The Amazon Web Services Region where a resource is located.
	Region *string

	noSmithyDocumentSerde
}

// An IP address/port combination.
type SocketAddress struct {

	// The IP address for the socket address.
	IpAddress *string

	// The port for the socket address.
	Port *int32

	noSmithyDocumentSerde
}

// A complex type that contains a Tag key and Tag value.
type Tag struct {

	// A string that contains a Tag key.
	//
	// This member is required.
	Key *string

	// A string that contains a Tag value.
	//
	// This member is required.
	Value *string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde