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

package types

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

// An Access Control List. You can authenticate users with Access Contol Lists.
// ACLs enable you to control cluster access by grouping users. These Access
// control lists are designed as a way to organize access to clusters.
type ACL struct {

	// The Amazon Resource Name (ARN) of the ACL
	ARN *string

	// A list of clusters associated with the ACL.
	Clusters []string

	// The minimum engine version supported for the ACL
	MinimumEngineVersion *string

	// The name of the Access Control List
	Name *string

	// A list of updates being applied to the ACL.
	PendingChanges *ACLPendingChanges

	// Indicates ACL status. Can be "creating", "active", "modifying", "deleting".
	Status *string

	// The list of user names that belong to the ACL.
	UserNames []string

	noSmithyDocumentSerde
}

// Returns the updates being applied to the ACL.
type ACLPendingChanges struct {

	// A list of users being added to the ACL
	UserNamesToAdd []string

	// A list of user names being removed from the ACL
	UserNamesToRemove []string

	noSmithyDocumentSerde
}

// The status of the ACL update
type ACLsUpdateStatus struct {

	// A list of ACLs pending to be applied.
	ACLToApply *string

	noSmithyDocumentSerde
}

// Denotes the user's authentication properties, such as whether it requires a
// password to authenticate. Used in output responses.
type Authentication struct {

	// The number of passwords belonging to the user. The maximum is two.
	PasswordCount *int32

	// Indicates whether the user requires a password to authenticate.
	Type AuthenticationType

	noSmithyDocumentSerde
}

// Denotes the user's authentication properties, such as whether it requires a
// password to authenticate. Used in output responses.
type AuthenticationMode struct {

	// The password(s) used for authentication
	Passwords []string

	// Indicates whether the user requires a password to authenticate. All
	// newly-created users require a password.
	Type InputAuthenticationType

	noSmithyDocumentSerde
}

// Indicates if the cluster has a Multi-AZ configuration (multiaz) or not
// (singleaz).
type AvailabilityZone struct {

	// The name of the Availability Zone.
	Name *string

	noSmithyDocumentSerde
}

// Contains all of the attributes of a specific cluster.
type Cluster struct {

	// The name of the Access Control List associated with this cluster.
	ACLName *string

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

	// When set to true, the cluster will automatically receive minor engine version
	// upgrades after launch.
	AutoMinorVersionUpgrade *bool

	// Indicates if the cluster has a Multi-AZ configuration (multiaz) or not
	// (singleaz).
	AvailabilityMode AZStatus

	// The cluster's configuration endpoint
	ClusterEndpoint *Endpoint

	// Enables data tiering. Data tiering is only supported for clusters using the
	// r6gd node type. This parameter must be set when using r6gd nodes. For more
	// information, see Data tiering (https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html)
	// .
	DataTiering DataTieringStatus

	// A description of the cluster
	Description *string

	// The Redis engine patch version used by the cluster
	EnginePatchVersion *string

	// The Redis engine version used by the cluster
	EngineVersion *string

	// The ID of the KMS key used to encrypt the cluster
	KmsKeyId *string

	// Specifies the weekly time range during which maintenance on the cluster is
	// performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
	// Clock UTC). The minimum maintenance window is a 60 minute period.
	MaintenanceWindow *string

	// The user-supplied name of the cluster. This identifier is a unique key that
	// identifies a cluster.
	Name *string

	// The cluster's node type
	NodeType *string

	// The number of shards in the cluster
	NumberOfShards *int32

	// The name of the parameter group used by the cluster
	ParameterGroupName *string

	// The status of the parameter group used by the cluster, for example 'active' or
	// 'applying'.
	ParameterGroupStatus *string

	// A group of settings that are currently being applied.
	PendingUpdates *ClusterPendingUpdates

	// A list of security groups used by the cluster
	SecurityGroups []SecurityGroupMembership

	// A list of shards that are members of the cluster.
	Shards []Shard

	// The number of days for which MemoryDB retains automatic snapshots before
	// deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot
	// that was taken today is retained for 5 days before being deleted.
	SnapshotRetentionLimit *int32

	// The daily time range (in UTC) during which MemoryDB begins taking a daily
	// snapshot of your shard. Example: 05:00-09:00 If you do not specify this
	// parameter, MemoryDB automatically chooses an appropriate time range.
	SnapshotWindow *string

	// The Amazon Resource Name (ARN) of the SNS notification topic
	SnsTopicArn *string

	// The SNS topic must be in Active status to receive notifications
	SnsTopicStatus *string

	// The status of the cluster. For example, Available, Updating, Creating.
	Status *string

	// The name of the subnet group used by the cluster
	SubnetGroupName *string

	// A flag to indicate if In-transit encryption is enabled
	TLSEnabled *bool

	noSmithyDocumentSerde
}

