Interface ServerlessClusterProps

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
ServerlessClusterProps.Jsii$Proxy

@Generated(value="jsii-pacmak/1.96.0 (build 921e240)", date="2024-04-10T22:22:34.176Z") @Stability(Stable) public interface ServerlessClusterProps extends software.amazon.jsii.JsiiSerializable
Properties for a new Aurora Serverless Cluster.

Example:

 // Build a data source for AppSync to access the database.
 GraphqlApi api;
 // Create username and password secret for DB Cluster
 DatabaseSecret secret = DatabaseSecret.Builder.create(this, "AuroraSecret")
         .username("clusteradmin")
         .build();
 // The VPC to place the cluster in
 Vpc vpc = new Vpc(this, "AuroraVpc");
 // Create the serverless cluster, provide all values needed to customise the database.
 ServerlessCluster cluster = ServerlessCluster.Builder.create(this, "AuroraCluster")
         .engine(DatabaseClusterEngine.AURORA_MYSQL)
         .vpc(vpc)
         .credentials(Map.of("username", "clusteradmin"))
         .clusterIdentifier("db-endpoint-test")
         .defaultDatabaseName("demos")
         .build();
 RdsDataSource rdsDS = api.addRdsDataSource("rds", cluster, secret, "demos");
 // Set up a resolver for an RDS query.
 rdsDS.createResolver("QueryGetDemosRdsResolver", BaseResolverProps.builder()
         .typeName("Query")
         .fieldName("getDemosRds")
         .requestMappingTemplate(MappingTemplate.fromString("\n  {\n    \"version\": \"2018-05-29\",\n    \"statements\": [\n      \"SELECT * FROM demos\"\n    ]\n  }\n  "))
         .responseMappingTemplate(MappingTemplate.fromString("\n    $utils.toJson($utils.rds.toJsonObject($ctx.result)[0])\n  "))
         .build());
 // Set up a resolver for an RDS mutation.
 rdsDS.createResolver("MutationAddDemoRdsResolver", BaseResolverProps.builder()
         .typeName("Mutation")
         .fieldName("addDemoRds")
         .requestMappingTemplate(MappingTemplate.fromString("\n  {\n    \"version\": \"2018-05-29\",\n    \"statements\": [\n      \"INSERT INTO demos VALUES (:id, :version)\",\n      \"SELECT * WHERE id = :id\"\n    ],\n    \"variableMap\": {\n      \":id\": $util.toJson($util.autoId()),\n      \":version\": $util.toJson($ctx.args.version)\n    }\n  }\n  "))
         .responseMappingTemplate(MappingTemplate.fromString("\n    $utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])\n  "))
         .build());
 
  • Method Details

    • getEngine

      @Stability(Stable) @NotNull IClusterEngine getEngine()
      What kind of database to start.
    • getBackupRetention

      @Stability(Stable) @Nullable default Duration getBackupRetention()
      The number of days during which automatic DB snapshots are retained.

      Automatic backup retention cannot be disabled on serverless clusters. Must be a value from 1 day to 35 days.

      Default: Duration.days(1)

    • getClusterIdentifier

      @Stability(Stable) @Nullable default String getClusterIdentifier()
      An optional identifier for the cluster.

      Default: - A name is automatically generated.

    • getCopyTagsToSnapshot

      @Stability(Stable) @Nullable default Boolean getCopyTagsToSnapshot()
      Whether to copy tags to the snapshot when a snapshot is created.

      Default: - true

    • getCredentials

      @Stability(Stable) @Nullable default Credentials getCredentials()
      Credentials for the administrative user.

      Default: - A username of 'admin' and SecretsManager-generated password

    • getDefaultDatabaseName

      @Stability(Stable) @Nullable default String getDefaultDatabaseName()
      Name of a database which is automatically created inside the cluster.

      Default: - Database is not created in cluster.

    • getDeletionProtection

      @Stability(Stable) @Nullable default Boolean getDeletionProtection()
      Indicates whether the DB cluster should have deletion protection enabled.

      Default: - true if removalPolicy is RETAIN, false otherwise

    • getEnableDataApi

      @Stability(Stable) @Nullable default Boolean getEnableDataApi()
      Whether to enable the Data API.

      Default: false

      See Also:
    • getParameterGroup

      @Stability(Stable) @Nullable default IParameterGroup getParameterGroup()
      Additional parameters to pass to the database engine.

      Default: - no parameter group.

    • getRemovalPolicy

      @Stability(Stable) @Nullable default RemovalPolicy getRemovalPolicy()
      The removal policy to apply when the cluster and its instances are removed from the stack or replaced during an update.

      Default: - RemovalPolicy.SNAPSHOT (remove the cluster and instances, but retain a snapshot of the data)

    • getScaling

      @Stability(Stable) @Nullable default ServerlessScalingOptions getScaling()
      Scaling configuration of an Aurora Serverless database cluster.

      Default: - Serverless cluster is automatically paused after 5 minutes of being idle. minimum capacity: 2 ACU maximum capacity: 16 ACU

    • getSecurityGroups

      @Stability(Stable) @Nullable default List<ISecurityGroup> getSecurityGroups()
      Security group.

      Default: - a new security group is created if `vpc` was provided. If the `vpc` property was not provided, no VPC security groups will be associated with the DB cluster.

    • getStorageEncryptionKey

      @Stability(Stable) @Nullable default IKey getStorageEncryptionKey()
      The KMS key for storage encryption.

      Default: - the default master key will be used for storage encryption

    • getSubnetGroup

      @Stability(Stable) @Nullable default ISubnetGroup getSubnetGroup()
      Existing subnet group for the cluster.

      Default: - a new subnet group is created if `vpc` was provided. If the `vpc` property was not provided, no subnet group will be associated with the DB cluster

    • getVpc

      @Stability(Stable) @Nullable default IVpc getVpc()
      The VPC that this Aurora Serverless cluster has been created in.

      Default: - the default VPC in the account and region will be used

    • getVpcSubnets

      @Stability(Stable) @Nullable default SubnetSelection getVpcSubnets()
      Where to place the instances within the VPC.

      If provided, the vpc property must also be specified.

      Default: - the VPC default strategy if not specified.

    • builder

      @Stability(Stable) static ServerlessClusterProps.Builder builder()
      Returns:
      a ServerlessClusterProps.Builder of ServerlessClusterProps