Class ServerlessCluster

All Implemented Interfaces:
IResource, IConnectable, IServerlessCluster, ISecretAttachmentTarget,, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.97.0 (build 729de35)", date="2024-04-24T21:00:35.337Z") @Stability(Stable) public class ServerlessCluster extends Resource implements IServerlessCluster
Create an Aurora Serverless Cluster.


 // 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")
 // 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")
         .credentials(Map.of("username", "clusteradmin"))
 RdsDataSource rdsDS = api.addRdsDataSource("rds", cluster, secret, "demos");
 // Set up a resolver for an RDS query.
 rdsDS.createResolver("QueryGetDemosRdsResolver", BaseResolverProps.builder()
         .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  "))
 // Set up a resolver for an RDS mutation.
 rdsDS.createResolver("MutationAddDemoRdsResolver", BaseResolverProps.builder()
         .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  "))
  • Constructor Details

    • ServerlessCluster

      protected ServerlessCluster( objRef)
    • ServerlessCluster

      protected ServerlessCluster( initializationMode)
    • ServerlessCluster

      @Stability(Stable) public ServerlessCluster(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull ServerlessClusterProps props)
      scope - This parameter is required.
      id - This parameter is required.
      props - This parameter is required.
  • Method Details

    • fromServerlessClusterAttributes

      @Stability(Stable) @NotNull public static IServerlessCluster fromServerlessClusterAttributes(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull ServerlessClusterAttributes attrs)
      Import an existing DatabaseCluster from properties.

      scope - This parameter is required.
      id - This parameter is required.
      attrs - This parameter is required.
    • addRotationMultiUser

      @Stability(Stable) @NotNull public SecretRotation addRotationMultiUser(@NotNull String id, @NotNull RotationMultiUserOptions options)
      Adds the multi user rotation to this cluster.

      id - This parameter is required.
      options - This parameter is required.
    • addRotationSingleUser

      @Stability(Stable) @NotNull public SecretRotation addRotationSingleUser(@Nullable RotationSingleUserOptions options)
      Adds the single user rotation of the master password to this cluster.

      options -
    • addRotationSingleUser

      @Stability(Stable) @NotNull public SecretRotation addRotationSingleUser()
      Adds the single user rotation of the master password to this cluster.
    • asSecretAttachmentTarget

      @Stability(Stable) @NotNull public SecretAttachmentTargetProps asSecretAttachmentTarget()
      Renders the secret attachment target specifications.
      Specified by:
      asSecretAttachmentTarget in interface ISecretAttachmentTarget
    • grantDataApiAccess

      @Stability(Stable) @NotNull public Grant grantDataApiAccess(@NotNull IGrantable grantee)
      Grant the given identity to access to the Data API, including read access to the secret attached to the cluster if present.

      Specified by:
      grantDataApiAccess in interface IServerlessCluster
      grantee - The principal to grant access to. This parameter is required.
    • getClusterArn

      @Stability(Stable) @NotNull public String getClusterArn()
      The ARN of the cluster.
      Specified by:
      getClusterArn in interface IServerlessCluster
    • getClusterEndpoint

      @Stability(Stable) @NotNull public Endpoint getClusterEndpoint()
      The endpoint to use for read/write operations.
      Specified by:
      getClusterEndpoint in interface IServerlessCluster
    • getClusterIdentifier

      @Stability(Stable) @NotNull public String getClusterIdentifier()
      Identifier of the cluster.
      Specified by:
      getClusterIdentifier in interface IServerlessCluster
    • getClusterReadEndpoint

      @Stability(Stable) @NotNull public Endpoint getClusterReadEndpoint()
      The endpoint to use for read/write operations.
      Specified by:
      getClusterReadEndpoint in interface IServerlessCluster
    • getConnections

      @Stability(Stable) @NotNull public Connections getConnections()
      Access to the network connections.
      Specified by:
      getConnections in interface IConnectable
    • getNewCfnProps

      @Stability(Stable) @NotNull protected CfnDBClusterProps getNewCfnProps()
    • getSecurityGroups

      @Stability(Stable) @NotNull protected List<ISecurityGroup> getSecurityGroups()
    • getSecret

      @Stability(Stable) @Nullable public ISecret getSecret()
      The secret attached to this cluster.
    • getEnableDataApi

      @Stability(Stable) @Nullable protected Boolean getEnableDataApi()
    • setEnableDataApi

      @Stability(Stable) protected void setEnableDataApi(@Nullable Boolean value)