// A list of cluster configuration options.
type ClusterConfiguration struct {

	// The description of the cluster configuration
	Description *string

	// The Redis engine version used by the cluster
	EngineVersion *string

	// The specified maintenance window for the cluster
	MaintenanceWindow *string

	// The name of the cluster
	Name *string

	// The node type used for the cluster
	NodeType *string

	// The number of shards in the cluster
	NumShards *int32

	// The name of parameter group used by the cluster
	ParameterGroupName *string

	// The port used by the cluster
	Port *int32

	// The list of shards in the cluster
	Shards []ShardDetail

	// The snapshot retention limit set by the cluster
	SnapshotRetentionLimit *int32

	// The snapshot window set by the cluster
	SnapshotWindow *string

	// The name of the subnet group used by the cluster
	SubnetGroupName *string

	// The Amazon Resource Name (ARN) of the SNS notification topic for the cluster
	TopicArn *string

	// The ID of the VPC the cluster belongs to
	VpcId *string

	noSmithyDocumentSerde
}

// A list of updates being applied to the cluster
type ClusterPendingUpdates struct {

	// A list of ACLs associated with the cluster that are being updated
	ACLs *ACLsUpdateStatus

	// The status of an online resharding operation.
	Resharding *ReshardingStatus

	// A list of service updates being applied to the cluster
	ServiceUpdates []PendingModifiedServiceUpdate

	noSmithyDocumentSerde
}

// Represents the information required for client programs to connect to the
// cluster and its nodes.
type Endpoint struct {

	// The DNS hostname of the node.
	Address *string

	// The port number that the engine is listening on.
	Port int32

	noSmithyDocumentSerde
}

// Provides details of the Redis engine version
type EngineVersionInfo struct {

	// The patched engine version
	EnginePatchVersion *string

	// The engine version
	EngineVersion *string

	// Specifies the name of the parameter group family to which the engine default
	// parameters apply.
	ParameterGroupFamily *string

	noSmithyDocumentSerde
}

// Represents a single occurrence of something interesting within the system. Some
// examples of events are creating a cluster or adding or removing a node.
type Event struct {

	// The date and time when the event occurred.
	Date *time.Time

	// The text of the event.
	Message *string

	// The name for the source of the event. For example, if the event occurred at the
	// cluster level, the identifier would be the name of the cluster.
	SourceName *string

	// Specifies the origin of this event - a cluster, a parameter group, a security
	// group, etc.
	SourceType SourceType

	noSmithyDocumentSerde
}

// Used to streamline results of a search based on the property being filtered.
type Filter struct {

	// The property being filtered. For example, UserName.
	//
	// This member is required.
	Name *string

	// The property values to filter on. For example, "user-123".
	//
	// This member is required.
	Values []string

	noSmithyDocumentSerde
}

// Represents an individual node within a cluster. Each node runs its own instance
// of the cluster's protocol-compliant caching software.
type Node struct {

	// The Availability Zone in which the node resides
	AvailabilityZone *string

	// The date and time when the node was created.
	CreateTime *time.Time

	// The hostname for connecting to this node.
	Endpoint *Endpoint

	// The node identifier. A node name is a numeric identifier (0001, 0002, etc.).
	// The combination of cluster name, shard name and node name uniquely identifies
	// every node used in a customer's Amazon account.
	Name *string

	// The status of the service update on the node
	Status *string

	noSmithyDocumentSerde
}

// Describes an individual setting that controls some aspect of MemoryDB behavior.
type Parameter struct {

	// The valid range of values for the parameter.
	AllowedValues *string

	// The parameter's data type
	DataType *string

	// A description of the parameter
	Description *string

	// The earliest engine version to which the parameter can apply.
	MinimumEngineVersion *string

	// The name of the parameter
	Name *string

	// The value of the parameter
	Value *string

	noSmithyDocumentSerde
}

