Class AutonomousDatabase


  • public class AutonomousDatabase
    extends com.pulumi.resources.CustomResource
    Manages an Oracle Database@AWS Autonomous Database Serverless (ADB-S) instance. ADB-S uses shared Exadata infrastructure managed by Oracle and requires an existing ODB network; it does not require a customer-managed Exadata infrastructure or VM cluster. Provisioning, updating, and deleting an Autonomous Database are asynchronous and can take several hours. The AWS account and Region must be onboarded for Oracle Database@AWS and have sufficient service quotas. The AWS API defines all create parameters as optional because the valid combination depends on `source`. For a new database (`source = "NONE"`), configure the ODB network, database identity, workload, compute, storage, license, and ADMIN password values required by your Oracle Database@AWS tenancy. ## Example Usage ### Basic Usage Write-only arguments require Terraform 1.11 or later. With earlier Terraform versions, use the sensitive `adminPassword` argument instead; its value is stored in Terraform state.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.odb.AutonomousDatabase;
     import com.pulumi.aws.odb.AutonomousDatabaseArgs;
     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) {
             final var config = ctx.config();
             final var autonomousDatabaseAdminPassword = config.require("autonomousDatabaseAdminPassword");
             var example = new AutonomousDatabase("example", AutonomousDatabaseArgs.builder()
                 .adminPasswordWo(autonomousDatabaseAdminPassword)
                 .adminPasswordWoVersion(1)
                 .computeCount(2.0)
                 .dataStorageSizeInTbs(1.0)
                 .dbName("TFADBEXAMPLE")
                 .dbWorkload("OLTP")
                 .displayName("pulumi-adbs-example")
                 .licenseModel("LICENSE_INCLUDED")
                 .odbNetworkId(exampleAwsOdbNetwork.id())
                 .source("NONE")
                 .tags(Map.of("Environment", "example"))
                 .build());
     
         }
     }
     
     
    ### AWS Secrets Manager ADMIN Password To retrieve the ADMIN password from AWS Secrets Manager, first enable the account-level `aws.odb.AutonomousDatabaseSecretsManagerIntegration`. Then create a customer-managed IAM role that trusts the Oracle-managed service role exported by that resource and grants `secretsmanager:GetSecretValue` permission on the secret.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.odb.AutonomousDatabase;
     import com.pulumi.aws.odb.AutonomousDatabaseArgs;
     import com.pulumi.aws.odb.inputs.AutonomousDatabaseAdminPasswordSourceArgs;
     import com.pulumi.aws.odb.inputs.AutonomousDatabaseAdminPasswordSourceCustomerManagedAwsSecretArgs;
     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 AutonomousDatabase("example", AutonomousDatabaseArgs.builder()
                 .adminPasswordSource(AutonomousDatabaseAdminPasswordSourceArgs.builder()
                     .customerManagedAwsSecret(AutonomousDatabaseAdminPasswordSourceCustomerManagedAwsSecretArgs.builder()
                         .externalIdType("compartment_ocid")
                         .iamRoleArn("arn:aws:iam::123456789012:role/ADBSSecretManagerReadRole")
                         .secretArn("arn:aws:secretsmanager:us-east-1:123456789012:secret:adbs-admin-password")
                         .build())
                     .build())
                 .build());
     
         }
     }
     
     
    ### Reading the Created Database
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.odb.OdbFunctions;
     import com.pulumi.aws.odb.inputs.GetAutonomousDatabaseArgs;
     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) {
             final var example = OdbFunctions.getAutonomousDatabase(GetAutonomousDatabaseArgs.builder()
                 .id(exampleAwsOdbAutonomousDatabase.id())
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required * `id` (String) Unique Autonomous Database identifier. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import an Autonomous Database using its ID. For example: ```sh $ pulumi import aws:odb/autonomousDatabase:AutonomousDatabase example adb-example123 ``` AWS does not return the ADMIN password or the creation-only `source`, `sourceConfiguration`, and `transportableTablespace` values. These values are absent from imported state. Adding creation-only values to configuration after import records them in state without replacing the database or applying them to AWS. Once recorded, changing or removing these values requires replacement. Configuring `adminPassword` or `adminPasswordWo` can still update the password, so review the plan after import and configure a password only when setting or rotating it.
    • Constructor Detail

      • AutonomousDatabase

        public AutonomousDatabase​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • AutonomousDatabase

        public AutonomousDatabase​(java.lang.String name,
                                  @Nullable
                                  AutonomousDatabaseArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • AutonomousDatabase

        public AutonomousDatabase​(java.lang.String name,
                                  @Nullable
                                  AutonomousDatabaseArgs 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

      • actualUsedDataStorageSizeInTbs

        public com.pulumi.core.Output<java.lang.Double> actualUsedDataStorageSizeInTbs()
        Returns:
        Actual data storage currently in use, in TB.
      • adminPassword

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> adminPassword()
        Returns:
        Sensitive password for the `ADMIN` user. Must be between 12 and 30 characters. This value is stored in Terraform state. Conflicts with `adminPasswordSource` and `adminPasswordWo`.
      • adminPasswordSource

        public com.pulumi.core.Output<java.util.Optional<AutonomousDatabaseAdminPasswordSource>> adminPasswordSource()
        Returns:
        Source of the `ADMIN` password. Conflicts with `adminPassword` and `adminPasswordWo`. See `adminPasswordSource` Block below.
      • adminPasswordWo

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> adminPasswordWo()
        Returns:
        **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. Sensitive write-only password for the `ADMIN` user. Must be between 12 and 30 characters. The value is sent to AWS but is never stored in pulumi preview or state. Requires Terraform 1.11 or later. Set `adminPasswordWoVersion` with this argument. Conflicts with `adminPassword` and `adminPasswordSource`.
      • adminPasswordWoVersion

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> adminPasswordWoVersion()
        Returns:
        Arbitrary integer stored in state. Change this value together with `adminPasswordWo` to rotate the ADMIN password.
      • allocatedStorageSizeInTbs

        public com.pulumi.core.Output<java.lang.Double> allocatedStorageSizeInTbs()
        Returns:
        Storage currently allocated, in TB.
      • allowlistedIps

        public com.pulumi.core.Output<java.util.List<java.lang.String>> allowlistedIps()
        Returns:
        List of between 1 and 1024 IP addresses allowed to access the database.
      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the Autonomous Database.
      • autoRefreshFrequencyInSeconds

        public com.pulumi.core.Output<java.lang.Integer> autoRefreshFrequencyInSeconds()
        Returns:
        Automatic refresh frequency, in seconds, for a refreshable clone.
      • autoRefreshPointLagInSeconds

        public com.pulumi.core.Output<java.lang.Integer> autoRefreshPointLagInSeconds()
        Returns:
        Refresh lag, in seconds, between a refreshable clone and its source.
      • autonomousMaintenanceScheduleType

        public com.pulumi.core.Output<java.lang.String> autonomousMaintenanceScheduleType()
        Returns:
        Maintenance schedule type. Valid values are `EARLY` and `REGULAR`.
      • availabilityZone

        public com.pulumi.core.Output<java.lang.String> availabilityZone()
        Returns:
        Availability Zone of the database.
      • availabilityZoneId

        public com.pulumi.core.Output<java.lang.String> availabilityZoneId()
        Returns:
        Availability Zone ID of the database.
      • availableUpgradeVersions

        public com.pulumi.core.Output<java.util.List<java.lang.String>> availableUpgradeVersions()
        Returns:
        Oracle Database versions available for upgrade.
      • backupRetentionPeriodInDays

        public com.pulumi.core.Output<java.lang.Integer> backupRetentionPeriodInDays()
        Returns:
        Automatic backup retention period, in days.
      • byolComputeCountLimit

        public com.pulumi.core.Output<java.lang.Double> byolComputeCountLimit()
        Returns:
        Maximum compute capacity under the bring-your-own-license model. Minimum value is `2`.
      • characterSet

        public com.pulumi.core.Output<java.lang.String> characterSet()
        Returns:
        Database character set. Changing this value creates a new resource.
      • computeCount

        public com.pulumi.core.Output<java.lang.Double> computeCount()
        Returns:
        Compute capacity in ECPUs or OCPUs. Valid values are from `0.1` through `512`.
      • computeModel

        public com.pulumi.core.Output<java.lang.String> computeModel()
        Returns:
        Compute model, either `ECPU` or `OCPU`.
      • cpuCoreCount

        public com.pulumi.core.Output<java.lang.Integer> cpuCoreCount()
        Returns:
        Allocated CPU core count. Valid values are from `1` through `128`.
      • createdAt

        public com.pulumi.core.Output<java.lang.String> createdAt()
        Returns:
        Creation date and time.
      • customerContactsToSendToOcis

        public com.pulumi.core.Output<java.util.Optional<java.util.List<AutonomousDatabaseCustomerContactsToSendToOci>>> customerContactsToSendToOcis()
        Returns:
        Customer contacts that receive operational notifications from OCI. See `customerContactsToSendToOci` Block below.
      • dataStorageSizeInGbs

        public com.pulumi.core.Output<java.lang.Integer> dataStorageSizeInGbs()
        Returns:
        Data volume size in GB. Valid values are from `20` through `393216`.
      • dataStorageSizeInTbs

        public com.pulumi.core.Output<java.lang.Double> dataStorageSizeInTbs()
        Returns:
        Data volume size in TB. Configured values must be whole numbers from `1` through `384`. When this argument is omitted, AWS can return a fractional value, for example when storage is configured in GB.
      • databaseEdition

        public com.pulumi.core.Output<java.lang.String> databaseEdition()
        Returns:
        Oracle Database edition. Valid values are `STANDARD_EDITION` and `ENTERPRISE_EDITION`.
      • databaseType

        public com.pulumi.core.Output<java.lang.String> databaseType()
        Returns:
        Autonomous Database type.
      • dbName

        public com.pulumi.core.Output<java.lang.String> dbName()
        Returns:
        Database name. Must begin with a letter, contain only alphanumeric characters, and contain at most 30 characters.
      • dbToolsDetails

        public com.pulumi.core.Output<java.util.Optional<java.util.List<AutonomousDatabaseDbToolsDetail>>> dbToolsDetails()
        Returns:
        Database management tools to enable. See `dbToolsDetails` Block below.
      • dbVersion

        public com.pulumi.core.Output<java.lang.String> dbVersion()
        Returns:
        Oracle Database software version.
      • dbWorkload

        public com.pulumi.core.Output<java.lang.String> dbWorkload()
        Returns:
        Database workload. Valid values are `OLTP`, `AJD`, `APEX`, and `LH`.
      • displayName

        public com.pulumi.core.Output<java.lang.String> displayName()
        Returns:
        User-friendly database name.
      • encryptionKeyProvider

        public com.pulumi.core.Output<java.lang.String> encryptionKeyProvider()
        Returns:
        Encryption key provider. Valid configurable values are `ORACLE_MANAGED` and `AWS_KMS`.
      • isAutoScalingEnabled

        public com.pulumi.core.Output<java.lang.Boolean> isAutoScalingEnabled()
        Returns:
        Whether automatic compute scaling is enabled.
      • isAutoScalingForStorageEnabled

        public com.pulumi.core.Output<java.lang.Boolean> isAutoScalingForStorageEnabled()
        Returns:
        Whether automatic storage scaling is enabled.
      • isBackupRetentionLocked

        public com.pulumi.core.Output<java.lang.Boolean> isBackupRetentionLocked()
        Returns:
        Whether the backup retention period is locked against shortening.
      • isLocalDataGuardEnabled

        public com.pulumi.core.Output<java.lang.Boolean> isLocalDataGuardEnabled()
        Returns:
        Whether local Oracle Data Guard is enabled.
      • isMtlsConnectionRequired

        public com.pulumi.core.Output<java.lang.Boolean> isMtlsConnectionRequired()
        Returns:
        Whether mutual TLS is required for database connections.
      • isRefreshableClone

        public com.pulumi.core.Output<java.lang.Boolean> isRefreshableClone()
        Returns:
        Whether the database is a refreshable clone.
      • kmsKeyId

        public com.pulumi.core.Output<java.lang.String> kmsKeyId()
        Returns:
        ARN of the AWS KMS key used when `encryptionKeyProvider` is `AWS_KMS`.
      • licenseModel

        public com.pulumi.core.Output<java.lang.String> licenseModel()
        Returns:
        Oracle license model. Valid values are `BRING_YOUR_OWN_LICENSE` and `LICENSE_INCLUDED`.
      • localAdgAutoFailoverMaxDataLossLimit

        public com.pulumi.core.Output<java.lang.Integer> localAdgAutoFailoverMaxDataLossLimit()
        Returns:
        Maximum data-loss limit, in seconds, for automatic local Data Guard failover.
      • longTermBackupSchedule

        public com.pulumi.core.Output<java.util.Optional<AutonomousDatabaseLongTermBackupSchedule>> longTermBackupSchedule()
        Returns:
        Long-term backup schedule. See `longTermBackupSchedule` Block below.
      • ncharacterSet

        public com.pulumi.core.Output<java.lang.String> ncharacterSet()
        Returns:
        National character set. Changing this value creates a new resource.
      • ociResourceAnchorName

        public com.pulumi.core.Output<java.lang.String> ociResourceAnchorName()
        Returns:
        OCI resource anchor name.
      • ociUrl

        public com.pulumi.core.Output<java.lang.String> ociUrl()
        Returns:
        OCI console URL.
      • ocid

        public com.pulumi.core.Output<java.lang.String> ocid()
        Returns:
        Oracle Cloud Identifier.
      • odbNetworkArn

        public com.pulumi.core.Output<java.lang.String> odbNetworkArn()
        Returns:
        ARN of the associated ODB network.
      • odbNetworkId

        public com.pulumi.core.Output<java.lang.String> odbNetworkId()
        Returns:
        ID of the ODB network used by the database. Changing this value creates a new resource.
      • openMode

        public com.pulumi.core.Output<java.lang.String> openMode()
        Returns:
        Database open mode.
      • percentProgress

        public com.pulumi.core.Output<java.lang.Double> percentProgress()
        Returns:
        Progress of the current operation.
      • permissionLevel

        public com.pulumi.core.Output<java.lang.String> permissionLevel()
        Returns:
        Database permission level.
      • privateEndpoint

        public com.pulumi.core.Output<java.lang.String> privateEndpoint()
        Returns:
        Private endpoint hostname.
      • privateEndpointIp

        public com.pulumi.core.Output<java.lang.String> privateEndpointIp()
        Returns:
        Private endpoint IP address.
      • privateEndpointLabel

        public com.pulumi.core.Output<java.lang.String> privateEndpointLabel()
        Returns:
        Private endpoint label.
      • refreshableMode

        public com.pulumi.core.Output<java.lang.String> refreshableMode()
        Returns:
        Refresh mode for a refreshable clone.
      • 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.
      • resourcePoolLeaderId

        public com.pulumi.core.Output<java.lang.String> resourcePoolLeaderId()
        Returns:
        ID of the resource-pool leader Autonomous Database.
      • resourcePoolSummary

        public com.pulumi.core.Output<java.util.Optional<AutonomousDatabaseResourcePoolSummary>> resourcePoolSummary()
        Returns:
        Resource pool configuration. See `resourcePoolSummary` Block below.
      • scheduledOperations

        public com.pulumi.core.Output<java.util.Optional<java.util.List<AutonomousDatabaseScheduledOperation>>> scheduledOperations()
        Returns:
        Scheduled database start and stop times. See `scheduledOperations` Block below.
      • serviceConsoleUrl

        public com.pulumi.core.Output<java.lang.String> serviceConsoleUrl()
        Returns:
        Oracle service console URL.
      • source

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> source()
        Returns:
        Source from which to create the database. Valid values are `NONE`, `DATABASE`, `BACKUP_FROM_ID`, `BACKUP_FROM_TIMESTAMP`, `CROSS_REGION_DATAGUARD`, `CROSS_REGION_DISASTER_RECOVERY`, and `CLONE_TO_REFRESHABLE`. Changing this value creates a new resource.
      • sourceConfiguration

        public com.pulumi.core.Output<java.util.Optional<AutonomousDatabaseSourceConfiguration>> sourceConfiguration()
        Returns:
        Source-specific configuration used during creation. See `sourceConfiguration` Block below. Changing this value creates a new resource.
      • sourceId

        public com.pulumi.core.Output<java.lang.String> sourceId()
        Returns:
        ID of the source database or backup.
      • sqlWebDeveloperUrl

        public com.pulumi.core.Output<java.lang.String> sqlWebDeveloperUrl()
        Returns:
        Oracle SQL Developer Web URL.
      • standbyAllowlistedIps

        public com.pulumi.core.Output<java.util.List<java.lang.String>> standbyAllowlistedIps()
        Returns:
        List of between 1 and 1024 IP addresses allowed to access the standby database.
      • standbyAllowlistedIpsSource

        public com.pulumi.core.Output<java.lang.String> standbyAllowlistedIpsSource()
        Returns:
        Source of the standby allowlist. Valid values are `PRIMARY`, `SEPARATE`, and `NOT_APPLICABLE`.
      • status

        public com.pulumi.core.Output<java.lang.String> status()
        Returns:
        Current database lifecycle status.
      • statusReason

        public com.pulumi.core.Output<java.lang.String> statusReason()
        Returns:
        Additional lifecycle status information.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Map of tags assigned to the resource. 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.
      • timeOfAutoRefreshStart

        public com.pulumi.core.Output<java.lang.String> timeOfAutoRefreshStart()
        Returns:
        RFC3339 timestamp at which automatic refresh begins.
      • transportableTablespace

        public com.pulumi.core.Output<java.util.Optional<AutonomousDatabaseTransportableTablespace>> transportableTablespace()
        Returns:
        Transportable tablespace configuration. See `transportableTablespace` Block below. Changing this value creates a new resource.
      • get

        public static AutonomousDatabase get​(java.lang.String name,
                                             com.pulumi.core.Output<java.lang.String> id,
                                             @Nullable
                                             AutonomousDatabaseState 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.