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 (633 lines) | stat: -rw-r--r-- 20,617 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
// Code generated by smithy-go-codegen DO NOT EDIT.

package types

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

// The automatic application layer DDoS mitigation settings for a Protection . This
// configuration determines whether Shield Advanced automatically manages rules in
// the web ACL in order to respond to application layer events that Shield Advanced
// determines to be DDoS attacks.
type ApplicationLayerAutomaticResponseConfiguration struct {

	// Specifies the action setting that Shield Advanced should use in the WAF rules
	// that it creates on behalf of the protected resource in response to DDoS attacks.
	// You specify this as part of the configuration for the automatic application
	// layer DDoS mitigation feature, when you enable or update automatic mitigation.
	// Shield Advanced creates the WAF rules in a Shield Advanced-managed rule group,
	// inside the web ACL that you have associated with the resource.
	//
	// This member is required.
	Action *ResponseAction

	// Indicates whether automatic application layer DDoS mitigation is enabled for
	// the protection.
	//
	// This member is required.
	Status ApplicationLayerAutomaticResponseStatus

	noSmithyDocumentSerde
}

// The details of a DDoS attack.
type AttackDetail struct {

	// List of counters that describe the attack for the specified time period.
	AttackCounters []SummarizedCounter

	// The unique identifier (ID) of the attack.
	AttackId *string

	// The array of objects that provide details of the Shield event. For
	// infrastructure layer events (L3 and L4 events), you can view metrics for top
	// contributors in Amazon CloudWatch metrics. For more information, see Shield
	// metrics and alarms (https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#set-ddos-alarms)
	// in the WAF Developer Guide.
	AttackProperties []AttackProperty

	// The time the attack ended, in Unix time in seconds.
	EndTime *time.Time

	// List of mitigation actions taken for the attack.
	Mitigations []Mitigation

	// The ARN (Amazon Resource Name) of the resource that was attacked.
	ResourceArn *string

	// The time the attack started, in Unix time in seconds.
	StartTime *time.Time

	// If applicable, additional detail about the resource being attacked, for
	// example, IP address or URL.
	SubResources []SubResourceSummary

	noSmithyDocumentSerde
}

// Details of a Shield event. This is provided as part of an AttackDetail .
type AttackProperty struct {

	// The type of Shield event that was observed. NETWORK indicates layer 3 and layer
	// 4 events and APPLICATION indicates layer 7 events. For infrastructure layer
	// events (L3 and L4 events), you can view metrics for top contributors in Amazon
	// CloudWatch metrics. For more information, see Shield metrics and alarms (https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#set-ddos-alarms)
	// in the WAF Developer Guide.
	AttackLayer AttackLayer

	// Defines the Shield event property information that is provided. The
	// WORDPRESS_PINGBACK_REFLECTOR and WORDPRESS_PINGBACK_SOURCE values are valid
	// only for WordPress reflective pingback events.
	AttackPropertyIdentifier AttackPropertyIdentifier

	// Contributor objects for the top five contributors to a Shield event. A
	// contributor is a source of traffic that Shield Advanced identifies as
	// responsible for some or all of an event.
	TopContributors []Contributor

	// The total contributions made to this Shield event by all contributors.
	Total int64

	// The unit used for the Contributor Value property.
	Unit Unit

	noSmithyDocumentSerde
}

// A single attack statistics data record. This is returned by
// DescribeAttackStatistics along with a time range indicating the time period that
// the attack statistics apply to.
type AttackStatisticsDataItem struct {

	// The number of attacks detected during the time period. This is always present,
	// but might be zero.
	//
	// This member is required.
	AttackCount int64

	// Information about the volume of attacks during the time period. If the
	// accompanying AttackCount is zero, this setting might be empty.
	AttackVolume *AttackVolume

	noSmithyDocumentSerde
}

// Summarizes all DDoS attacks for a specified time period.
type AttackSummary struct {

	// The unique identifier (ID) of the attack.
	AttackId *string

	// The list of attacks for a specified time period.
	AttackVectors []AttackVectorDescription

	// The end time of the attack, in Unix time in seconds.
	EndTime *time.Time

	// The ARN (Amazon Resource Name) of the resource that was attacked.
	ResourceArn *string

	// The start time of the attack, in Unix time in seconds.
	StartTime *time.Time

	noSmithyDocumentSerde
}