// Represents the output of a CreateParameterGroup operation. A parameter group
// represents a combination of specific values for the parameters that are passed
// to the engine software during startup.
type ParameterGroup struct {

	// The Amazon Resource Name (ARN) of the parameter group
	ARN *string

	// A description of the parameter group
	Description *string

	// The name of the parameter group family that this parameter group is compatible
	// with.
	Family *string

	// The name of the parameter group
	Name *string

	noSmithyDocumentSerde
}

// Describes a name-value pair that is used to update the value of a parameter.
type ParameterNameValue struct {

	// The name of the parameter
	ParameterName *string

	// The value of the parameter
	ParameterValue *string

	noSmithyDocumentSerde
}

// Update action that has yet to be processed for the corresponding apply/stop
// request
type PendingModifiedServiceUpdate struct {

	// The unique ID of the service update
	ServiceUpdateName *string

	// The status of the service update
	Status ServiceUpdateStatus

	noSmithyDocumentSerde
}

// The recurring charge to run this reserved node.
type RecurringCharge struct {

	// The amount of the recurring charge to run this reserved node.
	RecurringChargeAmount float64

	// The frequency of the recurring price charged to run this reserved node.
	RecurringChargeFrequency *string

	noSmithyDocumentSerde
}

// A request to configure the number of replicas in a shard
type ReplicaConfigurationRequest struct {

	// The number of replicas to scale up or down to
	ReplicaCount int32

	noSmithyDocumentSerde
}

// Represents the output of a PurchaseReservedNodesOffering operation.
type ReservedNode struct {

	// The Amazon Resource Name (ARN) of the reserved node.
	ARN *string

	// The duration of the reservation in seconds.
	Duration int32

	// The fixed price charged for this reserved node.
	FixedPrice float64

	// The number of nodes that have been reserved.
	NodeCount int32

	// The node type for the reserved nodes.
	NodeType *string

	// The offering type of this reserved node.
	OfferingType *string

	// The recurring price charged to run this reserved node.
	RecurringCharges []RecurringCharge

	// A customer-specified identifier to track this reservation.
	ReservationId *string

	// The ID of the reserved node offering to purchase.
	ReservedNodesOfferingId *string

	// The time the reservation started.
	StartTime *time.Time

	// The state of the reserved node.
	State *string

	noSmithyDocumentSerde
}

// The offering type of this node.
type ReservedNodesOffering struct {

	// The duration of the reservation in seconds.
	Duration int32

	// The fixed price charged for this reserved node.
	FixedPrice float64

	// The node type for the reserved nodes. For more information, see Supported node
	// types (https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported)
	// .
	NodeType *string

	// The offering type of this reserved node.
	OfferingType *string

	// The recurring price charged to run this reserved node.
	RecurringCharges []RecurringCharge

	// The offering identifier.
	ReservedNodesOfferingId *string

	noSmithyDocumentSerde
}

// The status of the online resharding
type ReshardingStatus struct {

	// The status of the online resharding slot migration
	SlotMigration *SlotMigration

	noSmithyDocumentSerde
}

// Represents a single security group and its status.
type SecurityGroupMembership struct {

	// The identifier of the security group.
	SecurityGroupId *string

	// The status of the security group membership. The status changes whenever a
	// security group is modified, or when the security groups assigned to a cluster
	// are modified.
	Status *string

	noSmithyDocumentSerde
}

// An update that you can apply to your MemoryDB clusters.
type ServiceUpdate struct {

	// The date at which the service update will be automatically applied
	AutoUpdateStartDate *time.Time

	// The name of the cluster to which the service update applies
	ClusterName *string

	// Provides details of the service update
	Description *string

	// A list of nodes updated by the service update
	NodesUpdated *string

	// The date when the service update is initially available
	ReleaseDate *time.Time

	// The unique ID of the service update
	ServiceUpdateName *string

	// The status of the service update
	Status ServiceUpdateStatus

	// Reflects the nature of the service update
	Type ServiceUpdateType

	noSmithyDocumentSerde
}

// A request to apply a service update
type ServiceUpdateRequest struct {

	// The unique ID of the service update
	ServiceUpdateNameToApply *string

	noSmithyDocumentSerde
}

// Represents a collection of nodes in a cluster. One node in the node group is
// the read/write primary node. All the other nodes are read-only Replica nodes.
type Shard struct {

	// The name of the shard
	Name *string

	// A list containing information about individual nodes within the shard
	Nodes []Node

	// The number of nodes in the shard
	NumberOfNodes *int32

	// The keyspace for this shard.
	Slots *string

	// The current state of this replication group - creating, available, modifying,
	// deleting.
	Status *string

	noSmithyDocumentSerde
}

