1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	smithydocument "github.com/aws/smithy-go/document"
7	"time"
8)
9
10// A name value pair that describes an aspect of an account.
11type AccountAttribute struct {
12
13	// The name of the attribute.
14	AttributeName *string
15
16	// A list of attribute values.
17	AttributeValues []AttributeValueTarget
18
19	noSmithyDocumentSerde
20}
21
22// Describes an Amazon Web Services account authorized to restore a snapshot.
23type AccountWithRestoreAccess struct {
24
25	// The identifier of an Amazon Web Services support account authorized to restore a
26	// snapshot. For Amazon Web Services Support, the identifier is
27	// amazon-redshift-support.
28	AccountAlias *string
29
30	// The identifier of an Amazon Web Services account authorized to restore a
31	// snapshot.
32	AccountId *string
33
34	noSmithyDocumentSerde
35}
36
37// The AQUA (Advanced Query Accelerator) configuration of the cluster.
38type AquaConfiguration struct {
39
40	// The value represents how the cluster is configured to use AQUA. Possible values
41	// include the following.
42	//
43	// * enabled - Use AQUA if it is available for the current
44	// Amazon Web Services Region and Amazon Redshift node type.
45	//
46	// * disabled - Don't
47	// use AQUA.
48	//
49	// * auto - Amazon Redshift determines whether to use AQUA.
50	AquaConfigurationStatus AquaConfigurationStatus
51
52	// The value indicates the status of AQUA on the cluster. Possible values include
53	// the following.
54	//
55	// * enabled - AQUA is enabled.
56	//
57	// * disabled - AQUA is not
58	// enabled.
59	//
60	// * applying - AQUA status is being applied.
61	AquaStatus AquaStatus
62
63	noSmithyDocumentSerde
64}
65
66// Describes an attribute value.
67type AttributeValueTarget struct {
68
69	// The value of the attribute.
70	AttributeValue *string
71
72	noSmithyDocumentSerde
73}
74
75// Describes an authentication profile.
76type AuthenticationProfile struct {
77
78	// The content of the authentication profile in JSON format. The maximum length of
79	// the JSON string is determined by a quota for your account.
80	AuthenticationProfileContent *string
81
82	// The name of the authentication profile.
83	AuthenticationProfileName *string
84
85	noSmithyDocumentSerde
86}
87
88// Describes an availability zone.
89type AvailabilityZone struct {
90
91	// The name of the availability zone.
92	Name *string
93
94	//
95	SupportedPlatforms []SupportedPlatform
96
97	noSmithyDocumentSerde
98}
99
100// Describes a cluster.
101type Cluster struct {
102
103	// A boolean value that, if true, indicates that major version upgrades will be
104	// applied automatically to the cluster during the maintenance window.
105	AllowVersionUpgrade bool
106
107	// The AQUA (Advanced Query Accelerator) configuration of the cluster.
108	AquaConfiguration *AquaConfiguration
109
110	// The number of days that automatic cluster snapshots are retained.
111	AutomatedSnapshotRetentionPeriod int32
112
113	// The name of the Availability Zone in which the cluster is located.
114	AvailabilityZone *string
115
116	// Describes the status of the Availability Zone relocation operation.
117	AvailabilityZoneRelocationStatus *string
118
119	// The availability status of the cluster for queries. Possible values are the
120	// following:
121	//
122	// * Available - The cluster is available for queries.
123	//
124	// * Unavailable -
125	// The cluster is not available for queries.
126	//
127	// * Maintenance - The cluster is
128	// intermittently available for queries due to maintenance activities.
129	//
130	// * Modifying
131	// - The cluster is intermittently available for queries due to changes that modify
132	// the cluster.
133	//
134	// * Failed - The cluster failed and is not available for queries.
135	ClusterAvailabilityStatus *string
136
137	// The date and time that the cluster was created.
138	ClusterCreateTime *time.Time
139
140	// The unique identifier of the cluster.
141	ClusterIdentifier *string
142
143	// The namespace Amazon Resource Name (ARN) of the cluster.
144	ClusterNamespaceArn *string
145
146	// The nodes in the cluster.
147	ClusterNodes []ClusterNode
148
149	// The list of cluster parameter groups that are associated with this cluster. Each
150	// parameter group in the list is returned with its status.
151	ClusterParameterGroups []ClusterParameterGroupStatus
152
153	// The public key for the cluster.
154	ClusterPublicKey *string
155
156	// The specific revision number of the database in the cluster.
157	ClusterRevisionNumber *string
158
159	// A list of cluster security group that are associated with the cluster. Each
160	// security group is represented by an element that contains
161	// ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements. Cluster
162	// security groups are used when the cluster is not created in an Amazon Virtual
163	// Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups,
164	// which are listed by the VpcSecurityGroups parameter.
165	ClusterSecurityGroups []ClusterSecurityGroupMembership
166
167	// A value that returns the destination region and retention period that are
168	// configured for cross-region snapshot copy.
169	ClusterSnapshotCopyStatus *ClusterSnapshotCopyStatus
170
171	// The current state of the cluster. Possible values are the following:
172	//
173	// *
174	// available
175	//
176	// * available, prep-for-resize
177	//
178	// * available, resize-cleanup
179	//
180	// *
181	// cancelling-resize
182	//
183	// * creating
184	//
185	// * deleting
186	//
187	// * final-snapshot
188	//
189	// *
190	// hardware-failure
191	//
192	// * incompatible-hsm
193	//
194	// * incompatible-network
195	//
196	// *
197	// incompatible-parameters
198	//
199	// * incompatible-restore
200	//
201	// * modifying
202	//
203	// * paused
204	//
205	// *
206	// rebooting
207	//
208	// * renaming
209	//
210	// * resizing
211	//
212	// * rotating-keys
213	//
214	// * storage-full
215	//
216	// *
217	// updating-hsm
218	ClusterStatus *string
219
220	// The name of the subnet group that is associated with the cluster. This parameter
221	// is valid only when the cluster is in a VPC.
222	ClusterSubnetGroupName *string
223
224	// The version ID of the Amazon Redshift engine that is running on the cluster.
225	ClusterVersion *string
226
227	// The name of the initial database that was created when the cluster was created.
228	// This same name is returned for the life of the cluster. If an initial database
229	// was not specified, a database named devdev was created by default.
230	DBName *string
231
232	//
233	DataTransferProgress *DataTransferProgress
234
235	// Describes a group of DeferredMaintenanceWindow objects.
236	DeferredMaintenanceWindows []DeferredMaintenanceWindow
237
238	// The status of the elastic IP (EIP) address.
239	ElasticIpStatus *ElasticIpStatus
240
241	// The number of nodes that you can resize the cluster to with the elastic resize
242	// method.
243	ElasticResizeNumberOfNodeOptions *string
244
245	// A boolean value that, if true, indicates that data in the cluster is encrypted
246	// at rest.
247	Encrypted bool
248
249	// The connection endpoint.
250	Endpoint *Endpoint
251
252	// An option that specifies whether to create the cluster with enhanced VPC routing
253	// enabled. To create a cluster that uses enhanced VPC routing, the cluster must be
254	// in a VPC. For more information, see Enhanced VPC Routing
255	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) in
256	// the Amazon Redshift Cluster Management Guide. If this option is true, enhanced
257	// VPC routing is enabled. Default: false
258	EnhancedVpcRouting bool
259
260	// The date and time when the next snapshot is expected to be taken for clusters
261	// with a valid snapshot schedule and backups enabled.
262	ExpectedNextSnapshotScheduleTime *time.Time
263
264	// The status of next expected snapshot for clusters having a valid snapshot
265	// schedule and backups enabled. Possible values are the following:
266	//
267	// * OnTrack -
268	// The next snapshot is expected to be taken on time.
269	//
270	// * Pending - The next
271	// snapshot is pending to be taken.
272	ExpectedNextSnapshotScheduleTimeStatus *string
273
274	// A value that reports whether the Amazon Redshift cluster has finished applying
275	// any hardware security module (HSM) settings changes specified in a modify
276	// cluster command. Values: active, applying
277	HsmStatus *HsmStatus
278
279	// A list of Identity and Access Management (IAM) roles that can be used by the
280	// cluster to access other Amazon Web Services services.
281	IamRoles []ClusterIamRole
282
283	// The Key Management Service (KMS) key ID of the encryption key used to encrypt
284	// data in the cluster.
285	KmsKeyId *string
286
287	// The name of the maintenance track for the cluster.
288	MaintenanceTrackName *string
289
290	// The default number of days to retain a manual snapshot. If the value is -1, the
291	// snapshot is retained indefinitely. This setting doesn't change the retention
292	// period of existing snapshots. The value must be either -1 or an integer between
293	// 1 and 3,653.
294	ManualSnapshotRetentionPeriod int32
295
296	// The admin user name for the cluster. This name is used to connect to the
297	// database that is specified in the DBName parameter.
298	MasterUsername *string
299
300	// The status of a modify operation, if any, initiated for the cluster.
301	ModifyStatus *string
302
303	// The date and time in UTC when system maintenance can begin.
304	NextMaintenanceWindowStartTime *time.Time
305
306	// The node type for the nodes in the cluster.
307	NodeType *string
308
309	// The number of compute nodes in the cluster.
310	NumberOfNodes int32
311
312	// Cluster operations that are waiting to be started.
313	PendingActions []string
314
315	// A value that, if present, indicates that changes to the cluster are pending.
316	// Specific pending changes are identified by subelements.
317	PendingModifiedValues *PendingModifiedValues
318
319	// The weekly time range, in Universal Coordinated Time (UTC), during which system
320	// maintenance can occur.
321	PreferredMaintenanceWindow *string
322
323	// A boolean value that, if true, indicates that the cluster can be accessed from a
324	// public network.
325	PubliclyAccessible bool
326
327	// Returns the following:
328	//
329	// * AllowCancelResize: a boolean value indicating if the
330	// resize operation can be cancelled.
331	//
332	// * ResizeType: Returns ClassicResize
333	ResizeInfo *ResizeInfo
334
335	// A value that describes the status of a cluster restore action. This parameter
336	// returns null if the cluster was not created by restoring a snapshot.
337	RestoreStatus *RestoreStatus
338
339	// A unique identifier for the cluster snapshot schedule.
340	SnapshotScheduleIdentifier *string
341
342	// The current state of the cluster snapshot schedule.
343	SnapshotScheduleState ScheduleState
344
345	// The list of tags for the cluster.
346	Tags []Tag
347
348	// The total storage capacity of the cluster in megabytes.
349	TotalStorageCapacityInMegaBytes *int64
350
351	// The identifier of the VPC the cluster is in, if the cluster is in a VPC.
352	VpcId *string
353
354	// A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are
355	// associated with the cluster. This parameter is returned only if the cluster is
356	// in a VPC.
357	VpcSecurityGroups []VpcSecurityGroupMembership
358
359	noSmithyDocumentSerde
360}
361
362//
363type ClusterAssociatedToSchedule struct {
364
365	//
366	ClusterIdentifier *string
367
368	//
369	ScheduleAssociationState ScheduleState
370
371	noSmithyDocumentSerde
372}
373
374// Describes a ClusterDbRevision.
375type ClusterDbRevision struct {
376
377	// The unique identifier of the cluster.
378	ClusterIdentifier *string
379
380	// A string representing the current cluster version.
381	CurrentDatabaseRevision *string
382
383	// The date on which the database revision was released.
384	DatabaseRevisionReleaseDate *time.Time
385
386	// A list of RevisionTarget objects, where each object describes the database
387	// revision that a cluster can be updated to.
388	RevisionTargets []RevisionTarget
389
390	noSmithyDocumentSerde
391}
392
393// An Identity and Access Management (IAM) role that can be used by the associated
394// Amazon Redshift cluster to access other Amazon Web Services services.
395type ClusterIamRole struct {
396
397	// A value that describes the status of the IAM role's association with an Amazon
398	// Redshift cluster. The following are possible statuses and descriptions.
399	//
400	// *
401	// in-sync: The role is available for use by the cluster.
402	//
403	// * adding: The role is in
404	// the process of being associated with the cluster.
405	//
406	// * removing: The role is in
407	// the process of being disassociated with the cluster.
408	ApplyStatus *string
409
410	// The Amazon Resource Name (ARN) of the IAM role, for example,
411	// arn:aws:iam::123456789012:role/RedshiftCopyUnload.
412	IamRoleArn *string
413
414	noSmithyDocumentSerde
415}
416
417// The identifier of a node in a cluster.
418type ClusterNode struct {
419
420	// Whether the node is a leader node or a compute node.
421	NodeRole *string
422
423	// The private IP address of a node within a cluster.
424	PrivateIPAddress *string
425
426	// The public IP address of a node within a cluster.
427	PublicIPAddress *string
428
429	noSmithyDocumentSerde
430}
431
432// Describes a parameter group.
433type ClusterParameterGroup struct {
434
435	// The description of the parameter group.
436	Description *string
437
438	// The name of the cluster parameter group family that this cluster parameter group
439	// is compatible with.
440	ParameterGroupFamily *string
441
442	// The name of the cluster parameter group.
443	ParameterGroupName *string
444
445	// The list of tags for the cluster parameter group.
446	Tags []Tag
447
448	noSmithyDocumentSerde
449}
450
451// Describes the status of a parameter group.
452type ClusterParameterGroupStatus struct {
453
454	// The list of parameter statuses. For more information about parameters and
455	// parameter groups, go to Amazon Redshift Parameter Groups
456	// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
457	// in the Amazon Redshift Cluster Management Guide.
458	ClusterParameterStatusList []ClusterParameterStatus
459
460	// The status of parameter updates.
461	ParameterApplyStatus *string
462
463	// The name of the cluster parameter group.
464	ParameterGroupName *string
465
466	noSmithyDocumentSerde
467}
468
469// Describes the status of a parameter group.
470type ClusterParameterStatus struct {
471
472	// The error that prevented the parameter from being applied to the database.
473	ParameterApplyErrorDescription *string
474
475	// The status of the parameter that indicates whether the parameter is in sync with
476	// the database, waiting for a cluster reboot, or encountered an error when being
477	// applied. The following are possible statuses and descriptions.
478	//
479	// * in-sync: The
480	// parameter value is in sync with the database.
481	//
482	// * pending-reboot: The parameter
483	// value will be applied after the cluster reboots.
484	//
485	// * applying: The parameter
486	// value is being applied to the database.
487	//
488	// * invalid-parameter: Cannot apply the
489	// parameter value because it has an invalid value or syntax.
490	//
491	// * apply-deferred:
492	// The parameter contains static property changes. The changes are deferred until
493	// the cluster reboots.
494	//
495	// * apply-error: Cannot connect to the cluster. The
496	// parameter change will be applied after the cluster reboots.
497	//
498	// * unknown-error:
499	// Cannot apply the parameter change right now. The change will be applied after
500	// the cluster reboots.
501	ParameterApplyStatus *string
502
503	// The name of the parameter.
504	ParameterName *string
505
506	noSmithyDocumentSerde
507}
508
509// Describes a security group.
510type ClusterSecurityGroup struct {
511
512	// The name of the cluster security group to which the operation was applied.
513	ClusterSecurityGroupName *string
514
515	// A description of the security group.
516	Description *string
517
518	// A list of EC2 security groups that are permitted to access clusters associated
519	// with this cluster security group.
520	EC2SecurityGroups []EC2SecurityGroup
521
522	// A list of IP ranges (CIDR blocks) that are permitted to access clusters
523	// associated with this cluster security group.
524	IPRanges []IPRange
525
526	// The list of tags for the cluster security group.
527	Tags []Tag
528
529	noSmithyDocumentSerde
530}
531
532// Describes a cluster security group.
533type ClusterSecurityGroupMembership struct {
534
535	// The name of the cluster security group.
536	ClusterSecurityGroupName *string
537
538	// The status of the cluster security group.
539	Status *string
540
541	noSmithyDocumentSerde
542}
543
544// Returns the destination region and retention period that are configured for
545// cross-region snapshot copy.
546type ClusterSnapshotCopyStatus struct {
547
548	// The destination region that snapshots are automatically copied to when
549	// cross-region snapshot copy is enabled.
550	DestinationRegion *string
551
552	// The number of days that automated snapshots are retained in the destination
553	// region after they are copied from a source region. If the value is -1, the
554	// manual snapshot is retained indefinitely. The value must be either -1 or an
555	// integer between 1 and 3,653.
556	ManualSnapshotRetentionPeriod int32
557
558	// The number of days that automated snapshots are retained in the destination
559	// region after they are copied from a source region.
560	RetentionPeriod int64
561
562	// The name of the snapshot copy grant.
563	SnapshotCopyGrantName *string
564
565	noSmithyDocumentSerde
566}
567
568// Describes a subnet group.
569type ClusterSubnetGroup struct {
570
571	// The name of the cluster subnet group.
572	ClusterSubnetGroupName *string
573
574	// The description of the cluster subnet group.
575	Description *string
576
577	// The status of the cluster subnet group. Possible values are Complete, Incomplete
578	// and Invalid.
579	SubnetGroupStatus *string
580
581	// A list of the VPC Subnet elements.
582	Subnets []Subnet
583
584	// The list of tags for the cluster subnet group.
585	Tags []Tag
586
587	// The VPC ID of the cluster subnet group.
588	VpcId *string
589
590	noSmithyDocumentSerde
591}
592
593// Describes a cluster version, including the parameter group family and
594// description of the version.
595type ClusterVersion struct {
596
597	// The name of the cluster parameter group family for the cluster.
598	ClusterParameterGroupFamily *string
599
600	// The version number used by the cluster.
601	ClusterVersion *string
602
603	// The description of the cluster version.
604	Description *string
605
606	noSmithyDocumentSerde
607}
608
609type DataShare struct {
610
611	// A value that specifies whether the datashare can be shared to a publicly
612	// accessible cluster.
613	AllowPubliclyAccessibleConsumers bool
614
615	// An Amazon Resource Name (ARN) that references the datashare that is owned by a
616	// specific namespace of the producer cluster. A datashare ARN is in the
617	// arn:aws:redshift:{region}:{account-id}:{datashare}:{namespace-guid}/{datashare-name}
618	// format.
619	DataShareArn *string
620
621	// A value that specifies when the datashare has an association between a producer
622	// and data consumers.
623	DataShareAssociations []DataShareAssociation
624
625	// The Amazon Resource Name (ARN) of the producer.
626	ProducerArn *string
627
628	noSmithyDocumentSerde
629}
630
631// The association of a datashare from a producer account with a data consumer.
632type DataShareAssociation struct {
633
634	// The name of the consumer accounts that have an association with a producer
635	// datashare.
636	ConsumerIdentifier *string
637
638	// The creation date of the datashare that is associated.
639	CreatedDate *time.Time
640
641	// The status of the datashare that is associated.
642	Status DataShareStatus
643
644	// The status change data of the datashare that is associated.
645	StatusChangeDate *time.Time
646
647	noSmithyDocumentSerde
648}
649
650// Describes the status of a cluster while it is in the process of resizing with an
651// incremental resize.
652type DataTransferProgress struct {
653
654	// Describes the data transfer rate in MB's per second.
655	CurrentRateInMegaBytesPerSecond *float64
656
657	// Describes the total amount of data that has been transfered in MB's.
658	DataTransferredInMegaBytes int64
659
660	// Describes the number of seconds that have elapsed during the data transfer.
661	ElapsedTimeInSeconds *int64
662
663	// Describes the estimated number of seconds remaining to complete the transfer.
664	EstimatedTimeToCompletionInSeconds *int64
665
666	// Describes the status of the cluster. While the transfer is in progress the
667	// status is transferringdata.
668	Status *string
669
670	// Describes the total amount of data to be transfered in megabytes.
671	TotalDataInMegaBytes int64
672
673	noSmithyDocumentSerde
674}
675
676// Describes the default cluster parameters for a parameter group family.
677type DefaultClusterParameters struct {
678
679	// A value that indicates the starting point for the next set of response records
680	// in a subsequent request. If a value is returned in a response, you can retrieve
681	// the next set of records by providing this returned marker value in the Marker
682	// parameter and retrying the command. If the Marker field is empty, all response
683	// records have been retrieved for the request.
684	Marker *string
685
686	// The name of the cluster parameter group family to which the engine default
687	// parameters apply.
688	ParameterGroupFamily *string
689
690	// The list of cluster default parameters.
691	Parameters []Parameter
692
693	noSmithyDocumentSerde
694}
695
696// Describes a deferred maintenance window
697type DeferredMaintenanceWindow struct {
698
699	// A timestamp for the end of the time period when we defer maintenance.
700	DeferMaintenanceEndTime *time.Time
701
702	// A unique identifier for the maintenance window.
703	DeferMaintenanceIdentifier *string
704
705	// A timestamp for the beginning of the time period when we defer maintenance.
706	DeferMaintenanceStartTime *time.Time
707
708	noSmithyDocumentSerde
709}
710
711//
712type DeleteClusterSnapshotMessage struct {
713
714	// The unique identifier of the manual snapshot to be deleted. Constraints: Must be
715	// the name of an existing snapshot that is in the available, failed, or cancelled
716	// state.
717	//
718	// This member is required.
719	SnapshotIdentifier *string
720
721	// The unique identifier of the cluster the snapshot was created from. This
722	// parameter is required if your IAM user has a policy containing a snapshot
723	// resource element that specifies anything other than * for the cluster name.
724	// Constraints: Must be the name of valid cluster.
725	SnapshotClusterIdentifier *string
726
727	noSmithyDocumentSerde
728}
729
730// Describes an Amazon EC2 security group.
731type EC2SecurityGroup struct {
732
733	// The name of the EC2 Security Group.
734	EC2SecurityGroupName *string
735
736	// The Amazon Web Services account ID of the owner of the EC2 security group
737	// specified in the EC2SecurityGroupName field.
738	EC2SecurityGroupOwnerId *string
739
740	// The status of the EC2 security group.
741	Status *string
742
743	// The list of tags for the EC2 security group.
744	Tags []Tag
745
746	noSmithyDocumentSerde
747}
748
749// Describes the status of the elastic IP (EIP) address.
750type ElasticIpStatus struct {
751
752	// The elastic IP (EIP) address for the cluster.
753	ElasticIp *string
754
755	// The status of the elastic IP (EIP) address.
756	Status *string
757
758	noSmithyDocumentSerde
759}
760
761// Describes a connection endpoint.
762type Endpoint struct {
763
764	// The DNS address of the Cluster.
765	Address *string
766
767	// The port that the database engine is listening on.
768	Port int32
769
770	// Describes a connection endpoint.
771	VpcEndpoints []VpcEndpoint
772
773	noSmithyDocumentSerde
774}
775
776// Describes a Redshift-managed VPC endpoint.
777type EndpointAccess struct {
778
779	// The DNS address of the endpoint.
780	Address *string
781
782	// The cluster identifier of the cluster associated with the endpoint.
783	ClusterIdentifier *string
784
785	// The time (UTC) that the endpoint was created.
786	EndpointCreateTime *time.Time
787
788	// The name of the endpoint.
789	EndpointName *string
790
791	// The status of the endpoint.
792	EndpointStatus *string
793
794	// The port number on which the cluster accepts incoming connections.
795	Port int32
796
797	// The Amazon Web Services account ID of the owner of the cluster.
798	ResourceOwner *string
799
800	// The subnet group name where Amazon Redshift chooses to deploy the endpoint.
801	SubnetGroupName *string
802
803	// The connection endpoint for connecting to an Amazon Redshift cluster through the
804	// proxy.
805	VpcEndpoint *VpcEndpoint
806
807	// The security groups associated with the endpoint.
808	VpcSecurityGroups []VpcSecurityGroupMembership
809
810	noSmithyDocumentSerde
811}
812
813// Describes an endpoint authorization for authorizing Redshift-managed VPC
814// endpoint access to a cluster across Amazon Web Services accounts.
815type EndpointAuthorization struct {
816
817	// Indicates whether all VPCs in the grantee account are allowed access to the
818	// cluster.
819	AllowedAllVPCs bool
820
821	// The VPCs allowed access to the cluster.
822	AllowedVPCs []string
823
824	// The time (UTC) when the authorization was created.
825	AuthorizeTime *time.Time
826
827	// The cluster identifier.
828	ClusterIdentifier *string
829
830	// The status of the cluster.
831	ClusterStatus *string
832
833	// The number of Redshift-managed VPC endpoints created for the authorization.
834	EndpointCount int32
835
836	// The Amazon Web Services account ID of the grantee of the cluster.
837	Grantee *string
838
839	// The Amazon Web Services account ID of the cluster owner.
840	Grantor *string
841
842	// The status of the authorization action.
843	Status AuthorizationStatus
844
845	noSmithyDocumentSerde
846}
847
848// Describes an event.
849type Event struct {
850
851	// The date and time of the event.
852	Date *time.Time
853
854	// A list of the event categories. Values: Configuration, Management, Monitoring,
855	// Security, Pending
856	EventCategories []string
857
858	// The identifier of the event.
859	EventId *string
860
861	// The text of this event.
862	Message *string
863
864	// The severity of the event. Values: ERROR, INFO
865	Severity *string
866
867	// The identifier for the source of the event.
868	SourceIdentifier *string
869
870	// The source type for this event.
871	SourceType SourceType
872
873	noSmithyDocumentSerde
874}
875
876// Describes event categories.
877type EventCategoriesMap struct {
878
879	// The events in the event category.
880	Events []EventInfoMap
881
882	// The source type, such as cluster or cluster-snapshot, that the returned
883	// categories belong to.
884	SourceType *string
885
886	noSmithyDocumentSerde
887}
888
889// Describes event information.
890type EventInfoMap struct {
891
892	// The category of an Amazon Redshift event.
893	EventCategories []string
894
895	// The description of an Amazon Redshift event.
896	EventDescription *string
897
898	// The identifier of an Amazon Redshift event.
899	EventId *string
900
901	// The severity of the event. Values: ERROR, INFO
902	Severity *string
903
904	noSmithyDocumentSerde
905}
906
907// Describes event subscriptions.
908type EventSubscription struct {
909
910	// The name of the Amazon Redshift event notification subscription.
911	CustSubscriptionId *string
912
913	// The Amazon Web Services account associated with the Amazon Redshift event
914	// notification subscription.
915	CustomerAwsId *string
916
917	// A boolean value indicating whether the subscription is enabled; true indicates
918	// that the subscription is enabled.
919	Enabled bool
920
921	// The list of Amazon Redshift event categories specified in the event notification
922	// subscription. Values: Configuration, Management, Monitoring, Security, Pending
923	EventCategoriesList []string
924
925	// The event severity specified in the Amazon Redshift event notification
926	// subscription. Values: ERROR, INFO
927	Severity *string
928
929	// The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
930	// notification subscription.
931	SnsTopicArn *string
932
933	// A list of the sources that publish events to the Amazon Redshift event
934	// notification subscription.
935	SourceIdsList []string
936
937	// The source type of the events returned by the Amazon Redshift event
938	// notification, such as cluster, cluster-snapshot, cluster-parameter-group,
939	// cluster-security-group, or scheduled-action.
940	SourceType *string
941
942	// The status of the Amazon Redshift event notification subscription.
943	// Constraints:
944	//
945	// * Can be one of the following: active | no-permission |
946	// topic-not-exist
947	//
948	// * The status "no-permission" indicates that Amazon Redshift no
949	// longer has permission to post to the Amazon SNS topic. The status
950	// "topic-not-exist" indicates that the topic was deleted after the subscription
951	// was created.
952	Status *string
953
954	// The date and time the Amazon Redshift event notification subscription was
955	// created.
956	SubscriptionCreationTime *time.Time
957
958	// The list of tags for the event subscription.
959	Tags []Tag
960
961	noSmithyDocumentSerde
962}
963
964// Returns information about an HSM client certificate. The certificate is stored
965// in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift
966// cluster to encrypt data files.
967type HsmClientCertificate struct {
968
969	// The identifier of the HSM client certificate.
970	HsmClientCertificateIdentifier *string
971
972	// The public key that the Amazon Redshift cluster will use to connect to the HSM.
973	// You must register the public key in the HSM.
974	HsmClientCertificatePublicKey *string
975
976	// The list of tags for the HSM client certificate.
977	Tags []Tag
978
979	noSmithyDocumentSerde
980}
981
982// Returns information about an HSM configuration, which is an object that
983// describes to Amazon Redshift clusters the information they require to connect to
984// an HSM where they can store database encryption keys.
985type HsmConfiguration struct {
986
987	// A text description of the HSM configuration.
988	Description *string
989
990	// The name of the Amazon Redshift HSM configuration.
991	HsmConfigurationIdentifier *string
992
993	// The IP address that the Amazon Redshift cluster must use to access the HSM.
994	HsmIpAddress *string
995
996	// The name of the partition in the HSM where the Amazon Redshift clusters will
997	// store their database encryption keys.
998	HsmPartitionName *string
999
1000	// The list of tags for the HSM configuration.
1001	Tags []Tag
1002
1003	noSmithyDocumentSerde
1004}
1005
1006// Describes the status of changes to HSM settings.
1007type HsmStatus struct {
1008
1009	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
1010	// uses to retrieve the data encryption keys stored in an HSM.
1011	HsmClientCertificateIdentifier *string
1012
1013	// Specifies the name of the HSM configuration that contains the information the
1014	// Amazon Redshift cluster can use to retrieve and store keys in an HSM.
1015	HsmConfigurationIdentifier *string
1016
1017	// Reports whether the Amazon Redshift cluster has finished applying any HSM
1018	// settings changes specified in a modify cluster command. Values: active, applying
1019	Status *string
1020
1021	noSmithyDocumentSerde
1022}
1023
1024// Describes an IP range used in a security group.
1025type IPRange struct {
1026
1027	// The IP range in Classless Inter-Domain Routing (CIDR) notation.
1028	CIDRIP *string
1029
1030	// The status of the IP range, for example, "authorized".
1031	Status *string
1032
1033	// The list of tags for the IP range.
1034	Tags []Tag
1035
1036	noSmithyDocumentSerde
1037}
1038
1039// Defines a maintenance track that determines which Amazon Redshift version to
1040// apply during a maintenance window. If the value for MaintenanceTrack is current,
1041// the cluster is updated to the most recently certified maintenance release. If
1042// the value is trailing, the cluster is updated to the previously certified
1043// maintenance release.
1044type MaintenanceTrack struct {
1045
1046	// The version number for the cluster release.
1047	DatabaseVersion *string
1048
1049	// The name of the maintenance track. Possible values are current and trailing.
1050	MaintenanceTrackName *string
1051
1052	// An array of UpdateTarget objects to update with the maintenance track.
1053	UpdateTargets []UpdateTarget
1054
1055	noSmithyDocumentSerde
1056}
1057
1058// Describes a network interface.
1059type NetworkInterface struct {
1060
1061	// The Availability Zone.
1062	AvailabilityZone *string
1063
1064	// The network interface identifier.
1065	NetworkInterfaceId *string
1066
1067	// The IPv4 address of the network interface within the subnet.
1068	PrivateIpAddress *string
1069
1070	// The subnet identifier.
1071	SubnetId *string
1072
1073	noSmithyDocumentSerde
1074}
1075
1076// A list of node configurations.
1077type NodeConfigurationOption struct {
1078
1079	// The estimated disk utilizaton percentage.
1080	EstimatedDiskUtilizationPercent *float64
1081
1082	// The category of the node configuration recommendation.
1083	Mode Mode
1084
1085	// The node type, such as, "ds2.8xlarge".
1086	NodeType *string
1087
1088	// The number of nodes.
1089	NumberOfNodes int32
1090
1091	noSmithyDocumentSerde
1092}
1093
1094// A set of elements to filter the returned node configurations.
1095type NodeConfigurationOptionsFilter struct {
1096
1097	// The name of the element to filter.
1098	Name NodeConfigurationOptionsFilterName
1099
1100	// The filter operator. If filter Name is NodeType only the 'in' operator is
1101	// supported. Provide one value to evaluate for 'eq', 'lt', 'le', 'gt', and 'ge'.
1102	// Provide two values to evaluate for 'between'. Provide a list of values for 'in'.
1103	Operator OperatorType
1104
1105	// List of values. Compare Name using Operator to Values. If filter Name is
1106	// NumberOfNodes, then values can range from 0 to 200. If filter Name is
1107	// EstimatedDiskUtilizationPercent, then values can range from 0 to 100. For
1108	// example, filter NumberOfNodes (name) GT (operator) 3 (values).
1109	Values []string
1110
1111	noSmithyDocumentSerde
1112}
1113
1114// Describes an orderable cluster option.
1115type OrderableClusterOption struct {
1116
1117	// A list of availability zones for the orderable cluster.
1118	AvailabilityZones []AvailabilityZone
1119
1120	// The cluster type, for example multi-node.
1121	ClusterType *string
1122
1123	// The version of the orderable cluster.
1124	ClusterVersion *string
1125
1126	// The node type for the orderable cluster.
1127	NodeType *string
1128
1129	noSmithyDocumentSerde
1130}
1131
1132// Describes a parameter in a cluster parameter group.
1133type Parameter struct {
1134
1135	// The valid range of values for the parameter.
1136	AllowedValues *string
1137
1138	// Specifies how to apply the WLM configuration parameter. Some properties can be
1139	// applied dynamically, while other properties require that any associated clusters
1140	// be rebooted for the configuration changes to be applied. For more information
1141	// about parameters and parameter groups, go to Amazon Redshift Parameter Groups
1142	// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
1143	// in the Amazon Redshift Cluster Management Guide.
1144	ApplyType ParameterApplyType
1145
1146	// The data type of the parameter.
1147	DataType *string
1148
1149	// A description of the parameter.
1150	Description *string
1151
1152	// If true, the parameter can be modified. Some parameters have security or
1153	// operational implications that prevent them from being changed.
1154	IsModifiable bool
1155
1156	// The earliest engine version to which the parameter can apply.
1157	MinimumEngineVersion *string
1158
1159	// The name of the parameter.
1160	ParameterName *string
1161
1162	// The value of the parameter. If ParameterName is wlm_json_configuration, then the
1163	// maximum size of ParameterValue is 8000 characters.
1164	ParameterValue *string
1165
1166	// The source of the parameter value, such as "engine-default" or "user".
1167	Source *string
1168
1169	noSmithyDocumentSerde
1170}
1171
1172// Describes a partner integration.
1173type PartnerIntegrationInfo struct {
1174
1175	// The date (UTC) that the partner integration was created.
1176	CreatedAt *time.Time
1177
1178	// The name of the database that receives data from a partner.
1179	DatabaseName *string
1180
1181	// The name of the partner.
1182	PartnerName *string
1183
1184	// The partner integration status.
1185	Status PartnerIntegrationStatus
1186
1187	// The status message provided by the partner.
1188	StatusMessage *string
1189
1190	// The date (UTC) that the partner integration status was last updated by the
1191	// partner.
1192	UpdatedAt *time.Time
1193
1194	noSmithyDocumentSerde
1195}
1196
1197// Describes a pause cluster operation. For example, a scheduled action to run the
1198// PauseCluster API operation.
1199type PauseClusterMessage struct {
1200
1201	// The identifier of the cluster to be paused.
1202	//
1203	// This member is required.
1204	ClusterIdentifier *string
1205
1206	noSmithyDocumentSerde
1207}
1208
1209// Describes cluster attributes that are in a pending state. A change to one or
1210// more the attributes was requested and is in progress or will be applied.
1211type PendingModifiedValues struct {
1212
1213	// The pending or in-progress change of the automated snapshot retention period.
1214	AutomatedSnapshotRetentionPeriod *int32
1215
1216	// The pending or in-progress change of the new identifier for the cluster.
1217	ClusterIdentifier *string
1218
1219	// The pending or in-progress change of the cluster type.
1220	ClusterType *string
1221
1222	// The pending or in-progress change of the service version.
1223	ClusterVersion *string
1224
1225	// The encryption type for a cluster. Possible values are: KMS and None.
1226	EncryptionType *string
1227
1228	// An option that specifies whether to create the cluster with enhanced VPC routing
1229	// enabled. To create a cluster that uses enhanced VPC routing, the cluster must be
1230	// in a VPC. For more information, see Enhanced VPC Routing
1231	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) in
1232	// the Amazon Redshift Cluster Management Guide. If this option is true, enhanced
1233	// VPC routing is enabled. Default: false
1234	EnhancedVpcRouting *bool
1235
1236	// The name of the maintenance track that the cluster will change to during the
1237	// next maintenance window.
1238	MaintenanceTrackName *string
1239
1240	// The pending or in-progress change of the admin user password for the cluster.
1241	MasterUserPassword *string
1242
1243	// The pending or in-progress change of the cluster's node type.
1244	NodeType *string
1245
1246	// The pending or in-progress change of the number of nodes in the cluster.
1247	NumberOfNodes *int32
1248
1249	// The pending or in-progress change of the ability to connect to the cluster from
1250	// the public network.
1251	PubliclyAccessible *bool
1252
1253	noSmithyDocumentSerde
1254}
1255
1256// Describes a recurring charge.
1257type RecurringCharge struct {
1258
1259	// The amount charged per the period of time specified by the recurring charge
1260	// frequency.
1261	RecurringChargeAmount float64
1262
1263	// The frequency at which the recurring charge amount is applied.
1264	RecurringChargeFrequency *string
1265
1266	noSmithyDocumentSerde
1267}
1268
1269// Describes a reserved node. You can call the DescribeReservedNodeOfferings API to
1270// obtain the available reserved node offerings.
1271type ReservedNode struct {
1272
1273	// The currency code for the reserved cluster.
1274	CurrencyCode *string
1275
1276	// The duration of the node reservation in seconds.
1277	Duration int32
1278
1279	// The fixed cost Amazon Redshift charges you for this reserved node.
1280	FixedPrice float64
1281
1282	// The number of reserved compute nodes.
1283	NodeCount int32
1284
1285	// The node type of the reserved node.
1286	NodeType *string
1287
1288	// The anticipated utilization of the reserved node, as defined in the reserved
1289	// node offering.
1290	OfferingType *string
1291
1292	// The recurring charges for the reserved node.
1293	RecurringCharges []RecurringCharge
1294
1295	// The unique identifier for the reservation.
1296	ReservedNodeId *string
1297
1298	// The identifier for the reserved node offering.
1299	ReservedNodeOfferingId *string
1300
1301	//
1302	ReservedNodeOfferingType ReservedNodeOfferingType
1303
1304	// The time the reservation started. You purchase a reserved node offering for a
1305	// duration. This is the start time of that duration.
1306	StartTime *time.Time
1307
1308	// The state of the reserved compute node. Possible Values:
1309	//
1310	// * pending-payment-This
1311	// reserved node has recently been purchased, and the sale has been approved, but
1312	// payment has not yet been confirmed.
1313	//
1314	// * active-This reserved node is owned by the
1315	// caller and is available for use.
1316	//
1317	// * payment-failed-Payment failed for the
1318	// purchase attempt.
1319	//
1320	// * retired-The reserved node is no longer available.
1321	//
1322	// *
1323	// exchanging-The owner is exchanging the reserved node for another reserved node.
1324	State *string
1325
1326	// The hourly rate Amazon Redshift charges you for this reserved node.
1327	UsagePrice float64
1328
1329	noSmithyDocumentSerde
1330}
1331
1332// Describes a reserved node offering.
1333type ReservedNodeOffering struct {
1334
1335	// The currency code for the compute nodes offering.
1336	CurrencyCode *string
1337
1338	// The duration, in seconds, for which the offering will reserve the node.
1339	Duration int32
1340
1341	// The upfront fixed charge you will pay to purchase the specific reserved node
1342	// offering.
1343	FixedPrice float64
1344
1345	// The node type offered by the reserved node offering.
1346	NodeType *string
1347
1348	// The anticipated utilization of the reserved node, as defined in the reserved
1349	// node offering.
1350	OfferingType *string
1351
1352	// The charge to your account regardless of whether you are creating any clusters
1353	// using the node offering. Recurring charges are only in effect for
1354	// heavy-utilization reserved nodes.
1355	RecurringCharges []RecurringCharge
1356
1357	// The offering identifier.
1358	ReservedNodeOfferingId *string
1359
1360	//
1361	ReservedNodeOfferingType ReservedNodeOfferingType
1362
1363	// The rate you are charged for each hour the cluster that is using the offering is
1364	// running.
1365	UsagePrice float64
1366
1367	noSmithyDocumentSerde
1368}
1369
1370// Describes a resize cluster operation. For example, a scheduled action to run the
1371// ResizeCluster API operation.
1372type ResizeClusterMessage struct {
1373
1374	// The unique identifier for the cluster to resize.
1375	//
1376	// This member is required.
1377	ClusterIdentifier *string
1378
1379	// A boolean value indicating whether the resize operation is using the classic
1380	// resize process. If you don't provide this parameter or set the value to false,
1381	// the resize type is elastic.
1382	Classic *bool
1383
1384	// The new cluster type for the specified cluster.
1385	ClusterType *string
1386
1387	// The new node type for the nodes you are adding. If not specified, the cluster's
1388	// current node type is used.
1389	NodeType *string
1390
1391	// The new number of nodes for the cluster. If not specified, the cluster's current
1392	// number of nodes is used.
1393	NumberOfNodes *int32
1394
1395	noSmithyDocumentSerde
1396}
1397
1398// Describes a resize operation.
1399type ResizeInfo struct {
1400
1401	// A boolean value indicating if the resize operation can be cancelled.
1402	AllowCancelResize bool
1403
1404	// Returns the value ClassicResize.
1405	ResizeType *string
1406
1407	noSmithyDocumentSerde
1408}
1409
1410// Describes the status of a cluster restore action. Returns null if the cluster
1411// was not created by restoring a snapshot.
1412type RestoreStatus struct {
1413
1414	// The number of megabytes per second being transferred from the backup storage.
1415	// Returns the average rate for a completed backup. This field is only updated when
1416	// you restore to DC2 and DS2 node types.
1417	CurrentRestoreRateInMegaBytesPerSecond float64
1418
1419	// The amount of time an in-progress restore has been running, or the amount of
1420	// time it took a completed restore to finish. This field is only updated when you
1421	// restore to DC2 and DS2 node types.
1422	ElapsedTimeInSeconds int64
1423
1424	// The estimate of the time remaining before the restore will complete. Returns 0
1425	// for a completed restore. This field is only updated when you restore to DC2 and
1426	// DS2 node types.
1427	EstimatedTimeToCompletionInSeconds int64
1428
1429	// The number of megabytes that have been transferred from snapshot storage. This
1430	// field is only updated when you restore to DC2 and DS2 node types.
1431	ProgressInMegaBytes int64
1432
1433	// The size of the set of snapshot data used to restore the cluster. This field is
1434	// only updated when you restore to DC2 and DS2 node types.
1435	SnapshotSizeInMegaBytes int64
1436
1437	// The status of the restore action. Returns starting, restoring, completed, or
1438	// failed.
1439	Status *string
1440
1441	noSmithyDocumentSerde
1442}
1443
1444// Describes a resume cluster operation. For example, a scheduled action to run the
1445// ResumeCluster API operation.
1446type ResumeClusterMessage struct {
1447
1448	// The identifier of the cluster to be resumed.
1449	//
1450	// This member is required.
1451	ClusterIdentifier *string
1452
1453	noSmithyDocumentSerde
1454}
1455
1456// Describes a RevisionTarget.
1457type RevisionTarget struct {
1458
1459	// A unique string that identifies the version to update the cluster to. You can
1460	// use this value in ModifyClusterDbRevision.
1461	DatabaseRevision *string
1462
1463	// The date on which the database revision was released.
1464	DatabaseRevisionReleaseDate *time.Time
1465
1466	// A string that describes the changes and features that will be applied to the
1467	// cluster when it is updated to the corresponding ClusterDbRevision.
1468	Description *string
1469
1470	noSmithyDocumentSerde
1471}
1472
1473// Describes a scheduled action. You can use a scheduled action to trigger some
1474// Amazon Redshift API operations on a schedule. For information about which API
1475// operations can be scheduled, see ScheduledActionType.
1476type ScheduledAction struct {
1477
1478	// The end time in UTC when the schedule is no longer active. After this time, the
1479	// scheduled action does not trigger.
1480	EndTime *time.Time
1481
1482	// The IAM role to assume to run the scheduled action. This IAM role must have
1483	// permission to run the Amazon Redshift API operation in the scheduled action.
1484	// This IAM role must allow the Amazon Redshift scheduler (Principal
1485	// scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more
1486	// information about the IAM role to use with the Amazon Redshift scheduler, see
1487	// Using Identity-Based Policies for Amazon Redshift
1488	// (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)
1489	// in the Amazon Redshift Cluster Management Guide.
1490	IamRole *string
1491
1492	// List of times when the scheduled action will run.
1493	NextInvocations []time.Time
1494
1495	// The schedule for a one-time (at format) or recurring (cron format) scheduled
1496	// action. Schedule invocations must be separated by at least one hour. Format of
1497	// at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example,
1498	// "at(2016-03-04T17:27:00)". Format of cron expressions is "cron(Minutes Hours
1499	// Day-of-month Month Day-of-week Year)". For example, "cron(0 10 ? * MON *)". For
1500	// more information, see Cron Expressions
1501	// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)
1502	// in the Amazon CloudWatch Events User Guide.
1503	Schedule *string
1504
1505	// The description of the scheduled action.
1506	ScheduledActionDescription *string
1507
1508	// The name of the scheduled action.
1509	ScheduledActionName *string
1510
1511	// The start time in UTC when the schedule is active. Before this time, the
1512	// scheduled action does not trigger.
1513	StartTime *time.Time
1514
1515	// The state of the scheduled action. For example, DISABLED.
1516	State ScheduledActionState
1517
1518	// A JSON format string of the Amazon Redshift API operation with input parameters.
1519	// "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}".
1520	TargetAction *ScheduledActionType
1521
1522	noSmithyDocumentSerde
1523}
1524
1525// A set of elements to filter the returned scheduled actions.
1526type ScheduledActionFilter struct {
1527
1528	// The type of element to filter.
1529	//
1530	// This member is required.
1531	Name ScheduledActionFilterName
1532
1533	// List of values. Compare if the value (of type defined by Name) equals an item in
1534	// the list of scheduled actions.
1535	//
1536	// This member is required.
1537	Values []string
1538
1539	noSmithyDocumentSerde
1540}
1541
1542// The action type that specifies an Amazon Redshift API operation that is
1543// supported by the Amazon Redshift scheduler.
1544type ScheduledActionType struct {
1545
1546	// An action that runs a PauseCluster API operation.
1547	PauseCluster *PauseClusterMessage
1548
1549	// An action that runs a ResizeCluster API operation.
1550	ResizeCluster *ResizeClusterMessage
1551
1552	// An action that runs a ResumeCluster API operation.
1553	ResumeCluster *ResumeClusterMessage
1554
1555	noSmithyDocumentSerde
1556}
1557
1558// Describes a snapshot.
1559type Snapshot struct {
1560
1561	// A list of the Amazon Web Services accounts authorized to restore the snapshot.
1562	// Returns null if no accounts are authorized. Visible only to the snapshot owner.
1563	AccountsWithRestoreAccess []AccountWithRestoreAccess
1564
1565	// The size of the incremental backup.
1566	ActualIncrementalBackupSizeInMegaBytes float64
1567
1568	// The Availability Zone in which the cluster was created.
1569	AvailabilityZone *string
1570
1571	// The number of megabytes that have been transferred to the snapshot backup.
1572	BackupProgressInMegaBytes float64
1573
1574	// The time (UTC) when the cluster was originally created.
1575	ClusterCreateTime *time.Time
1576
1577	// The identifier of the cluster for which the snapshot was taken.
1578	ClusterIdentifier *string
1579
1580	// The version ID of the Amazon Redshift engine that is running on the cluster.
1581	ClusterVersion *string
1582
1583	// The number of megabytes per second being transferred to the snapshot backup.
1584	// Returns 0 for a completed backup.
1585	CurrentBackupRateInMegaBytesPerSecond float64
1586
1587	// The name of the database that was created when the cluster was created.
1588	DBName *string
1589
1590	// The amount of time an in-progress snapshot backup has been running, or the
1591	// amount of time it took a completed backup to finish.
1592	ElapsedTimeInSeconds int64
1593
1594	// If true, the data in the snapshot is encrypted at rest.
1595	Encrypted bool
1596
1597	// A boolean that indicates whether the snapshot data is encrypted using the HSM
1598	// keys of the source cluster. true indicates that the data is encrypted using HSM
1599	// keys.
1600	EncryptedWithHSM bool
1601
1602	// The cluster version of the cluster used to create the snapshot. For example,
1603	// 1.0.15503.
1604	EngineFullVersion *string
1605
1606	// An option that specifies whether to create the cluster with enhanced VPC routing
1607	// enabled. To create a cluster that uses enhanced VPC routing, the cluster must be
1608	// in a VPC. For more information, see Enhanced VPC Routing
1609	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) in
1610	// the Amazon Redshift Cluster Management Guide. If this option is true, enhanced
1611	// VPC routing is enabled. Default: false
1612	EnhancedVpcRouting bool
1613
1614	// The estimate of the time remaining before the snapshot backup will complete.
1615	// Returns 0 for a completed backup.
1616	EstimatedSecondsToCompletion int64
1617
1618	// The Key Management Service (KMS) key ID of the encryption key that was used to
1619	// encrypt data in the cluster from which the snapshot was taken.
1620	KmsKeyId *string
1621
1622	// The name of the maintenance track for the snapshot.
1623	MaintenanceTrackName *string
1624
1625	// The number of days until a manual snapshot will pass its retention period.
1626	ManualSnapshotRemainingDays *int32
1627
1628	// The number of days that a manual snapshot is retained. If the value is -1, the
1629	// manual snapshot is retained indefinitely. The value must be either -1 or an
1630	// integer between 1 and 3,653.
1631	ManualSnapshotRetentionPeriod *int32
1632
1633	// The admin user name for the cluster.
1634	MasterUsername *string
1635
1636	// The node type of the nodes in the cluster.
1637	NodeType *string
1638
1639	// The number of nodes in the cluster.
1640	NumberOfNodes int32
1641
1642	// For manual snapshots, the Amazon Web Services account used to create or copy the
1643	// snapshot. For automatic snapshots, the owner of the cluster. The owner can
1644	// perform all snapshot actions, such as sharing a manual snapshot.
1645	OwnerAccount *string
1646
1647	// The port that the cluster is listening on.
1648	Port int32
1649
1650	// The list of node types that this cluster snapshot is able to restore into.
1651	RestorableNodeTypes []string
1652
1653	// The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot
1654	// contains a copy of the cluster data as of this exact time.
1655	SnapshotCreateTime *time.Time
1656
1657	// The snapshot identifier that is provided in the request.
1658	SnapshotIdentifier *string
1659
1660	// A timestamp representing the start of the retention period for the snapshot.
1661	SnapshotRetentionStartTime *time.Time
1662
1663	// The snapshot type. Snapshots created using CreateClusterSnapshot and
1664	// CopyClusterSnapshot are of type "manual".
1665	SnapshotType *string
1666
1667	// The source region from which the snapshot was copied.
1668	SourceRegion *string
1669
1670	// The snapshot status. The value of the status depends on the API operation
1671	// used:
1672	//
1673	// * CreateClusterSnapshot and CopyClusterSnapshot returns status as
1674	// "creating".
1675	//
1676	// * DescribeClusterSnapshots returns status as "creating",
1677	// "available", "final snapshot", or "failed".
1678	//
1679	// * DeleteClusterSnapshot returns
1680	// status as "deleted".
1681	Status *string
1682
1683	// The list of tags for the cluster snapshot.
1684	Tags []Tag
1685
1686	// The size of the complete set of backup data that would be used to restore the
1687	// cluster.
1688	TotalBackupSizeInMegaBytes float64
1689
1690	// The VPC identifier of the cluster if the snapshot is from a cluster in a VPC.
1691	// Otherwise, this field is not in the output.
1692	VpcId *string
1693
1694	noSmithyDocumentSerde
1695}
1696
1697// The snapshot copy grant that grants Amazon Redshift permission to encrypt copied
1698// snapshots with the specified customer master key (CMK) from Amazon Web Services
1699// KMS in the destination region. For more information about managing snapshot copy
1700// grants, go to Amazon Redshift Database Encryption
1701// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
1702// in the Amazon Redshift Cluster Management Guide.
1703type SnapshotCopyGrant struct {
1704
1705	// The unique identifier of the customer master key (CMK) in Amazon Web Services
1706	// KMS to which Amazon Redshift is granted permission.
1707	KmsKeyId *string
1708
1709	// The name of the snapshot copy grant.
1710	SnapshotCopyGrantName *string
1711
1712	// A list of tag instances.
1713	Tags []Tag
1714
1715	noSmithyDocumentSerde
1716}
1717
1718// Describes the errors returned by a snapshot.
1719type SnapshotErrorMessage struct {
1720
1721	// The failure code for the error.
1722	FailureCode *string
1723
1724	// The text message describing the error.
1725	FailureReason *string
1726
1727	// A unique identifier for the cluster.
1728	SnapshotClusterIdentifier *string
1729
1730	// A unique identifier for the snapshot returning the error.
1731	SnapshotIdentifier *string
1732
1733	noSmithyDocumentSerde
1734}
1735
1736// Describes a snapshot schedule. You can set a regular interval for creating
1737// snapshots of a cluster. You can also schedule snapshots for specific dates.
1738type SnapshotSchedule struct {
1739
1740	// The number of clusters associated with the schedule.
1741	AssociatedClusterCount *int32
1742
1743	// A list of clusters associated with the schedule. A maximum of 100 clusters is
1744	// returned.
1745	AssociatedClusters []ClusterAssociatedToSchedule
1746
1747	//
1748	NextInvocations []time.Time
1749
1750	// A list of ScheduleDefinitions.
1751	ScheduleDefinitions []string
1752
1753	// The description of the schedule.
1754	ScheduleDescription *string
1755
1756	// A unique identifier for the schedule.
1757	ScheduleIdentifier *string
1758
1759	// An optional set of tags describing the schedule.
1760	Tags []Tag
1761
1762	noSmithyDocumentSerde
1763}
1764
1765// Describes a sorting entity
1766type SnapshotSortingEntity struct {
1767
1768	// The category for sorting the snapshots.
1769	//
1770	// This member is required.
1771	Attribute SnapshotAttributeToSortBy
1772
1773	// The order for listing the attributes.
1774	SortOrder SortByOrder
1775
1776	noSmithyDocumentSerde
1777}
1778
1779// Describes a subnet.
1780type Subnet struct {
1781
1782	//
1783	SubnetAvailabilityZone *AvailabilityZone
1784
1785	// The identifier of the subnet.
1786	SubnetIdentifier *string
1787
1788	// The status of the subnet.
1789	SubnetStatus *string
1790
1791	noSmithyDocumentSerde
1792}
1793
1794// Describes the operations that are allowed on a maintenance track.
1795type SupportedOperation struct {
1796
1797	// A list of the supported operations.
1798	OperationName *string
1799
1800	noSmithyDocumentSerde
1801}
1802
1803// A list of supported platforms for orderable clusters.
1804type SupportedPlatform struct {
1805
1806	//
1807	Name *string
1808
1809	noSmithyDocumentSerde
1810}
1811
1812// Describes the status of a RestoreTableFromClusterSnapshot operation.
1813type TableRestoreStatus struct {
1814
1815	// The identifier of the Amazon Redshift cluster that the table is being restored
1816	// to.
1817	ClusterIdentifier *string
1818
1819	// A description of the status of the table restore request. Status values include
1820	// SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS.
1821	Message *string
1822
1823	// The name of the table to create as a result of the table restore request.
1824	NewTableName *string
1825
1826	// The amount of data restored to the new table so far, in megabytes (MB).
1827	ProgressInMegaBytes *int64
1828
1829	// The time that the table restore request was made, in Universal Coordinated Time
1830	// (UTC).
1831	RequestTime *time.Time
1832
1833	// The identifier of the snapshot that the table is being restored from.
1834	SnapshotIdentifier *string
1835
1836	// The name of the source database that contains the table being restored.
1837	SourceDatabaseName *string
1838
1839	// The name of the source schema that contains the table being restored.
1840	SourceSchemaName *string
1841
1842	// The name of the source table being restored.
1843	SourceTableName *string
1844
1845	// A value that describes the current state of the table restore request. Valid
1846	// Values: SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS
1847	Status TableRestoreStatusType
1848
1849	// The unique identifier for the table restore request.
1850	TableRestoreRequestId *string
1851
1852	// The name of the database to restore the table to.
1853	TargetDatabaseName *string
1854
1855	// The name of the schema to restore the table to.
1856	TargetSchemaName *string
1857
1858	// The total amount of data to restore to the new table, in megabytes (MB).
1859	TotalDataInMegaBytes *int64
1860
1861	noSmithyDocumentSerde
1862}
1863
1864// A tag consisting of a name/value pair for a resource.
1865type Tag struct {
1866
1867	// The key, or name, for the resource tag.
1868	Key *string
1869
1870	// The value for the resource tag.
1871	Value *string
1872
1873	noSmithyDocumentSerde
1874}
1875
1876// A tag and its associated resource.
1877type TaggedResource struct {
1878
1879	// The Amazon Resource Name (ARN) with which the tag is associated, for example:
1880	// arn:aws:redshift:us-east-2:123456789:cluster:t1.
1881	ResourceName *string
1882
1883	// The type of resource with which the tag is associated. Valid resource types
1884	// are:
1885	//
1886	// * Cluster
1887	//
1888	// * CIDR/IP
1889	//
1890	// * EC2 security group
1891	//
1892	// * Snapshot
1893	//
1894	// * Cluster security
1895	// group
1896	//
1897	// * Subnet group
1898	//
1899	// * HSM connection
1900	//
1901	// * HSM certificate
1902	//
1903	// * Parameter
1904	// group
1905	//
1906	// For more information about Amazon Redshift resource types and
1907	// constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name
1908	// (ARN)
1909	// (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions)
1910	// in the Amazon Redshift Cluster Management Guide.
1911	ResourceType *string
1912
1913	// The tag for the resource.
1914	Tag *Tag
1915
1916	noSmithyDocumentSerde
1917}
1918
1919// A maintenance track that you can switch the current track to.
1920type UpdateTarget struct {
1921
1922	// The cluster version for the new maintenance track.
1923	DatabaseVersion *string
1924
1925	// The name of the new maintenance track.
1926	MaintenanceTrackName *string
1927
1928	// A list of operations supported by the maintenance track.
1929	SupportedOperations []SupportedOperation
1930
1931	noSmithyDocumentSerde
1932}
1933
1934// Describes a usage limit object for a cluster.
1935type UsageLimit struct {
1936
1937	// The limit amount. If time-based, this amount is in minutes. If data-based, this
1938	// amount is in terabytes (TB).
1939	Amount int64
1940
1941	// The action that Amazon Redshift takes when the limit is reached. Possible values
1942	// are:
1943	//
1944	// * log - To log an event in a system table. The default is log.
1945	//
1946	// *
1947	// emit-metric - To emit CloudWatch metrics.
1948	//
1949	// * disable - To disable the feature
1950	// until the next usage period begins.
1951	BreachAction UsageLimitBreachAction
1952
1953	// The identifier of the cluster with a usage limit.
1954	ClusterIdentifier *string
1955
1956	// The Amazon Redshift feature to which the limit applies.
1957	FeatureType UsageLimitFeatureType
1958
1959	// The type of limit. Depending on the feature type, this can be based on a time
1960	// duration or data size.
1961	LimitType UsageLimitLimitType
1962
1963	// The time period that the amount applies to. A weekly period begins on Sunday.
1964	// The default is monthly.
1965	Period UsageLimitPeriod
1966
1967	// A list of tag instances.
1968	Tags []Tag
1969
1970	// The identifier of the usage limit.
1971	UsageLimitId *string
1972
1973	noSmithyDocumentSerde
1974}
1975
1976// The connection endpoint for connecting to an Amazon Redshift cluster through the
1977// proxy.
1978type VpcEndpoint struct {
1979
1980	// One or more network interfaces of the endpoint. Also known as an interface
1981	// endpoint.
1982	NetworkInterfaces []NetworkInterface
1983
1984	// The connection endpoint ID for connecting an Amazon Redshift cluster through the
1985	// proxy.
1986	VpcEndpointId *string
1987
1988	// The VPC identifier that the endpoint is associated.
1989	VpcId *string
1990
1991	noSmithyDocumentSerde
1992}
1993
1994// Describes the members of a VPC security group.
1995type VpcSecurityGroupMembership struct {
1996
1997	// The status of the VPC security group.
1998	Status *string
1999
2000	// The identifier of the VPC security group.
2001	VpcSecurityGroupId *string
2002
2003	noSmithyDocumentSerde
2004}
2005
2006type noSmithyDocumentSerde = smithydocument.NoSerde
2007