// Describes the attack.
type AttackVectorDescription struct {

	// The attack type. Valid values:
	//   - UDP_TRAFFIC
	//   - UDP_FRAGMENT
	//   - GENERIC_UDP_REFLECTION
	//   - DNS_REFLECTION
	//   - NTP_REFLECTION
	//   - CHARGEN_REFLECTION
	//   - SSDP_REFLECTION
	//   - PORT_MAPPER
	//   - RIP_REFLECTION
	//   - SNMP_REFLECTION
	//   - MSSQL_REFLECTION
	//   - NET_BIOS_REFLECTION
	//   - SYN_FLOOD
	//   - ACK_FLOOD
	//   - REQUEST_FLOOD
	//   - HTTP_REFLECTION
	//   - UDS_REFLECTION
	//   - MEMCACHED_REFLECTION
	//
	// This member is required.
	VectorType *string

	noSmithyDocumentSerde
}

// Information about the volume of attacks during the time period, included in an
// AttackStatisticsDataItem . If the accompanying AttackCount in the statistics
// object is zero, this setting might be empty.
type AttackVolume struct {

	// A statistics object that uses bits per second as the unit. This is included for
	// network level attacks.
	BitsPerSecond *AttackVolumeStatistics

	// A statistics object that uses packets per second as the unit. This is included
	// for network level attacks.
	PacketsPerSecond *AttackVolumeStatistics

	// A statistics object that uses requests per second as the unit. This is included
	// for application level attacks, and is only available for accounts that are
	// subscribed to Shield Advanced.
	RequestsPerSecond *AttackVolumeStatistics

	noSmithyDocumentSerde
}

// Statistics objects for the various data types in AttackVolume .
type AttackVolumeStatistics struct {

	// The maximum attack volume observed for the given unit.
	//
	// This member is required.
	Max float64

	noSmithyDocumentSerde
}

// Specifies that Shield Advanced should configure its WAF rules with the WAF Block
// action. This is only used in the context of the ResponseAction setting. JSON
// specification: "Block": {}
type BlockAction struct {
	noSmithyDocumentSerde
}

// A contributor to the attack and their contribution.
type Contributor struct {

	// The name of the contributor. The type of name that you'll find here depends on
	// the AttackPropertyIdentifier setting in the AttackProperty where this
	// contributor is defined. For example, if the AttackPropertyIdentifier is
	// SOURCE_COUNTRY , the Name could be United States .
	Name *string

	// The contribution of this contributor expressed in Protection units. For example
	// 10,000 .
	Value int64

	noSmithyDocumentSerde
}

// Specifies that Shield Advanced should configure its WAF rules with the WAF Count
// action. This is only used in the context of the ResponseAction setting. JSON
// specification: "Count": {}
type CountAction struct {
	noSmithyDocumentSerde
}

// Contact information that the SRT can use to contact you if you have proactive
// engagement enabled, for escalations to the SRT and to initiate proactive
// customer support.
type EmergencyContact struct {

	// The email address for the contact.
	//
	// This member is required.
	EmailAddress *string

	// Additional notes regarding the contact.
	ContactNotes *string

	// The phone number for the contact.
	PhoneNumber *string

	noSmithyDocumentSerde
}

// Narrows the set of protections that the call retrieves. You can retrieve a
// single protection by providing its name or the ARN (Amazon Resource Name) of its
// protected resource. You can also retrieve all protections for a specific
// resource type. You can provide up to one criteria per filter type. Shield
// Advanced returns protections that exactly match all of the filter criteria that
// you provide.
type InclusionProtectionFilters struct {

	// The name of the protection that you want to retrieve.
	ProtectionNames []string

	// The ARN (Amazon Resource Name) of the resource whose protection you want to
	// retrieve.
	ResourceArns []string

	// The type of protected resource whose protections you want to retrieve.
	ResourceTypes []ProtectedResourceType

	noSmithyDocumentSerde
}

// Narrows the set of protection groups that the call retrieves. You can retrieve
// a single protection group by its name and you can retrieve all protection groups
// that are configured with a specific pattern, aggregation, or resource type. You
// can provide up to one criteria per filter type. Shield Advanced returns the
// protection groups that exactly match all of the search criteria that you
// provide.
type InclusionProtectionGroupFilters struct {

	// The aggregation setting of the protection groups that you want to retrieve.
	Aggregations []ProtectionGroupAggregation

	// The pattern specification of the protection groups that you want to retrieve.
	Patterns []ProtectionGroupPattern

	// The ID of the protection group that you want to retrieve.
	ProtectionGroupIds []string

	// The resource type configuration of the protection groups that you want to
	// retrieve. In the protection group configuration, you specify the resource type
	// when you set the group's Pattern to BY_RESOURCE_TYPE .
	ResourceTypes []ProtectedResourceType

	noSmithyDocumentSerde
}

// Specifies how many protections of a given type you can create.
type Limit struct {

	// The maximum number of protections that can be created for the specified Type .
	Max int64

	// The type of protection.
	Type *string

	noSmithyDocumentSerde
}

