Package com.pulumi.aws.lightsail
Class Database
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.lightsail.Database
-
public class Database extends com.pulumi.resources.CustomResourceManages a Lightsail database. Use this resource to create and manage fully managed database instances with automated backups, monitoring, and maintenance in Lightsail. > **Note:** Lightsail is currently only supported in a limited number of AWS Regions, please see ["Regions and Availability Zones"](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) for more details ## Example Usage ### Basic MySQL Blueprint
### Basic PostgreSQL Blueprintpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Database; import com.pulumi.aws.lightsail.DatabaseArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Database("example", DatabaseArgs.builder() .relationalDatabaseName("example-database") .availabilityZone("us-east-1a") .masterDatabaseName("exampledb") .masterPassword("examplepassword123") .masterUsername("exampleuser") .blueprintId("mysql_8_0") .bundleId("micro_1_0") .build()); } }
### Custom Backup and Maintenance Windows Below is an example that sets a custom backup and maintenance window. Times are specified in UTC. This example will allow daily backups to take place between 16:00 and 16:30 each day. This example also requires any maintenance tasks (anything that would cause an outage, including changing some attributes) to take place on Tuesdays between 17:00 and 17:30. An action taken against this database that would cause an outage will wait until this time window to make the requested changes.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Database; import com.pulumi.aws.lightsail.DatabaseArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Database("example", DatabaseArgs.builder() .relationalDatabaseName("example-database") .availabilityZone("us-east-1a") .masterDatabaseName("exampledb") .masterPassword("examplepassword123") .masterUsername("exampleuser") .blueprintId("postgres_12") .bundleId("micro_1_0") .build()); } }
### Final Snapshots To enable creating a final snapshot of your database on deletion, use the `finalSnapshotName` argument to provide a name to be used for the snapshot.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Database; import com.pulumi.aws.lightsail.DatabaseArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Database("example", DatabaseArgs.builder() .relationalDatabaseName("example-database") .availabilityZone("us-east-1a") .masterDatabaseName("exampledb") .masterPassword("examplepassword123") .masterUsername("exampleuser") .blueprintId("postgres_12") .bundleId("micro_1_0") .preferredBackupWindow("16:00-16:30") .preferredMaintenanceWindow("Tue:17:00-Tue:17:30") .build()); } }
### Apply Immediately To enable applying changes immediately instead of waiting for a maintenance window, use the `applyImmediately` argument.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Database; import com.pulumi.aws.lightsail.DatabaseArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Database("example", DatabaseArgs.builder() .relationalDatabaseName("example-database") .availabilityZone("us-east-1a") .masterDatabaseName("exampledb") .masterPassword("examplepassword123") .masterUsername("exampleuser") .blueprintId("postgres_12") .bundleId("micro_1_0") .preferredBackupWindow("16:00-16:30") .preferredMaintenanceWindow("Tue:17:00-Tue:17:30") .finalSnapshotName("example-final-snapshot") .build()); } }
## Import Using `pulumi import`, import Lightsail Databases using their name. For example: ```sh $ pulumi import aws:lightsail/database:Database example example-database ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Database; import com.pulumi.aws.lightsail.DatabaseArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Database("example", DatabaseArgs.builder() .relationalDatabaseName("example-database") .availabilityZone("us-east-1a") .masterDatabaseName("exampledb") .masterPassword("examplepassword123") .masterUsername("exampleuser") .blueprintId("postgres_12") .bundleId("micro_1_0") .applyImmediately(true) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Database(java.lang.String name)Database(java.lang.String name, DatabaseArgs args)Database(java.lang.String name, DatabaseArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.Boolean>applyImmediately()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.lang.String>availabilityZone()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>backupRetentionEnabled()com.pulumi.core.Output<java.lang.String>blueprintId()com.pulumi.core.Output<java.lang.String>bundleId()com.pulumi.core.Output<java.lang.String>caCertificateIdentifier()com.pulumi.core.Output<java.lang.Integer>cpuCount()com.pulumi.core.Output<java.lang.String>createdAt()com.pulumi.core.Output<java.lang.Double>diskSize()com.pulumi.core.Output<java.lang.String>engine()com.pulumi.core.Output<java.lang.String>engineVersion()com.pulumi.core.Output<java.util.Optional<java.lang.String>>finalSnapshotName()static Databaseget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, DatabaseState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>masterDatabaseName()com.pulumi.core.Output<java.lang.String>masterEndpointAddress()com.pulumi.core.Output<java.lang.Integer>masterEndpointPort()com.pulumi.core.Output<java.lang.String>masterPassword()com.pulumi.core.Output<java.lang.String>masterUsername()com.pulumi.core.Output<java.lang.String>preferredBackupWindow()com.pulumi.core.Output<java.lang.String>preferredMaintenanceWindow()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>publiclyAccessible()com.pulumi.core.Output<java.lang.Double>ramSize()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>relationalDatabaseName()com.pulumi.core.Output<java.lang.String>secondaryAvailabilityZone()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>skipFinalSnapshot()com.pulumi.core.Output<java.lang.String>supportCode()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()
-
-
-
Constructor Detail
-
Database
public Database(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Database
public Database(java.lang.String name, DatabaseArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Database
public Database(java.lang.String name, DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
applyImmediately
public com.pulumi.core.Output<java.lang.Boolean> applyImmediately()
- Returns:
- Whether to apply changes immediately. When false, applies changes during the preferred maintenance window. Some changes may cause an outage.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the database (matches `id`).
-
availabilityZone
public com.pulumi.core.Output<java.lang.String> availabilityZone()
- Returns:
- Availability Zone in which to create your database. Use the us-east-2a case-sensitive format.
-
backupRetentionEnabled
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> backupRetentionEnabled()
- Returns:
- Whether to enable automated backup retention for your database. When false, disables automated backup retention for your database. Disabling backup retention deletes all automated database backups. Before disabling this, you may want to create a snapshot of your database.
-
blueprintId
public com.pulumi.core.Output<java.lang.String> blueprintId()
- Returns:
- Blueprint ID for your database. A blueprint describes the major engine version of a database. You can get a list of database blueprints IDs by using the AWS CLI command: `aws lightsail get-relational-database-blueprints`
-
bundleId
public com.pulumi.core.Output<java.lang.String> bundleId()
- Returns:
- Bundle ID for your database. A bundle describes the performance specifications for your database (see list below). You can get a list of database bundle IDs by using the AWS CLI command: `aws lightsail get-relational-database-bundles`.
-
caCertificateIdentifier
public com.pulumi.core.Output<java.lang.String> caCertificateIdentifier()
- Returns:
- Certificate associated with the database.
-
cpuCount
public com.pulumi.core.Output<java.lang.Integer> cpuCount()
- Returns:
- Number of vCPUs for the database.
-
createdAt
public com.pulumi.core.Output<java.lang.String> createdAt()
- Returns:
- Date and time when the database was created.
-
diskSize
public com.pulumi.core.Output<java.lang.Double> diskSize()
- Returns:
- Size of the disk for the database.
-
engine
public com.pulumi.core.Output<java.lang.String> engine()
- Returns:
- Database software (for example, MySQL).
-
engineVersion
public com.pulumi.core.Output<java.lang.String> engineVersion()
- Returns:
- Database engine version (for example, 5.7.23).
-
finalSnapshotName
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> finalSnapshotName()
- Returns:
- Name of the database snapshot created if skip final snapshot is false, which is the default value for that parameter.
-
masterDatabaseName
public com.pulumi.core.Output<java.lang.String> masterDatabaseName()
- Returns:
- Name of the master database created when the Lightsail database resource is created.
-
masterEndpointAddress
public com.pulumi.core.Output<java.lang.String> masterEndpointAddress()
- Returns:
- Master endpoint FQDN for the database.
-
masterEndpointPort
public com.pulumi.core.Output<java.lang.Integer> masterEndpointPort()
- Returns:
- Master endpoint network port for the database.
-
masterPassword
public com.pulumi.core.Output<java.lang.String> masterPassword()
- Returns:
- Password for the master user of your database. The password can include any printable ASCII character except "/", """, or "@".
-
masterUsername
public com.pulumi.core.Output<java.lang.String> masterUsername()
- Returns:
- Master user name for your database.
-
preferredBackupWindow
public com.pulumi.core.Output<java.lang.String> preferredBackupWindow()
- Returns:
- Daily time range during which automated backups are created for your database if automated backups are enabled. Must be in the hh24:mi-hh24:mi format. Example: `16:00-16:30`. Specified in Coordinated Universal Time (UTC).
-
preferredMaintenanceWindow
public com.pulumi.core.Output<java.lang.String> preferredMaintenanceWindow()
- Returns:
- Weekly time range during which system maintenance can occur on your database. Must be in the ddd:hh24:mi-ddd:hh24:mi format. Specified in Coordinated Universal Time (UTC). Example: `Tue:17:00-Tue:17:30`
-
publiclyAccessible
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> publiclyAccessible()
- Returns:
- Whether the database is accessible to resources outside of your Lightsail account. A value of true specifies a database that is available to resources outside of your Lightsail account. A value of false specifies a database that is available only to your Lightsail resources in the same region as your database.
-
ramSize
public com.pulumi.core.Output<java.lang.Double> ramSize()
- Returns:
- Amount of RAM in GB for the database.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
relationalDatabaseName
public com.pulumi.core.Output<java.lang.String> relationalDatabaseName()
- Returns:
- Name to use for your Lightsail database resource. Names be unique within each AWS Region in your Lightsail account. The following arguments are optional:
-
secondaryAvailabilityZone
public com.pulumi.core.Output<java.lang.String> secondaryAvailabilityZone()
- Returns:
- Secondary Availability Zone of a high availability database. The secondary database is used for failover support of a high availability database.
-
skipFinalSnapshot
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> skipFinalSnapshot()
- Returns:
- Whether a final database snapshot is created before your database is deleted. If true is specified, no database snapshot is created. If false is specified, a database snapshot is created before your database is deleted. You must specify the final relational database snapshot name parameter if the skip final snapshot parameter is false.
-
supportCode
public com.pulumi.core.Output<java.lang.String> supportCode()
- Returns:
- Support code for the database. Include this code in your email to support when you have questions about a database in Lightsail. This code enables our support team to look up your Lightsail information more easily.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
get
public static Database get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable DatabaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-