com.cloudsnorkel.cdk.rds.sanitizedsnapshots.IRdsSanitizedSnapshotter Maven / Gradle / Ivy
package com.cloudsnorkel.cdk.rds.sanitizedsnapshots;
/**
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-10-01T15:09:06.907Z")
@software.amazon.jsii.Jsii(module = com.cloudsnorkel.cdk.rds.sanitizedsnapshots.$Module.class, fqn = "@cloudsnorkel/cdk-rds-sanitized-snapshots.IRdsSanitizedSnapshotter")
@software.amazon.jsii.Jsii.Proxy(IRdsSanitizedSnapshotter.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface IRdsSanitizedSnapshotter extends software.amazon.jsii.JsiiSerializable {
/**
* (experimental) SQL script used to sanitize the database. It will be executed against the temporary database.
*
* You would usually want to start this with USE mydatabase;
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getScript();
/**
* (experimental) VPC where temporary database and sanitizing task will be created.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull software.amazon.awscdk.services.ec2.IVpc getVpc();
/**
* (experimental) Database cluster to snapshot and sanitize.
*
* Only one of databaseCluster
and databaseInstance
can be specified.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.rds.IDatabaseCluster getDatabaseCluster() {
return null;
}
/**
* (experimental) Database instance to snapshot and sanitize.
*
* Only one of databaseCluster
and databaseInstance
can be specified.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.rds.IDatabaseInstance getDatabaseInstance() {
return null;
}
/**
* (experimental) KMS key used to encrypt original database, if any.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.IKey getDatabaseKey() {
return null;
}
/**
* (experimental) Name of database to connect to inside the RDS cluster or instance.
*
* This database will be used to execute the SQL script.
*
* Default: 'postgres' for PostgreSQL and not set for MySQL
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getDatabaseName() {
return null;
}
/**
* (experimental) VPC subnets to use for temporary databases.
*
* Default: ec2.SubnetType.PRIVATE_ISOLATED
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ec2.SubnetSelection getDbSubnets() {
return null;
}
/**
* (experimental) Cluster where sanitization task will be executed.
*
* Default: a new cluster running on given VPC
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ecs.ICluster getFargateCluster() {
return null;
}
/**
* (experimental) VPC subnets to use for sanitization task.
*
* Default: ec2.SubnetType.PRIVATE_WITH_EGRESS
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ec2.SubnetSelection getSanitizeSubnets() {
return null;
}
/**
* (experimental) The schedule or rate (frequency) that determines when the sanitized snapshot runs automatically.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.events.Schedule getSchedule() {
return null;
}
/**
* (experimental) List of accounts the sanitized snapshot should be shared with.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getShareAccounts() {
return null;
}
/**
* (experimental) Limit the number of snapshot history.
*
* Set this to delete old snapshots and only leave a certain number of snapshots.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Number getSnapshotHistoryLimit() {
return null;
}
/**
* (experimental) Optional KMS key to encrypt target snapshot.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.IKey getSnapshotKey() {
return null;
}
/**
* (experimental) Prefix for sanitized snapshot name.
*
* The current date and time will be added to it.
*
* Default: cluster identifier (which might be too long)
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getSnapshotPrefix() {
return null;
}
/**
* (experimental) Prefix for all temporary snapshots and databases.
*
* The step function execution id will be added to it.
*
* Default: 'sanitize'
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getTempPrefix() {
return null;
}
/**
* (experimental) Use the latest available snapshot instead of taking a new one.
*
* This can be used to shorten the process at the cost of using a possibly older snapshot.
*
* This will use the latest snapshot whether it's an automatic system snapshot or a manual snapshot.
*
* Default: false
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getUseExistingSnapshot() {
return null;
}
/**
* A proxy class which represents a concrete javascript instance of this type.
*/
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements com.cloudsnorkel.cdk.rds.sanitizedsnapshots.IRdsSanitizedSnapshotter.Jsii$Default {
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
/**
* (experimental) SQL script used to sanitize the database. It will be executed against the temporary database.
*
* You would usually want to start this with USE mydatabase;
.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.NotNull java.lang.String getScript() {
return software.amazon.jsii.Kernel.get(this, "script", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) VPC where temporary database and sanitizing task will be created.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.ec2.IVpc getVpc() {
return software.amazon.jsii.Kernel.get(this, "vpc", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.IVpc.class));
}
/**
* (experimental) Database cluster to snapshot and sanitize.
*
* Only one of databaseCluster
and databaseInstance
can be specified.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.rds.IDatabaseCluster getDatabaseCluster() {
return software.amazon.jsii.Kernel.get(this, "databaseCluster", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.rds.IDatabaseCluster.class));
}
/**
* (experimental) Database instance to snapshot and sanitize.
*
* Only one of databaseCluster
and databaseInstance
can be specified.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.rds.IDatabaseInstance getDatabaseInstance() {
return software.amazon.jsii.Kernel.get(this, "databaseInstance", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.rds.IDatabaseInstance.class));
}
/**
* (experimental) KMS key used to encrypt original database, if any.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.IKey getDatabaseKey() {
return software.amazon.jsii.Kernel.get(this, "databaseKey", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.kms.IKey.class));
}
/**
* (experimental) Name of database to connect to inside the RDS cluster or instance.
*
* This database will be used to execute the SQL script.
*
* Default: 'postgres' for PostgreSQL and not set for MySQL
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable java.lang.String getDatabaseName() {
return software.amazon.jsii.Kernel.get(this, "databaseName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) VPC subnets to use for temporary databases.
*
* Default: ec2.SubnetType.PRIVATE_ISOLATED
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ec2.SubnetSelection getDbSubnets() {
return software.amazon.jsii.Kernel.get(this, "dbSubnets", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.SubnetSelection.class));
}
/**
* (experimental) Cluster where sanitization task will be executed.
*
* Default: a new cluster running on given VPC
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ecs.ICluster getFargateCluster() {
return software.amazon.jsii.Kernel.get(this, "fargateCluster", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.ICluster.class));
}
/**
* (experimental) VPC subnets to use for sanitization task.
*
* Default: ec2.SubnetType.PRIVATE_WITH_EGRESS
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ec2.SubnetSelection getSanitizeSubnets() {
return software.amazon.jsii.Kernel.get(this, "sanitizeSubnets", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.SubnetSelection.class));
}
/**
* (experimental) The schedule or rate (frequency) that determines when the sanitized snapshot runs automatically.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.events.Schedule getSchedule() {
return software.amazon.jsii.Kernel.get(this, "schedule", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.events.Schedule.class));
}
/**
* (experimental) List of accounts the sanitized snapshot should be shared with.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable java.util.List getShareAccounts() {
return java.util.Optional.ofNullable((java.util.List)(software.amazon.jsii.Kernel.get(this, "shareAccounts", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class))))).map(java.util.Collections::unmodifiableList).orElse(null);
}
/**
* (experimental) Limit the number of snapshot history.
*
* Set this to delete old snapshots and only leave a certain number of snapshots.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable java.lang.Number getSnapshotHistoryLimit() {
return software.amazon.jsii.Kernel.get(this, "snapshotHistoryLimit", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
}
/**
* (experimental) Optional KMS key to encrypt target snapshot.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.IKey getSnapshotKey() {
return software.amazon.jsii.Kernel.get(this, "snapshotKey", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.kms.IKey.class));
}
/**
* (experimental) Prefix for sanitized snapshot name.
*
* The current date and time will be added to it.
*
* Default: cluster identifier (which might be too long)
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable java.lang.String getSnapshotPrefix() {
return software.amazon.jsii.Kernel.get(this, "snapshotPrefix", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) Prefix for all temporary snapshots and databases.
*
* The step function execution id will be added to it.
*
* Default: 'sanitize'
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable java.lang.String getTempPrefix() {
return software.amazon.jsii.Kernel.get(this, "tempPrefix", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) Use the latest available snapshot instead of taking a new one.
*
* This can be used to shorten the process at the cost of using a possibly older snapshot.
*
* This will use the latest snapshot whether it's an automatic system snapshot or a manual snapshot.
*
* Default: false
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public final @org.jetbrains.annotations.Nullable java.lang.Boolean getUseExistingSnapshot() {
return software.amazon.jsii.Kernel.get(this, "useExistingSnapshot", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
}
}
/**
* Internal default implementation for {@link IRdsSanitizedSnapshotter}.
*/
@software.amazon.jsii.Internal
interface Jsii$Default extends IRdsSanitizedSnapshotter {
/**
* (experimental) SQL script used to sanitize the database. It will be executed against the temporary database.
*
* You would usually want to start this with USE mydatabase;
.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.NotNull java.lang.String getScript() {
return software.amazon.jsii.Kernel.get(this, "script", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) VPC where temporary database and sanitizing task will be created.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.ec2.IVpc getVpc() {
return software.amazon.jsii.Kernel.get(this, "vpc", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.IVpc.class));
}
/**
* (experimental) Database cluster to snapshot and sanitize.
*
* Only one of databaseCluster
and databaseInstance
can be specified.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.rds.IDatabaseCluster getDatabaseCluster() {
return software.amazon.jsii.Kernel.get(this, "databaseCluster", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.rds.IDatabaseCluster.class));
}
/**
* (experimental) Database instance to snapshot and sanitize.
*
* Only one of databaseCluster
and databaseInstance
can be specified.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.rds.IDatabaseInstance getDatabaseInstance() {
return software.amazon.jsii.Kernel.get(this, "databaseInstance", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.rds.IDatabaseInstance.class));
}
/**
* (experimental) KMS key used to encrypt original database, if any.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.IKey getDatabaseKey() {
return software.amazon.jsii.Kernel.get(this, "databaseKey", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.kms.IKey.class));
}
/**
* (experimental) Name of database to connect to inside the RDS cluster or instance.
*
* This database will be used to execute the SQL script.
*
* Default: 'postgres' for PostgreSQL and not set for MySQL
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getDatabaseName() {
return software.amazon.jsii.Kernel.get(this, "databaseName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) VPC subnets to use for temporary databases.
*
* Default: ec2.SubnetType.PRIVATE_ISOLATED
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ec2.SubnetSelection getDbSubnets() {
return software.amazon.jsii.Kernel.get(this, "dbSubnets", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.SubnetSelection.class));
}
/**
* (experimental) Cluster where sanitization task will be executed.
*
* Default: a new cluster running on given VPC
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ecs.ICluster getFargateCluster() {
return software.amazon.jsii.Kernel.get(this, "fargateCluster", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.ICluster.class));
}
/**
* (experimental) VPC subnets to use for sanitization task.
*
* Default: ec2.SubnetType.PRIVATE_WITH_EGRESS
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ec2.SubnetSelection getSanitizeSubnets() {
return software.amazon.jsii.Kernel.get(this, "sanitizeSubnets", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.SubnetSelection.class));
}
/**
* (experimental) The schedule or rate (frequency) that determines when the sanitized snapshot runs automatically.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.events.Schedule getSchedule() {
return software.amazon.jsii.Kernel.get(this, "schedule", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.events.Schedule.class));
}
/**
* (experimental) List of accounts the sanitized snapshot should be shared with.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getShareAccounts() {
return java.util.Optional.ofNullable((java.util.List)(software.amazon.jsii.Kernel.get(this, "shareAccounts", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class))))).map(java.util.Collections::unmodifiableList).orElse(null);
}
/**
* (experimental) Limit the number of snapshot history.
*
* Set this to delete old snapshots and only leave a certain number of snapshots.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Number getSnapshotHistoryLimit() {
return software.amazon.jsii.Kernel.get(this, "snapshotHistoryLimit", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
}
/**
* (experimental) Optional KMS key to encrypt target snapshot.
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.IKey getSnapshotKey() {
return software.amazon.jsii.Kernel.get(this, "snapshotKey", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.kms.IKey.class));
}
/**
* (experimental) Prefix for sanitized snapshot name.
*
* The current date and time will be added to it.
*
* Default: cluster identifier (which might be too long)
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getSnapshotPrefix() {
return software.amazon.jsii.Kernel.get(this, "snapshotPrefix", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) Prefix for all temporary snapshots and databases.
*
* The step function execution id will be added to it.
*
* Default: 'sanitize'
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getTempPrefix() {
return software.amazon.jsii.Kernel.get(this, "tempPrefix", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) Use the latest available snapshot instead of taking a new one.
*
* This can be used to shorten the process at the cost of using a possibly older snapshot.
*
* This will use the latest snapshot whether it's an automatic system snapshot or a manual snapshot.
*
* Default: false
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getUseExistingSnapshot() {
return software.amazon.jsii.Kernel.get(this, "useExistingSnapshot", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
}
}
}