// The mitigation applied to a DDoS attack.
type Mitigation struct {

	// The name of the mitigation taken for this attack.
	MitigationName *string

	noSmithyDocumentSerde
}

// An object that represents a resource that is under DDoS protection.
type Protection struct {

	// The automatic application layer DDoS mitigation settings for the protection.
	// This configuration determines whether Shield Advanced automatically manages
	// rules in the web ACL in order to respond to application layer events that Shield
	// Advanced determines to be DDoS attacks.
	ApplicationLayerAutomaticResponseConfiguration *ApplicationLayerAutomaticResponseConfiguration

	// The unique identifier (ID) for the Route 53 health check that's associated with
	// the protection.
	HealthCheckIds []string

	// The unique identifier (ID) of the protection.
	Id *string

	// The name of the protection. For example, My CloudFront distributions .
	Name *string

	// The ARN (Amazon Resource Name) of the protection.
	ProtectionArn *string

	// The ARN (Amazon Resource Name) of the Amazon Web Services resource that is
	// protected.
	ResourceArn *string

	noSmithyDocumentSerde
}

// A grouping of protected resources that you and Shield Advanced can monitor as a
// collective. This resource grouping improves the accuracy of detection and
// reduces false positives.
type ProtectionGroup struct {

	// Defines how Shield combines resource data for the group in order to detect,
	// mitigate, and report events.
	//   - Sum - Use the total traffic across the group. This is a good choice for
	//   most cases. Examples include Elastic IP addresses for EC2 instances that scale
	//   manually or automatically.
	//   - Mean - Use the average of the traffic across the group. This is a good
	//   choice for resources that share traffic uniformly. Examples include accelerators
	//   and load balancers.
	//   - Max - Use the highest traffic from each resource. This is useful for
	//   resources that don't share traffic and for resources that share that traffic in
	//   a non-uniform way. Examples include Amazon CloudFront distributions and origin
	//   resources for CloudFront distributions.
	//
	// This member is required.
	Aggregation ProtectionGroupAggregation

	// The ARNs (Amazon Resource Names) of the resources to include in the protection
	// group. You must set this when you set Pattern to ARBITRARY and you must not set
	// it for any other Pattern setting.
	//
	// This member is required.
	Members []string

	// The criteria to use to choose the protected resources for inclusion in the
	// group. You can include all resources that have protections, provide a list of
	// resource ARNs (Amazon Resource Names), or include all resources of a specified
	// resource type.
	//
	// This member is required.
	Pattern ProtectionGroupPattern

	// The name of the protection group. You use this to identify the protection group
	// in lists and to manage the protection group, for example to update, delete, or
	// describe it.
	//
	// This member is required.
	ProtectionGroupId *string

	// The ARN (Amazon Resource Name) of the protection group.
	ProtectionGroupArn *string

	// The resource type to include in the protection group. All protected resources
	// of this type are included in the protection group. You must set this when you
	// set Pattern to BY_RESOURCE_TYPE and you must not set it for any other Pattern
	// setting.
	ResourceType ProtectedResourceType

	noSmithyDocumentSerde
}

// Limits settings on protection groups with arbitrary pattern type.
type ProtectionGroupArbitraryPatternLimits struct {

	// The maximum number of resources you can specify for a single arbitrary pattern
	// in a protection group.
	//
	// This member is required.
	MaxMembers int64

	noSmithyDocumentSerde
}

// Limits settings on protection groups for your subscription.
type ProtectionGroupLimits struct {

	// The maximum number of protection groups that you can have at one time.
	//
	// This member is required.
	MaxProtectionGroups int64

	// Limits settings by pattern type in the protection groups for your subscription.
	//
	// This member is required.
	PatternTypeLimits *ProtectionGroupPatternTypeLimits

	noSmithyDocumentSerde
}

// Limits settings by pattern type in the protection groups for your subscription.
type ProtectionGroupPatternTypeLimits struct {

	// Limits settings on protection groups with arbitrary pattern type.
	//
	// This member is required.
	ArbitraryPatternLimits *ProtectionGroupArbitraryPatternLimits

	noSmithyDocumentSerde
}

// Limits settings on protections for your subscription.
type ProtectionLimits struct {

	// The maximum number of resource types that you can specify in a protection.
	//
	// This member is required.
	ProtectedResourceTypeLimits []Limit

	noSmithyDocumentSerde
}