// Shard configuration options. Each shard configuration has the following: Slots
// and ReplicaCount.
type ShardConfiguration struct {

	// The number of read replica nodes in this shard.
	ReplicaCount *int32

	// A string that specifies the keyspace for a particular node group. Keyspaces
	// range from 0 to 16,383. The string is in the format startkey-endkey.
	Slots *string

	noSmithyDocumentSerde
}

// A request to configure the sharding properties of a cluster
type ShardConfigurationRequest struct {

	// The number of shards in the cluster
	ShardCount int32

	noSmithyDocumentSerde
}

// Provides details of a shard in a snapshot
type ShardDetail struct {

	// The configuration details of the shard
	Configuration *ShardConfiguration

	// The name of the shard
	Name *string

	// The size of the shard's snapshot
	Size *string

	// The date and time that the shard's snapshot was created
	SnapshotCreationTime *time.Time

	noSmithyDocumentSerde
}

// Represents the progress of an online resharding operation.
type SlotMigration struct {

	// The percentage of the slot migration that is complete.
	ProgressPercentage float64

	noSmithyDocumentSerde
}

// Represents a copy of an entire cluster as of the time when the snapshot was
// taken.
type Snapshot struct {

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

	// The configuration of the cluster from which the snapshot was taken
	ClusterConfiguration *ClusterConfiguration

	// Enables data tiering. Data tiering is only supported for clusters using the
	// r6gd node type. This parameter must be set when using r6gd nodes. For more
	// information, see Data tiering (https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html)
	// .
	DataTiering DataTieringStatus

	// The ID of the KMS key used to encrypt the snapshot.
	KmsKeyId *string

	// The name of the snapshot
	Name *string

	// Indicates whether the snapshot is from an automatic backup (automated) or was
	// created manually (manual).
	Source *string

	// The status of the snapshot. Valid values: creating | available | restoring |
	// copying | deleting.
	Status *string

	noSmithyDocumentSerde
}

// Represents the subnet associated with a cluster. This parameter refers to
// subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with
// MemoryDB.
type Subnet struct {

	// The Availability Zone where the subnet resides
	AvailabilityZone *AvailabilityZone

	// The unique identifier for the subnet.
	Identifier *string

	noSmithyDocumentSerde
}

// Represents the output of one of the following operations:
//   - CreateSubnetGroup
//   - UpdateSubnetGroup
//
// A subnet group is a collection of subnets (typically private) that you can
// designate for your clusters running in an Amazon Virtual Private Cloud (VPC)
// environment.
type SubnetGroup struct {

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

	// A description of the subnet group
	Description *string

	// The name of the subnet group
	Name *string

	// A list of subnets associated with the subnet group.
	Subnets []Subnet

	// The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group.
	VpcId *string

	noSmithyDocumentSerde
}

// A tag that can be added to an MemoryDB resource. Tags are composed of a
// Key/Value pair. You can use tags to categorize and track all your MemoryDB
// resources. When you add or remove tags on clusters, those actions will be
// replicated to all nodes in the cluster. A tag with a null Value is permitted.
// For more information, see Tagging your MemoryDB resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html)
type Tag struct {

	// The key for the tag. May not be null.
	Key *string

	// The tag's value. May be null.
	Value *string

	noSmithyDocumentSerde
}

// A cluster whose updates have failed
type UnprocessedCluster struct {

	// The name of the cluster
	ClusterName *string

	// The error message associated with the update failure
	ErrorMessage *string

	// The error type associated with the update failure
	ErrorType *string

	noSmithyDocumentSerde
}

// You create users and assign them specific permissions by using an access
// string. You assign the users to Access Control Lists aligned with a specific
// role (administrators, human resources) that are then deployed to one or more
// MemoryDB clusters.
type User struct {

	// The names of the Access Control Lists to which the user belongs
	ACLNames []string

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

	// Access permissions string used for this user.
	AccessString *string

	// Denotes whether the user requires a password to authenticate.
	Authentication *Authentication

	// The minimum engine version supported for the user
	MinimumEngineVersion *string

	// The name of the user
	Name *string

	// Indicates the user status. Can be "active", "modifying" or "deleting".
	Status *string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde