import { AquaConfigurationStatus, LakehouseIdcRegistration, LakehouseRegistration, NamespaceRegistrationStatus, PartnerIntegrationStatus, UsageLimitBreachAction } from "./enums"; import { type Cluster, type ClusterSecurityGroup, type NamespaceIdentifierUnion, type RedshiftIdcApplication, type ReservedNode, type ResourcePolicy, type ScheduledActionType, type Snapshot, type TableRestoreStatus, AuthorizedTokenIssuer, Parameter, ServiceIntegrationsUnion } from "./models_0"; /** * @public */ export interface ModifyLakehouseConfigurationMessage { /** *

The unique identifier of the cluster whose lakehouse configuration you want to modify.

* @public */ ClusterIdentifier: string | undefined; /** *

Specifies whether to register or deregister the cluster with Amazon Redshift federated permissions. Valid values are Register or Deregister.

* @public */ LakehouseRegistration?: LakehouseRegistration | undefined; /** *

The name of the Glue data catalog that will be associated with the cluster enabled with Amazon Redshift federated permissions.

*

Constraints:

* *

Pattern: ^[a-z0-9_-]*[a-z]+[a-z0-9_-]*$ *

*

Example: my-catalog_01 *

* @public */ CatalogName?: string | undefined; /** *

Modifies the Amazon Web Services IAM Identity Center trusted identity propagation on a cluster enabled with Amazon Redshift federated permissions. Valid values are Associate or Disassociate.

* @public */ LakehouseIdcRegistration?: LakehouseIdcRegistration | undefined; /** *

The Amazon Resource Name (ARN) of the IAM Identity Center application used for enabling Amazon Web Services IAM Identity Center trusted identity propagation on a cluster enabled with Amazon Redshift federated permissions.

* @public */ LakehouseIdcApplicationArn?: string | undefined; /** *

A boolean value that, if true, validates the request without actually modifying the lakehouse configuration. Use this to check for errors before making changes.

* @public */ DryRun?: boolean | undefined; } /** * @public */ export interface ModifyRedshiftIdcApplicationMessage { /** *

The ARN for the Redshift application that integrates with IAM Identity Center.

* @public */ RedshiftIdcApplicationArn: string | undefined; /** *

The namespace for the Amazon Redshift IAM Identity Center application to change. It determines which managed application * verifies the connection token.

* @public */ IdentityNamespace?: string | undefined; /** *

The IAM role ARN associated with the Amazon Redshift IAM Identity Center application to change. It has the required permissions * to be assumed and invoke the IDC Identity Center API.

* @public */ IamRoleArn?: string | undefined; /** *

The display name for the Amazon Redshift IAM Identity Center application to change. It appears on the console.

* @public */ IdcDisplayName?: string | undefined; /** *

The authorized token issuer list for the Amazon Redshift IAM Identity Center application to change.

* @public */ AuthorizedTokenIssuerList?: AuthorizedTokenIssuer[] | undefined; /** *

A collection of service integrations associated with the application.

* @public */ ServiceIntegrations?: ServiceIntegrationsUnion[] | undefined; } /** * @public */ export interface ModifyRedshiftIdcApplicationResult { /** *

Contains properties for the Redshift IDC application.

* @public */ RedshiftIdcApplication?: RedshiftIdcApplication | undefined; } /** * @public */ export interface ModifyScheduledActionMessage { /** *

The name of the scheduled action to modify.

* @public */ ScheduledActionName: string | undefined; /** *

A modified JSON format of the scheduled action. * For more information about this parameter, see ScheduledAction.

* @public */ TargetAction?: ScheduledActionType | undefined; /** *

A modified schedule in either at( ) or cron( ) format. * For more information about this parameter, see ScheduledAction.

* @public */ Schedule?: string | undefined; /** *

A different IAM role to assume to run the target action. * For more information about this parameter, see ScheduledAction.

* @public */ IamRole?: string | undefined; /** *

A modified description of the scheduled action.

* @public */ ScheduledActionDescription?: string | undefined; /** *

A modified start time of the scheduled action. * For more information about this parameter, see ScheduledAction.

* @public */ StartTime?: Date | undefined; /** *

A modified end time of the scheduled action. * For more information about this parameter, see ScheduledAction.

* @public */ EndTime?: Date | undefined; /** *

A modified enable flag of the scheduled action. If true, the scheduled action is active. If false, the scheduled action is disabled.

* @public */ Enable?: boolean | undefined; } /** *

* @public */ export interface ModifySnapshotCopyRetentionPeriodMessage { /** *

The unique identifier of the cluster for which you want to change the retention * period for either automated or manual snapshots that are copied to a destination Amazon Web Services Region.

*

Constraints: Must be the valid name of an existing cluster that has cross-region * snapshot copy enabled.

* @public */ ClusterIdentifier: string | undefined; /** *

The number of days to retain automated snapshots in the destination Amazon Web Services Region * after they are copied from the source Amazon Web Services Region.

*

By default, this only changes the retention period of copied automated snapshots.

*

If you decrease the retention period for automated snapshots that are copied to a * destination Amazon Web Services Region, Amazon Redshift deletes any existing automated snapshots that were * copied to the destination Amazon Web Services Region and that fall outside of the new retention * period.

*

Constraints: Must be at least 1 and no more than 35 for automated snapshots.

*

If you specify the manual option, only newly copied manual snapshots will * have the new retention period.

*

If you specify the value of -1 newly copied manual snapshots are retained * indefinitely.

*

Constraints: The number of days must be either -1 or an integer between 1 and 3,653 * for manual snapshots.

* @public */ RetentionPeriod: number | undefined; /** *

Indicates whether to apply the snapshot retention period to newly copied manual * snapshots instead of automated snapshots.

* @public */ Manual?: boolean | undefined; } /** * @public */ export interface ModifySnapshotCopyRetentionPeriodResult { /** *

Describes a cluster.

* @public */ Cluster?: Cluster | undefined; } /** * @public */ export interface ModifySnapshotScheduleMessage { /** *

A unique alphanumeric identifier of the schedule to modify.

* @public */ ScheduleIdentifier: string | undefined; /** *

An updated list of schedule definitions. A schedule definition is made up of schedule * expressions, for example, "cron(30 12 *)" or "rate(12 hours)".

* @public */ ScheduleDefinitions: string[] | undefined; } /** * @public */ export interface ModifyUsageLimitMessage { /** *

The identifier of the usage limit to modify.

* @public */ UsageLimitId: string | undefined; /** *

The new limit amount. * For more information about this parameter, see UsageLimit.

* @public */ Amount?: number | undefined; /** *

The new action that Amazon Redshift takes when the limit is reached. * For more information about this parameter, see UsageLimit.

* @public */ BreachAction?: UsageLimitBreachAction | undefined; } /** * @public */ export interface PauseClusterResult { /** *

Describes a cluster.

* @public */ Cluster?: Cluster | undefined; } /** *

* @public */ export interface PurchaseReservedNodeOfferingMessage { /** *

The unique identifier of the reserved node offering you want to purchase.

* @public */ ReservedNodeOfferingId: string | undefined; /** *

The number of reserved nodes that you want to purchase.

*

Default: 1 *

* @public */ NodeCount?: number | undefined; } /** * @public */ export interface PurchaseReservedNodeOfferingResult { /** *

Describes a reserved node. You can call the DescribeReservedNodeOfferings API to obtain the available reserved node * offerings.

* @public */ ReservedNode?: ReservedNode | undefined; } /** * @public */ export interface PutResourcePolicyMessage { /** *

The Amazon Resource Name (ARN) of the resource of which its resource policy is updated.

* @public */ ResourceArn: string | undefined; /** *

The content of the resource policy being updated.

* @public */ Policy: string | undefined; } /** * @public */ export interface PutResourcePolicyResult { /** *

The content of the updated resource policy.

* @public */ ResourcePolicy?: ResourcePolicy | undefined; } /** *

* @public */ export interface RebootClusterMessage { /** *

The cluster identifier.

* @public */ ClusterIdentifier: string | undefined; } /** * @public */ export interface RebootClusterResult { /** *

Describes a cluster.

* @public */ Cluster?: Cluster | undefined; } /** * @public */ export interface RegisterNamespaceInputMessage { /** *

The unique identifier of the cluster or * serverless namespace that you want to register.

* @public */ NamespaceIdentifier: NamespaceIdentifierUnion | undefined; /** *

An array containing the ID of the consumer account * that you want to register the namespace to.

* @public */ ConsumerIdentifiers: string[] | undefined; } /** * @public */ export interface RegisterNamespaceOutputMessage { /** *

The registration status of the cluster or * serverless namespace.

* @public */ Status?: NamespaceRegistrationStatus | undefined; } /** * @public */ export interface RejectDataShareMessage { /** *

The Amazon Resource Name (ARN) of the datashare to reject.

* @public */ DataShareArn: string | undefined; } /** *

* @public */ export interface ResetClusterParameterGroupMessage { /** *

The name of the cluster parameter group to be reset.

* @public */ ParameterGroupName: string | undefined; /** *

If true, all parameters in the specified parameter group will be reset * to their default values.

*

Default: true *

* @public */ ResetAllParameters?: boolean | undefined; /** *

An array of names of parameters to be reset. If * ResetAllParameters option is not used, then at least one * parameter name must be supplied.

*

Constraints: A maximum of 20 parameters can be reset in a single request.

* @public */ Parameters?: Parameter[] | undefined; } /** * @public */ export interface ResizeClusterResult { /** *

Describes a cluster.

* @public */ Cluster?: Cluster | undefined; } /** *

* @public */ export interface RestoreFromClusterSnapshotMessage { /** *

The identifier of the cluster that will be created from restoring the * snapshot.

*

Constraints:

* * @public */ ClusterIdentifier: string | undefined; /** *

The name of the snapshot from which to create the new cluster. This parameter isn't * case sensitive. You must specify this parameter or snapshotArn, but not both.

*

Example: my-snapshot-id *

* @public */ SnapshotIdentifier?: string | undefined; /** *

The Amazon Resource Name (ARN) of the snapshot associated with the message to restore from a cluster. You must specify * this parameter or snapshotIdentifier, but not both.

* @public */ SnapshotArn?: string | undefined; /** *

The name of the cluster the source snapshot was created from. This parameter is * required if your IAM user has a policy containing a snapshot resource element that * specifies anything other than * for the cluster name.

* @public */ SnapshotClusterIdentifier?: string | undefined; /** *

The port number on which the cluster accepts connections.

*

Default: The same port as the original cluster.

*

Valid values: For clusters with DC2 nodes, must be within the range 1150-65535. For clusters with ra3 nodes, must be * within the ranges 5431-5455 or 8191-8215.

* @public */ Port?: number | undefined; /** *

The Amazon EC2 Availability Zone in which to restore the cluster.

*

Default: A random, system-chosen Availability Zone.

*

Example: us-east-2a *

* @public */ AvailabilityZone?: string | undefined; /** *

If true, major version upgrades can be applied during the maintenance * window to the Amazon Redshift engine that is running on the cluster.

*

Default: true *

* @public */ AllowVersionUpgrade?: boolean | undefined; /** *

The name of the subnet group where you want to cluster restored.

*

A snapshot of cluster in VPC can be restored only in VPC. Therefore, you must * provide subnet group name where you want the cluster restored.

* @public */ ClusterSubnetGroupName?: string | undefined; /** *

If true, the cluster can be accessed from a public network.

*

Default: false

* @public */ PubliclyAccessible?: boolean | undefined; /** *

The Amazon Web Services account used to create or copy the snapshot. Required if you are * restoring a snapshot you do not own, optional if you own the snapshot.

* @public */ OwnerAccount?: string | undefined; /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to * retrieve the data encryption keys stored in an HSM.

* @public */ HsmClientCertificateIdentifier?: string | undefined; /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

* @public */ HsmConfigurationIdentifier?: string | undefined; /** *

The Elastic IP (EIP) address for the cluster. Don't specify the Elastic IP address for a publicly * accessible cluster with availability zone relocation turned on.

* @public */ ElasticIp?: string | undefined; /** *

The name of the parameter group to be associated with this cluster.

*

Default: The default Amazon Redshift cluster parameter group. For information about the * default parameter group, go to Working with Amazon * Redshift Parameter Groups.

*

Constraints:

* * @public */ ClusterParameterGroupName?: string | undefined; /** *

A list of security groups to be associated with this cluster.

*

Default: The default cluster security group for Amazon Redshift.

*

Cluster security groups only apply to clusters outside of VPCs.

* @public */ ClusterSecurityGroups?: string[] | undefined; /** *

A list of Virtual Private Cloud (VPC) security groups to be associated with the * cluster.

*

Default: The default VPC security group is associated with the cluster.

*

VPC security groups only apply to clusters in VPCs.

* @public */ VpcSecurityGroupIds?: string[] | undefined; /** *

The weekly time range (in UTC) during which automated cluster maintenance can * occur.

*

Format: ddd:hh24:mi-ddd:hh24:mi *

*

Default: The value selected for the cluster from which the snapshot was taken. For * more information about the time blocks for each region, see Maintenance Windows in Amazon Redshift Cluster Management Guide.

*

Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun

*

Constraints: Minimum 30-minute window.

* @public */ PreferredMaintenanceWindow?: string | undefined; /** *

The number of days that automated snapshots are retained. If the value is 0, * automated snapshots are disabled. Even if automated snapshots are disabled, you can * still create manual snapshots when you want with CreateClusterSnapshot.

*

You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.

*

Default: The value selected for the cluster from which the snapshot was * taken.

*

Constraints: Must be a value from 0 to 35.

* @public */ AutomatedSnapshotRetentionPeriod?: number | undefined; /** *

The default number of days to retain a manual snapshot. If the value is -1, the * snapshot is retained indefinitely. This setting doesn't change the retention period * of existing snapshots.

*

The value must be either -1 or an integer between 1 and 3,653.

* @public */ ManualSnapshotRetentionPeriod?: number | undefined; /** *

The Key Management Service (KMS) key ID of the encryption key that encrypts data in the cluster * restored from a shared snapshot. You can also provide * the key ID when you restore from an unencrypted snapshot to an encrypted cluster in * the same account. Additionally, you can specify a new KMS key ID when you restore from an encrypted * snapshot in the same account in order to change it. In that case, the restored cluster is encrypted * with the new KMS key ID.

* @public */ KmsKeyId?: string | undefined; /** *

The node type that the restored cluster will be provisioned with.

*

If you have a DC instance type, you * must restore into that same instance type and size. In other words, you can only restore * a dc2.large node type into another dc2 type. For more information about node types, see * * About Clusters and Nodes in the Amazon Redshift Cluster Management Guide.

* @public */ NodeType?: string | undefined; /** *

An option that specifies whether to create the cluster with enhanced VPC routing * enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a * VPC. For more information, see Enhanced VPC Routing in * the Amazon Redshift Cluster Management Guide.

*

If this option is true, enhanced VPC routing is enabled.

*

Default: false

* @public */ EnhancedVpcRouting?: boolean | undefined; /** *

Reserved.

* @public */ AdditionalInfo?: string | undefined; /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services. You must supply the IAM roles in their Amazon * Resource Name (ARN) format.

*

The maximum number of IAM roles that you can associate is subject to a quota. * For more information, go to Quotas and limits * in the Amazon Redshift Cluster Management Guide.

* @public */ IamRoles?: string[] | undefined; /** *

The name of the maintenance track for the restored cluster. When you take a snapshot, * the snapshot inherits the MaintenanceTrack value from the cluster. The * snapshot might be on a different track than the cluster that was the source for the * snapshot. For example, suppose that you take a snapshot of a cluster that is on the * current track and then change the cluster to be on the trailing track. In this case, the * snapshot and the source cluster are on different tracks.

* @public */ MaintenanceTrackName?: string | undefined; /** *

A unique identifier for the snapshot schedule.

* @public */ SnapshotScheduleIdentifier?: string | undefined; /** *

The number of nodes specified when provisioning the restored cluster.

* @public */ NumberOfNodes?: number | undefined; /** *

The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is restored.

* @public */ AvailabilityZoneRelocation?: boolean | undefined; /** *

This parameter is retired. It does not set the AQUA configuration status. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

* @public */ AquaConfigurationStatus?: AquaConfigurationStatus | undefined; /** *

The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was last modified while it was restored from a snapshot.

* @public */ DefaultIamRoleArn?: string | undefined; /** *

The identifier of the target reserved node offering.

* @public */ ReservedNodeId?: string | undefined; /** *

The identifier of the target reserved node offering.

* @public */ TargetReservedNodeOfferingId?: string | undefined; /** *

Enables support for restoring an unencrypted snapshot to a cluster encrypted * with Key Management Service (KMS) and a customer managed key.

* @public */ Encrypted?: boolean | undefined; /** *

If true, Amazon Redshift uses Secrets Manager to manage the restored * cluster's admin credentials. If ManageMasterPassword is false or not set, * Amazon Redshift uses the admin credentials the cluster had at the time the snapshot was taken.

* @public */ ManageMasterPassword?: boolean | undefined; /** *

The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret. * You can only use this parameter if ManageMasterPassword is true.

* @public */ MasterPasswordSecretKmsKeyId?: string | undefined; /** *

The IP address type for the cluster. Possible values are ipv4 and dualstack.

* @public */ IpAddressType?: string | undefined; /** *

If true, the snapshot will be restored to a cluster deployed in two Availability Zones.

* @public */ MultiAZ?: boolean | undefined; /** *

The name of the Glue Data Catalog that will be associated with the cluster enabled with Amazon Redshift federated permissions.

*

Constraints:

* *

Pattern: ^[a-z0-9_-]*[a-z]+[a-z0-9_-]*$ *

*

Example: my-catalog_01 *

* @public */ CatalogName?: string | undefined; /** *

The Amazon Resource Name (ARN) of the IAM Identity Center application used for enabling Amazon Web Services IAM Identity Center trusted identity propagation on a cluster enabled with Amazon Redshift federated permissions.

* @public */ RedshiftIdcApplicationArn?: string | undefined; } /** * @public */ export interface RestoreFromClusterSnapshotResult { /** *

Describes a cluster.

* @public */ Cluster?: Cluster | undefined; } /** *

* @public */ export interface RestoreTableFromClusterSnapshotMessage { /** *

The identifier of the Amazon Redshift cluster to restore the table to.

* @public */ ClusterIdentifier: string | undefined; /** *

The identifier of the snapshot to restore the table from. This snapshot must have * been created from the Amazon Redshift cluster specified by the * ClusterIdentifier parameter.

* @public */ SnapshotIdentifier: string | undefined; /** *

The name of the source database that contains the table to restore from.

* @public */ SourceDatabaseName: string | undefined; /** *

The name of the source schema that contains the table to restore from. If you do * not specify a SourceSchemaName value, the default is * public.

* @public */ SourceSchemaName?: string | undefined; /** *

The name of the source table to restore from.

* @public */ SourceTableName: string | undefined; /** *

The name of the database to restore the table to.

* @public */ TargetDatabaseName?: string | undefined; /** *

The name of the schema to restore the table to.

* @public */ TargetSchemaName?: string | undefined; /** *

The name of the table to create as a result of the current request.

* @public */ NewTableName: string | undefined; /** *

Indicates whether name identifiers for database, schema, and table are case sensitive. * If true, the names are case sensitive. * If false (default), the names are not case sensitive.

* @public */ EnableCaseSensitiveIdentifier?: boolean | undefined; } /** * @public */ export interface RestoreTableFromClusterSnapshotResult { /** *

Describes the status of a RestoreTableFromClusterSnapshot * operation.

* @public */ TableRestoreStatus?: TableRestoreStatus | undefined; } /** * @public */ export interface ResumeClusterResult { /** *

Describes a cluster.

* @public */ Cluster?: Cluster | undefined; } /** *

* @public */ export interface RevokeClusterSecurityGroupIngressMessage { /** *

The name of the security Group from which to revoke the ingress rule.

* @public */ ClusterSecurityGroupName: string | undefined; /** *

The IP range for which to revoke access. This range must be a valid Classless * Inter-Domain Routing (CIDR) block of IP addresses. If CIDRIP is specified, * EC2SecurityGroupName and EC2SecurityGroupOwnerId cannot be * provided.

* @public */ CIDRIP?: string | undefined; /** *

The name of the EC2 Security Group whose access is to be revoked. If * EC2SecurityGroupName is specified, EC2SecurityGroupOwnerId * must also be provided and CIDRIP cannot be provided.

* @public */ EC2SecurityGroupName?: string | undefined; /** *

The Amazon Web Services account number of the owner of the security group specified in the * EC2SecurityGroupName parameter. The Amazon Web Services access key ID is not an * acceptable value. If EC2SecurityGroupOwnerId is specified, * EC2SecurityGroupName must also be provided. and CIDRIP * cannot be provided.

*

Example: 111122223333 *

* @public */ EC2SecurityGroupOwnerId?: string | undefined; } /** * @public */ export interface RevokeClusterSecurityGroupIngressResult { /** *

Describes a security group.

* @public */ ClusterSecurityGroup?: ClusterSecurityGroup | undefined; } /** * @public */ export interface RevokeEndpointAccessMessage { /** *

The cluster to revoke access from.

* @public */ ClusterIdentifier?: string | undefined; /** *

The Amazon Web Services account ID whose access is to be revoked.

* @public */ Account?: string | undefined; /** *

The virtual private cloud (VPC) identifiers for which access is to be revoked.

* @public */ VpcIds?: string[] | undefined; /** *

Indicates whether to force the revoke action. * If true, the Redshift-managed VPC endpoints associated with the endpoint authorization are also deleted.

* @public */ Force?: boolean | undefined; } /** *

* @public */ export interface RevokeSnapshotAccessMessage { /** *

The identifier of the snapshot that the account can no longer access.

* @public */ SnapshotIdentifier?: string | undefined; /** *

The Amazon Resource Name (ARN) of the snapshot associated with the message to revoke access.

* @public */ SnapshotArn?: string | undefined; /** *

The identifier of the cluster the snapshot was created from. This parameter is * required if your IAM user has a policy containing a snapshot resource element that * specifies anything other than * for the cluster name.

* @public */ SnapshotClusterIdentifier?: string | undefined; /** *

The identifier of the Amazon Web Services account that can no longer restore the specified * snapshot.

* @public */ AccountWithRestoreAccess: string | undefined; } /** * @public */ export interface RevokeSnapshotAccessResult { /** *

Describes a snapshot.

* @public */ Snapshot?: Snapshot | undefined; } /** *

* @public */ export interface RotateEncryptionKeyMessage { /** *

The unique identifier of the cluster that you want to rotate the encryption keys * for.

*

Constraints: Must be the name of valid cluster that has encryption * enabled.

* @public */ ClusterIdentifier: string | undefined; } /** * @public */ export interface RotateEncryptionKeyResult { /** *

Describes a cluster.

* @public */ Cluster?: Cluster | undefined; } /** * @public */ export interface UpdatePartnerStatusInputMessage { /** *

The Amazon Web Services account ID that owns the cluster.

* @public */ AccountId: string | undefined; /** *

The cluster identifier of the cluster whose partner integration status is being updated.

* @public */ ClusterIdentifier: string | undefined; /** *

The name of the database whose partner integration status is being updated.

* @public */ DatabaseName: string | undefined; /** *

The name of the partner whose integration status is being updated.

* @public */ PartnerName: string | undefined; /** *

The value of the updated status.

* @public */ Status: PartnerIntegrationStatus | undefined; /** *

The status message provided by the partner.

* @public */ StatusMessage?: string | undefined; }