// Specifies the action setting that Shield Advanced should use in the WAF rules
// that it creates on behalf of the protected resource in response to DDoS attacks.
// You specify this as part of the configuration for the automatic application
// layer DDoS mitigation feature, when you enable or update automatic mitigation.
// Shield Advanced creates the WAF rules in a Shield Advanced-managed rule group,
// inside the web ACL that you have associated with the resource.
type ResponseAction struct {

	// Specifies that Shield Advanced should configure its WAF rules with the WAF Block
	// action. You must specify exactly one action, either Block or Count .
	Block *BlockAction

	// Specifies that Shield Advanced should configure its WAF rules with the WAF Count
	// action. You must specify exactly one action, either Block or Count .
	Count *CountAction

	noSmithyDocumentSerde
}

// The attack information for the specified SubResource.
type SubResourceSummary struct {

	// The list of attack types and associated counters.
	AttackVectors []SummarizedAttackVector

	// The counters that describe the details of the attack.
	Counters []SummarizedCounter

	// The unique identifier (ID) of the SubResource .
	Id *string

	// The SubResource type.
	Type SubResourceType

	noSmithyDocumentSerde
}

// Information about the Shield Advanced subscription for an account.
type Subscription struct {

	// Limits settings for your subscription.
	//
	// This member is required.
	SubscriptionLimits *SubscriptionLimits

	// If ENABLED , the subscription will be automatically renewed at the end of the
	// existing subscription period. When you initally create a subscription, AutoRenew
	// is set to ENABLED . You can change this by submitting an UpdateSubscription
	// request. If the UpdateSubscription request does not included a value for
	// AutoRenew , the existing value for AutoRenew remains unchanged.
	AutoRenew AutoRenew

	// The date and time your subscription will end.
	EndTime *time.Time

	// Specifies how many protections of a given type you can create.
	Limits []Limit

	// If ENABLED , the Shield Response Team (SRT) will use email and phone to notify
	// contacts about escalations to the SRT and to initiate proactive customer
	// support. If PENDING , you have requested proactive engagement and the request is
	// pending. The status changes to ENABLED when your request is fully processed. If
	// DISABLED , the SRT will not proactively notify contacts about escalations or to
	// initiate proactive customer support.
	ProactiveEngagementStatus ProactiveEngagementStatus

	// The start time of the subscription, in Unix time in seconds.
	StartTime *time.Time

	// The ARN (Amazon Resource Name) of the subscription.
	SubscriptionArn *string

	// The length, in seconds, of the Shield Advanced subscription for the account.
	TimeCommitmentInSeconds int64

	noSmithyDocumentSerde
}

// Limits settings for your subscription.
type SubscriptionLimits struct {

	// Limits settings on protection groups for your subscription.
	//
	// This member is required.
	ProtectionGroupLimits *ProtectionGroupLimits

	// Limits settings on protections for your subscription.
	//
	// This member is required.
	ProtectionLimits *ProtectionLimits

	noSmithyDocumentSerde
}

// A summary of information about the attack.
type SummarizedAttackVector struct {

	// The attack type, for example, SNMP reflection or SYN flood.
	//
	// This member is required.
	VectorType *string

	// The list of counters that describe the details of the attack.
	VectorCounters []SummarizedCounter

	noSmithyDocumentSerde
}

// The counter that describes a DDoS attack.
type SummarizedCounter struct {

	// The average value of the counter for a specified time period.
	Average float64

	// The maximum value of the counter for a specified time period.
	Max float64

	// The number of counters for a specified time period.
	N int32

	// The counter name.
	Name *string

	// The total of counter values for a specified time period.
	Sum float64

	// The unit of the counters.
	Unit *string

	noSmithyDocumentSerde
}

// A tag associated with an Amazon Web Services resource. Tags are key:value pairs
// that you can use to categorize and manage your resources, for purposes like
// billing or other management. Typically, the tag key represents a category, such
// as "environment", and the tag value represents a specific value within that
// category, such as "test," "development," or "production". Or you might set the
// tag key to "customer" and the value to the customer name or ID. You can specify
// one or more tags to add to each Amazon Web Services resource, up to 50 tags for
// a resource.
type Tag struct {

	// Part of the key:value pair that defines a tag. You can use a tag key to
	// describe a category of information, such as "customer." Tag keys are
	// case-sensitive.
	Key *string

	// Part of the key:value pair that defines a tag. You can use a tag value to
	// describe a specific value within a category, such as "companyA" or "companyB."
	// Tag values are case-sensitive.
	Value *string

	noSmithyDocumentSerde
}

// The time range.
type TimeRange struct {

	// The start time, in Unix time in seconds.
	FromInclusive *time.Time

	// The end time, in Unix time in seconds.
	ToExclusive *time.Time

	noSmithyDocumentSerde
}

// Provides information about a particular parameter passed inside a request that
// resulted in an exception.
type ValidationExceptionField struct {

	// The message describing why the parameter failed validation.
	//
	// This member is required.
	Message *string

	// The name of the parameter that failed validation.
	//
	// This member is required.
	Name *string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde