# coding: utf-8
# Copyright (c) 2016, 2026, Oracle and/or its affiliates.  All rights reserved.
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.

# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20160918


from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel  # noqa: F401
from oci.decorators import init_model_state_from_kwargs


@init_model_state_from_kwargs
class AutonomousDwDatabase(object):
    """
    An Oracle Autonomous AI Database.
    """

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "PROVISIONING"
    LIFECYCLE_STATE_PROVISIONING = "PROVISIONING"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "AVAILABLE"
    LIFECYCLE_STATE_AVAILABLE = "AVAILABLE"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "STOPPING"
    LIFECYCLE_STATE_STOPPING = "STOPPING"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "STOPPED"
    LIFECYCLE_STATE_STOPPED = "STOPPED"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "STARTING"
    LIFECYCLE_STATE_STARTING = "STARTING"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "TERMINATING"
    LIFECYCLE_STATE_TERMINATING = "TERMINATING"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "TERMINATED"
    LIFECYCLE_STATE_TERMINATED = "TERMINATED"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "UNAVAILABLE"
    LIFECYCLE_STATE_UNAVAILABLE = "UNAVAILABLE"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "RESTORE_IN_PROGRESS"
    LIFECYCLE_STATE_RESTORE_IN_PROGRESS = "RESTORE_IN_PROGRESS"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "RESTORE_FAILED"
    LIFECYCLE_STATE_RESTORE_FAILED = "RESTORE_FAILED"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "BACKUP_IN_PROGRESS"
    LIFECYCLE_STATE_BACKUP_IN_PROGRESS = "BACKUP_IN_PROGRESS"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "SCALE_IN_PROGRESS"
    LIFECYCLE_STATE_SCALE_IN_PROGRESS = "SCALE_IN_PROGRESS"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "AVAILABLE_NEEDS_ATTENTION"
    LIFECYCLE_STATE_AVAILABLE_NEEDS_ATTENTION = "AVAILABLE_NEEDS_ATTENTION"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "UPDATING"
    LIFECYCLE_STATE_UPDATING = "UPDATING"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "MAINTENANCE_IN_PROGRESS"
    LIFECYCLE_STATE_MAINTENANCE_IN_PROGRESS = "MAINTENANCE_IN_PROGRESS"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "RESTARTING"
    LIFECYCLE_STATE_RESTARTING = "RESTARTING"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "RECREATING"
    LIFECYCLE_STATE_RECREATING = "RECREATING"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "ROLE_CHANGE_IN_PROGRESS"
    LIFECYCLE_STATE_ROLE_CHANGE_IN_PROGRESS = "ROLE_CHANGE_IN_PROGRESS"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "UPGRADING"
    LIFECYCLE_STATE_UPGRADING = "UPGRADING"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "INACCESSIBLE"
    LIFECYCLE_STATE_INACCESSIBLE = "INACCESSIBLE"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "STANDBY"
    LIFECYCLE_STATE_STANDBY = "STANDBY"

    #: A constant which can be used with the lifecycle_state property of a AutonomousDwDatabase.
    #: This constant has a value of "TRANSPORTING"
    LIFECYCLE_STATE_TRANSPORTING = "TRANSPORTING"

    #: A constant which can be used with the compute_model property of a AutonomousDwDatabase.
    #: This constant has a value of "ECPU"
    COMPUTE_MODEL_ECPU = "ECPU"

    #: A constant which can be used with the compute_model property of a AutonomousDwDatabase.
    #: This constant has a value of "OCPU"
    COMPUTE_MODEL_OCPU = "OCPU"

    #: A constant which can be used with the infrastructure_type property of a AutonomousDwDatabase.
    #: This constant has a value of "CLOUD"
    INFRASTRUCTURE_TYPE_CLOUD = "CLOUD"

    #: A constant which can be used with the infrastructure_type property of a AutonomousDwDatabase.
    #: This constant has a value of "CLOUD_AT_CUSTOMER"
    INFRASTRUCTURE_TYPE_CLOUD_AT_CUSTOMER = "CLOUD_AT_CUSTOMER"

    #: A constant which can be used with the license_model property of a AutonomousDwDatabase.
    #: This constant has a value of "LICENSE_INCLUDED"
    LICENSE_MODEL_LICENSE_INCLUDED = "LICENSE_INCLUDED"

    #: A constant which can be used with the license_model property of a AutonomousDwDatabase.
    #: This constant has a value of "BRING_YOUR_OWN_LICENSE"
    LICENSE_MODEL_BRING_YOUR_OWN_LICENSE = "BRING_YOUR_OWN_LICENSE"

    #: A constant which can be used with the db_workload property of a AutonomousDwDatabase.
    #: This constant has a value of "OLTP"
    DB_WORKLOAD_OLTP = "OLTP"

    #: A constant which can be used with the db_workload property of a AutonomousDwDatabase.
    #: This constant has a value of "DW"
    DB_WORKLOAD_DW = "DW"

    #: A constant which can be used with the db_workload property of a AutonomousDwDatabase.
    #: This constant has a value of "AJD"
    DB_WORKLOAD_AJD = "AJD"

    #: A constant which can be used with the db_workload property of a AutonomousDwDatabase.
    #: This constant has a value of "APEX"
    DB_WORKLOAD_APEX = "APEX"

    #: A constant which can be used with the db_workload property of a AutonomousDwDatabase.
    #: This constant has a value of "LH"
    DB_WORKLOAD_LH = "LH"

    #: A constant which can be used with the data_safe_status property of a AutonomousDwDatabase.
    #: This constant has a value of "REGISTERING"
    DATA_SAFE_STATUS_REGISTERING = "REGISTERING"

    #: A constant which can be used with the data_safe_status property of a AutonomousDwDatabase.
    #: This constant has a value of "REGISTERED"
    DATA_SAFE_STATUS_REGISTERED = "REGISTERED"

    #: A constant which can be used with the data_safe_status property of a AutonomousDwDatabase.
    #: This constant has a value of "DEREGISTERING"
    DATA_SAFE_STATUS_DEREGISTERING = "DEREGISTERING"

    #: A constant which can be used with the data_safe_status property of a AutonomousDwDatabase.
    #: This constant has a value of "NOT_REGISTERED"
    DATA_SAFE_STATUS_NOT_REGISTERED = "NOT_REGISTERED"

    #: A constant which can be used with the data_safe_status property of a AutonomousDwDatabase.
    #: This constant has a value of "FAILED"
    DATA_SAFE_STATUS_FAILED = "FAILED"

    #: A constant which can be used with the operations_insights_status property of a AutonomousDwDatabase.
    #: This constant has a value of "ENABLING"
    OPERATIONS_INSIGHTS_STATUS_ENABLING = "ENABLING"

    #: A constant which can be used with the operations_insights_status property of a AutonomousDwDatabase.
    #: This constant has a value of "ENABLED"
    OPERATIONS_INSIGHTS_STATUS_ENABLED = "ENABLED"

    #: A constant which can be used with the operations_insights_status property of a AutonomousDwDatabase.
    #: This constant has a value of "DISABLING"
    OPERATIONS_INSIGHTS_STATUS_DISABLING = "DISABLING"

    #: A constant which can be used with the operations_insights_status property of a AutonomousDwDatabase.
    #: This constant has a value of "NOT_ENABLED"
    OPERATIONS_INSIGHTS_STATUS_NOT_ENABLED = "NOT_ENABLED"

    #: A constant which can be used with the operations_insights_status property of a AutonomousDwDatabase.
    #: This constant has a value of "FAILED_ENABLING"
    OPERATIONS_INSIGHTS_STATUS_FAILED_ENABLING = "FAILED_ENABLING"

    #: A constant which can be used with the operations_insights_status property of a AutonomousDwDatabase.
    #: This constant has a value of "FAILED_DISABLING"
    OPERATIONS_INSIGHTS_STATUS_FAILED_DISABLING = "FAILED_DISABLING"

    #: A constant which can be used with the database_management_status property of a AutonomousDwDatabase.
    #: This constant has a value of "ENABLING"
    DATABASE_MANAGEMENT_STATUS_ENABLING = "ENABLING"

    #: A constant which can be used with the database_management_status property of a AutonomousDwDatabase.
    #: This constant has a value of "ENABLED"
    DATABASE_MANAGEMENT_STATUS_ENABLED = "ENABLED"

    #: A constant which can be used with the database_management_status property of a AutonomousDwDatabase.
    #: This constant has a value of "DISABLING"
    DATABASE_MANAGEMENT_STATUS_DISABLING = "DISABLING"

    #: A constant which can be used with the database_management_status property of a AutonomousDwDatabase.
    #: This constant has a value of "NOT_ENABLED"
    DATABASE_MANAGEMENT_STATUS_NOT_ENABLED = "NOT_ENABLED"

    #: A constant which can be used with the database_management_status property of a AutonomousDwDatabase.
    #: This constant has a value of "FAILED_ENABLING"
    DATABASE_MANAGEMENT_STATUS_FAILED_ENABLING = "FAILED_ENABLING"

    #: A constant which can be used with the database_management_status property of a AutonomousDwDatabase.
    #: This constant has a value of "FAILED_DISABLING"
    DATABASE_MANAGEMENT_STATUS_FAILED_DISABLING = "FAILED_DISABLING"

    #: A constant which can be used with the open_mode property of a AutonomousDwDatabase.
    #: This constant has a value of "READ_ONLY"
    OPEN_MODE_READ_ONLY = "READ_ONLY"

    #: A constant which can be used with the open_mode property of a AutonomousDwDatabase.
    #: This constant has a value of "READ_WRITE"
    OPEN_MODE_READ_WRITE = "READ_WRITE"

    #: A constant which can be used with the refreshable_status property of a AutonomousDwDatabase.
    #: This constant has a value of "REFRESHING"
    REFRESHABLE_STATUS_REFRESHING = "REFRESHING"

    #: A constant which can be used with the refreshable_status property of a AutonomousDwDatabase.
    #: This constant has a value of "NOT_REFRESHING"
    REFRESHABLE_STATUS_NOT_REFRESHING = "NOT_REFRESHING"

    #: A constant which can be used with the refreshable_mode property of a AutonomousDwDatabase.
    #: This constant has a value of "AUTOMATIC"
    REFRESHABLE_MODE_AUTOMATIC = "AUTOMATIC"

    #: A constant which can be used with the refreshable_mode property of a AutonomousDwDatabase.
    #: This constant has a value of "MANUAL"
    REFRESHABLE_MODE_MANUAL = "MANUAL"

    #: A constant which can be used with the permission_level property of a AutonomousDwDatabase.
    #: This constant has a value of "RESTRICTED"
    PERMISSION_LEVEL_RESTRICTED = "RESTRICTED"

    #: A constant which can be used with the permission_level property of a AutonomousDwDatabase.
    #: This constant has a value of "UNRESTRICTED"
    PERMISSION_LEVEL_UNRESTRICTED = "UNRESTRICTED"

    #: A constant which can be used with the role property of a AutonomousDwDatabase.
    #: This constant has a value of "PRIMARY"
    ROLE_PRIMARY = "PRIMARY"

    #: A constant which can be used with the role property of a AutonomousDwDatabase.
    #: This constant has a value of "STANDBY"
    ROLE_STANDBY = "STANDBY"

    #: A constant which can be used with the role property of a AutonomousDwDatabase.
    #: This constant has a value of "DISABLED_STANDBY"
    ROLE_DISABLED_STANDBY = "DISABLED_STANDBY"

    #: A constant which can be used with the role property of a AutonomousDwDatabase.
    #: This constant has a value of "BACKUP_COPY"
    ROLE_BACKUP_COPY = "BACKUP_COPY"

    #: A constant which can be used with the role property of a AutonomousDwDatabase.
    #: This constant has a value of "SNAPSHOT_STANDBY"
    ROLE_SNAPSHOT_STANDBY = "SNAPSHOT_STANDBY"

    #: A constant which can be used with the dataguard_region_type property of a AutonomousDwDatabase.
    #: This constant has a value of "PRIMARY_DG_REGION"
    DATAGUARD_REGION_TYPE_PRIMARY_DG_REGION = "PRIMARY_DG_REGION"

    #: A constant which can be used with the dataguard_region_type property of a AutonomousDwDatabase.
    #: This constant has a value of "REMOTE_STANDBY_DG_REGION"
    DATAGUARD_REGION_TYPE_REMOTE_STANDBY_DG_REGION = "REMOTE_STANDBY_DG_REGION"

    #: A constant which can be used with the autonomous_maintenance_schedule_type property of a AutonomousDwDatabase.
    #: This constant has a value of "EARLY"
    AUTONOMOUS_MAINTENANCE_SCHEDULE_TYPE_EARLY = "EARLY"

    #: A constant which can be used with the autonomous_maintenance_schedule_type property of a AutonomousDwDatabase.
    #: This constant has a value of "REGULAR"
    AUTONOMOUS_MAINTENANCE_SCHEDULE_TYPE_REGULAR = "REGULAR"

    #: A constant which can be used with the database_edition property of a AutonomousDwDatabase.
    #: This constant has a value of "STANDARD_EDITION"
    DATABASE_EDITION_STANDARD_EDITION = "STANDARD_EDITION"

    #: A constant which can be used with the database_edition property of a AutonomousDwDatabase.
    #: This constant has a value of "ENTERPRISE_EDITION"
    DATABASE_EDITION_ENTERPRISE_EDITION = "ENTERPRISE_EDITION"

    #: A constant which can be used with the disaster_recovery_region_type property of a AutonomousDwDatabase.
    #: This constant has a value of "PRIMARY"
    DISASTER_RECOVERY_REGION_TYPE_PRIMARY = "PRIMARY"

    #: A constant which can be used with the disaster_recovery_region_type property of a AutonomousDwDatabase.
    #: This constant has a value of "REMOTE"
    DISASTER_RECOVERY_REGION_TYPE_REMOTE = "REMOTE"

    #: A constant which can be used with the net_services_architecture property of a AutonomousDwDatabase.
    #: This constant has a value of "DEDICATED"
    NET_SERVICES_ARCHITECTURE_DEDICATED = "DEDICATED"

    #: A constant which can be used with the net_services_architecture property of a AutonomousDwDatabase.
    #: This constant has a value of "SHARED"
    NET_SERVICES_ARCHITECTURE_SHARED = "SHARED"

    #: A constant which can be used with the net_services_architecture property of a AutonomousDwDatabase.
    #: This constant has a value of "DRCP"
    NET_SERVICES_ARCHITECTURE_DRCP = "DRCP"

    #: A constant which can be used with the clone_type property of a AutonomousDwDatabase.
    #: This constant has a value of "FULL"
    CLONE_TYPE_FULL = "FULL"

    #: A constant which can be used with the clone_type property of a AutonomousDwDatabase.
    #: This constant has a value of "METADATA"
    CLONE_TYPE_METADATA = "METADATA"

    #: A constant which can be used with the clone_type property of a AutonomousDwDatabase.
    #: This constant has a value of "PARTIAL"
    CLONE_TYPE_PARTIAL = "PARTIAL"

    def __init__(self, **kwargs):
        """
        Initializes a new AutonomousDwDatabase object with values from keyword arguments.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param id:
            The value to assign to the id property of this AutonomousDwDatabase.
        :type id: str

        :param compartment_id:
            The value to assign to the compartment_id property of this AutonomousDwDatabase.
        :type compartment_id: str

        :param subscription_id:
            The value to assign to the subscription_id property of this AutonomousDwDatabase.
        :type subscription_id: str

        :param lifecycle_state:
            The value to assign to the lifecycle_state property of this AutonomousDwDatabase.
            Allowed values for this property are: "PROVISIONING", "AVAILABLE", "STOPPING", "STOPPED", "STARTING", "TERMINATING", "TERMINATED", "UNAVAILABLE", "RESTORE_IN_PROGRESS", "RESTORE_FAILED", "BACKUP_IN_PROGRESS", "SCALE_IN_PROGRESS", "AVAILABLE_NEEDS_ATTENTION", "UPDATING", "MAINTENANCE_IN_PROGRESS", "RESTARTING", "RECREATING", "ROLE_CHANGE_IN_PROGRESS", "UPGRADING", "INACCESSIBLE", "STANDBY", "TRANSPORTING"
        :type lifecycle_state: str

        :param lifecycle_details:
            The value to assign to the lifecycle_details property of this AutonomousDwDatabase.
        :type lifecycle_details: str

        :param kms_key_id:
            The value to assign to the kms_key_id property of this AutonomousDwDatabase.
        :type kms_key_id: str

        :param vault_id:
            The value to assign to the vault_id property of this AutonomousDwDatabase.
        :type vault_id: str

        :param kms_key_lifecycle_details:
            The value to assign to the kms_key_lifecycle_details property of this AutonomousDwDatabase.
        :type kms_key_lifecycle_details: str

        :param encryption_key:
            The value to assign to the encryption_key property of this AutonomousDwDatabase.
        :type encryption_key: oci.database.models.AutonomousDatabaseEncryptionKeyDetails

        :param kms_key_version_id:
            The value to assign to the kms_key_version_id property of this AutonomousDwDatabase.
        :type kms_key_version_id: str

        :param encryption_key_location_details:
            The value to assign to the encryption_key_location_details property of this AutonomousDwDatabase.
        :type encryption_key_location_details: oci.database.models.EncryptionKeyLocationDetails

        :param db_name:
            The value to assign to the db_name property of this AutonomousDwDatabase.
        :type db_name: str

        :param character_set:
            The value to assign to the character_set property of this AutonomousDwDatabase.
        :type character_set: str

        :param ncharacter_set:
            The value to assign to the ncharacter_set property of this AutonomousDwDatabase.
        :type ncharacter_set: str

        :param in_memory_percentage:
            The value to assign to the in_memory_percentage property of this AutonomousDwDatabase.
        :type in_memory_percentage: int

        :param in_memory_area_in_gbs:
            The value to assign to the in_memory_area_in_gbs property of this AutonomousDwDatabase.
        :type in_memory_area_in_gbs: int

        :param next_long_term_backup_time_stamp:
            The value to assign to the next_long_term_backup_time_stamp property of this AutonomousDwDatabase.
        :type next_long_term_backup_time_stamp: datetime

        :param long_term_backup_schedule:
            The value to assign to the long_term_backup_schedule property of this AutonomousDwDatabase.
        :type long_term_backup_schedule: oci.database.models.LongTermBackUpScheduleDetails

        :param is_free_tier:
            The value to assign to the is_free_tier property of this AutonomousDwDatabase.
        :type is_free_tier: bool

        :param system_tags:
            The value to assign to the system_tags property of this AutonomousDwDatabase.
        :type system_tags: dict(str, dict(str, object))

        :param time_reclamation_of_free_autonomous_database:
            The value to assign to the time_reclamation_of_free_autonomous_database property of this AutonomousDwDatabase.
        :type time_reclamation_of_free_autonomous_database: datetime

        :param time_deletion_of_free_autonomous_database:
            The value to assign to the time_deletion_of_free_autonomous_database property of this AutonomousDwDatabase.
        :type time_deletion_of_free_autonomous_database: datetime

        :param backup_config:
            The value to assign to the backup_config property of this AutonomousDwDatabase.
        :type backup_config: oci.database.models.AutonomousDatabaseBackupConfig

        :param key_history_entry:
            The value to assign to the key_history_entry property of this AutonomousDwDatabase.
        :type key_history_entry: list[oci.database.models.AutonomousDatabaseKeyHistoryEntry]

        :param encryption_key_history_entry:
            The value to assign to the encryption_key_history_entry property of this AutonomousDwDatabase.
        :type encryption_key_history_entry: list[oci.database.models.AutonomousDatabaseEncryptionKeyHistoryEntry]

        :param cpu_core_count:
            The value to assign to the cpu_core_count property of this AutonomousDwDatabase.
        :type cpu_core_count: int

        :param local_adg_auto_failover_max_data_loss_limit:
            The value to assign to the local_adg_auto_failover_max_data_loss_limit property of this AutonomousDwDatabase.
        :type local_adg_auto_failover_max_data_loss_limit: int

        :param compute_model:
            The value to assign to the compute_model property of this AutonomousDwDatabase.
            Allowed values for this property are: "ECPU", "OCPU"
        :type compute_model: str

        :param compute_count:
            The value to assign to the compute_count property of this AutonomousDwDatabase.
        :type compute_count: float

        :param backup_retention_period_in_days:
            The value to assign to the backup_retention_period_in_days property of this AutonomousDwDatabase.
        :type backup_retention_period_in_days: int

        :param total_backup_storage_size_in_gbs:
            The value to assign to the total_backup_storage_size_in_gbs property of this AutonomousDwDatabase.
        :type total_backup_storage_size_in_gbs: float

        :param ocpu_count:
            The value to assign to the ocpu_count property of this AutonomousDwDatabase.
        :type ocpu_count: float

        :param provisionable_cpus:
            The value to assign to the provisionable_cpus property of this AutonomousDwDatabase.
        :type provisionable_cpus: list[float]

        :param data_storage_size_in_tbs:
            The value to assign to the data_storage_size_in_tbs property of this AutonomousDwDatabase.
        :type data_storage_size_in_tbs: int

        :param memory_per_oracle_compute_unit_in_gbs:
            The value to assign to the memory_per_oracle_compute_unit_in_gbs property of this AutonomousDwDatabase.
        :type memory_per_oracle_compute_unit_in_gbs: int

        :param memory_per_compute_unit_in_gbs:
            The value to assign to the memory_per_compute_unit_in_gbs property of this AutonomousDwDatabase.
        :type memory_per_compute_unit_in_gbs: float

        :param data_storage_size_in_gbs:
            The value to assign to the data_storage_size_in_gbs property of this AutonomousDwDatabase.
        :type data_storage_size_in_gbs: int

        :param used_data_storage_size_in_gbs:
            The value to assign to the used_data_storage_size_in_gbs property of this AutonomousDwDatabase.
        :type used_data_storage_size_in_gbs: int

        :param infrastructure_type:
            The value to assign to the infrastructure_type property of this AutonomousDwDatabase.
            Allowed values for this property are: "CLOUD", "CLOUD_AT_CUSTOMER"
        :type infrastructure_type: str

        :param is_dedicated:
            The value to assign to the is_dedicated property of this AutonomousDwDatabase.
        :type is_dedicated: bool

        :param autonomous_container_database_id:
            The value to assign to the autonomous_container_database_id property of this AutonomousDwDatabase.
        :type autonomous_container_database_id: str

        :param is_backup_retention_locked:
            The value to assign to the is_backup_retention_locked property of this AutonomousDwDatabase.
        :type is_backup_retention_locked: bool

        :param time_undeleted:
            The value to assign to the time_undeleted property of this AutonomousDwDatabase.
        :type time_undeleted: datetime

        :param time_earliest_available_db_version_upgrade:
            The value to assign to the time_earliest_available_db_version_upgrade property of this AutonomousDwDatabase.
        :type time_earliest_available_db_version_upgrade: datetime

        :param time_latest_available_db_version_upgrade:
            The value to assign to the time_latest_available_db_version_upgrade property of this AutonomousDwDatabase.
        :type time_latest_available_db_version_upgrade: datetime

        :param time_scheduled_db_version_upgrade:
            The value to assign to the time_scheduled_db_version_upgrade property of this AutonomousDwDatabase.
        :type time_scheduled_db_version_upgrade: datetime

        :param time_created:
            The value to assign to the time_created property of this AutonomousDwDatabase.
        :type time_created: datetime

        :param display_name:
            The value to assign to the display_name property of this AutonomousDwDatabase.
        :type display_name: str

        :param service_console_url:
            The value to assign to the service_console_url property of this AutonomousDwDatabase.
        :type service_console_url: str

        :param connection_strings:
            The value to assign to the connection_strings property of this AutonomousDwDatabase.
        :type connection_strings: oci.database.models.AutonomousDatabaseConnectionStrings

        :param connection_urls:
            The value to assign to the connection_urls property of this AutonomousDwDatabase.
        :type connection_urls: oci.database.models.AutonomousDatabaseConnectionUrls

        :param public_connection_urls:
            The value to assign to the public_connection_urls property of this AutonomousDwDatabase.
        :type public_connection_urls: oci.database.models.AutonomousDatabaseConnectionUrls

        :param vanity_connection_urls:
            The value to assign to the vanity_connection_urls property of this AutonomousDwDatabase.
        :type vanity_connection_urls: oci.database.models.AutonomousDatabaseConnectionUrls

        :param license_model:
            The value to assign to the license_model property of this AutonomousDwDatabase.
            Allowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"
        :type license_model: str

        :param byol_compute_count_limit:
            The value to assign to the byol_compute_count_limit property of this AutonomousDwDatabase.
        :type byol_compute_count_limit: float

        :param used_data_storage_size_in_tbs:
            The value to assign to the used_data_storage_size_in_tbs property of this AutonomousDwDatabase.
        :type used_data_storage_size_in_tbs: int

        :param freeform_tags:
            The value to assign to the freeform_tags property of this AutonomousDwDatabase.
        :type freeform_tags: dict(str, str)

        :param defined_tags:
            The value to assign to the defined_tags property of this AutonomousDwDatabase.
        :type defined_tags: dict(str, dict(str, object))

        :param security_attributes:
            The value to assign to the security_attributes property of this AutonomousDwDatabase.
        :type security_attributes: dict(str, dict(str, object))

        :param subnet_id:
            The value to assign to the subnet_id property of this AutonomousDwDatabase.
        :type subnet_id: str

        :param nsg_ids:
            The value to assign to the nsg_ids property of this AutonomousDwDatabase.
        :type nsg_ids: list[str]

        :param private_endpoint:
            The value to assign to the private_endpoint property of this AutonomousDwDatabase.
        :type private_endpoint: str

        :param public_endpoint:
            The value to assign to the public_endpoint property of this AutonomousDwDatabase.
        :type public_endpoint: str

        :param private_endpoint_label:
            The value to assign to the private_endpoint_label property of this AutonomousDwDatabase.
        :type private_endpoint_label: str

        :param private_endpoint_ip:
            The value to assign to the private_endpoint_ip property of this AutonomousDwDatabase.
        :type private_endpoint_ip: str

        :param db_version:
            The value to assign to the db_version property of this AutonomousDwDatabase.
        :type db_version: str

        :param is_preview:
            The value to assign to the is_preview property of this AutonomousDwDatabase.
        :type is_preview: bool

        :param db_workload:
            The value to assign to the db_workload property of this AutonomousDwDatabase.
            Allowed values for this property are: "OLTP", "DW", "AJD", "APEX", "LH"
        :type db_workload: str

        :param is_dev_tier:
            The value to assign to the is_dev_tier property of this AutonomousDwDatabase.
        :type is_dev_tier: bool

        :param is_access_control_enabled:
            The value to assign to the is_access_control_enabled property of this AutonomousDwDatabase.
        :type is_access_control_enabled: bool

        :param whitelisted_ips:
            The value to assign to the whitelisted_ips property of this AutonomousDwDatabase.
        :type whitelisted_ips: list[str]

        :param are_primary_whitelisted_ips_used:
            The value to assign to the are_primary_whitelisted_ips_used property of this AutonomousDwDatabase.
        :type are_primary_whitelisted_ips_used: bool

        :param standby_whitelisted_ips:
            The value to assign to the standby_whitelisted_ips property of this AutonomousDwDatabase.
        :type standby_whitelisted_ips: list[str]

        :param apex_details:
            The value to assign to the apex_details property of this AutonomousDwDatabase.
        :type apex_details: oci.database.models.AutonomousDatabaseApex

        :param is_auto_scaling_enabled:
            The value to assign to the is_auto_scaling_enabled property of this AutonomousDwDatabase.
        :type is_auto_scaling_enabled: bool

        :param data_safe_status:
            The value to assign to the data_safe_status property of this AutonomousDwDatabase.
            Allowed values for this property are: "REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED"
        :type data_safe_status: str

        :param operations_insights_status:
            The value to assign to the operations_insights_status property of this AutonomousDwDatabase.
            Allowed values for this property are: "ENABLING", "ENABLED", "DISABLING", "NOT_ENABLED", "FAILED_ENABLING", "FAILED_DISABLING"
        :type operations_insights_status: str

        :param database_management_status:
            The value to assign to the database_management_status property of this AutonomousDwDatabase.
            Allowed values for this property are: "ENABLING", "ENABLED", "DISABLING", "NOT_ENABLED", "FAILED_ENABLING", "FAILED_DISABLING"
        :type database_management_status: str

        :param time_maintenance_begin:
            The value to assign to the time_maintenance_begin property of this AutonomousDwDatabase.
        :type time_maintenance_begin: datetime

        :param time_maintenance_end:
            The value to assign to the time_maintenance_end property of this AutonomousDwDatabase.
        :type time_maintenance_end: datetime

        :param maintenance_target_component:
            The value to assign to the maintenance_target_component property of this AutonomousDwDatabase.
        :type maintenance_target_component: str

        :param is_refreshable_clone:
            The value to assign to the is_refreshable_clone property of this AutonomousDwDatabase.
        :type is_refreshable_clone: bool

        :param time_of_last_refresh:
            The value to assign to the time_of_last_refresh property of this AutonomousDwDatabase.
        :type time_of_last_refresh: datetime

        :param time_of_last_refresh_point:
            The value to assign to the time_of_last_refresh_point property of this AutonomousDwDatabase.
        :type time_of_last_refresh_point: datetime

        :param time_of_next_refresh:
            The value to assign to the time_of_next_refresh property of this AutonomousDwDatabase.
        :type time_of_next_refresh: datetime

        :param open_mode:
            The value to assign to the open_mode property of this AutonomousDwDatabase.
            Allowed values for this property are: "READ_ONLY", "READ_WRITE"
        :type open_mode: str

        :param refreshable_status:
            The value to assign to the refreshable_status property of this AutonomousDwDatabase.
            Allowed values for this property are: "REFRESHING", "NOT_REFRESHING"
        :type refreshable_status: str

        :param refreshable_mode:
            The value to assign to the refreshable_mode property of this AutonomousDwDatabase.
            Allowed values for this property are: "AUTOMATIC", "MANUAL"
        :type refreshable_mode: str

        :param source_id:
            The value to assign to the source_id property of this AutonomousDwDatabase.
        :type source_id: str

        :param permission_level:
            The value to assign to the permission_level property of this AutonomousDwDatabase.
            Allowed values for this property are: "RESTRICTED", "UNRESTRICTED"
        :type permission_level: str

        :param time_of_last_switchover:
            The value to assign to the time_of_last_switchover property of this AutonomousDwDatabase.
        :type time_of_last_switchover: datetime

        :param time_of_last_failover:
            The value to assign to the time_of_last_failover property of this AutonomousDwDatabase.
        :type time_of_last_failover: datetime

        :param is_data_guard_enabled:
            The value to assign to the is_data_guard_enabled property of this AutonomousDwDatabase.
        :type is_data_guard_enabled: bool

        :param failed_data_recovery_in_seconds:
            The value to assign to the failed_data_recovery_in_seconds property of this AutonomousDwDatabase.
        :type failed_data_recovery_in_seconds: int

        :param standby_db:
            The value to assign to the standby_db property of this AutonomousDwDatabase.
        :type standby_db: oci.database.models.AutonomousDatabaseStandbySummary

        :param is_local_data_guard_enabled:
            The value to assign to the is_local_data_guard_enabled property of this AutonomousDwDatabase.
        :type is_local_data_guard_enabled: bool

        :param is_remote_data_guard_enabled:
            The value to assign to the is_remote_data_guard_enabled property of this AutonomousDwDatabase.
        :type is_remote_data_guard_enabled: bool

        :param local_standby_db:
            The value to assign to the local_standby_db property of this AutonomousDwDatabase.
        :type local_standby_db: oci.database.models.AutonomousDatabaseStandbySummary

        :param role:
            The value to assign to the role property of this AutonomousDwDatabase.
            Allowed values for this property are: "PRIMARY", "STANDBY", "DISABLED_STANDBY", "BACKUP_COPY", "SNAPSHOT_STANDBY"
        :type role: str

        :param available_upgrade_versions:
            The value to assign to the available_upgrade_versions property of this AutonomousDwDatabase.
        :type available_upgrade_versions: list[str]

        :param key_store_id:
            The value to assign to the key_store_id property of this AutonomousDwDatabase.
        :type key_store_id: str

        :param key_store_wallet_name:
            The value to assign to the key_store_wallet_name property of this AutonomousDwDatabase.
        :type key_store_wallet_name: str

        :param auto_refresh_frequency_in_seconds:
            The value to assign to the auto_refresh_frequency_in_seconds property of this AutonomousDwDatabase.
        :type auto_refresh_frequency_in_seconds: int

        :param auto_refresh_point_lag_in_seconds:
            The value to assign to the auto_refresh_point_lag_in_seconds property of this AutonomousDwDatabase.
        :type auto_refresh_point_lag_in_seconds: int

        :param time_of_auto_refresh_start:
            The value to assign to the time_of_auto_refresh_start property of this AutonomousDwDatabase.
        :type time_of_auto_refresh_start: datetime

        :param supported_regions_to_clone_to:
            The value to assign to the supported_regions_to_clone_to property of this AutonomousDwDatabase.
        :type supported_regions_to_clone_to: list[str]

        :param customer_contacts:
            The value to assign to the customer_contacts property of this AutonomousDwDatabase.
        :type customer_contacts: list[oci.database.models.CustomerContact]

        :param time_local_data_guard_enabled:
            The value to assign to the time_local_data_guard_enabled property of this AutonomousDwDatabase.
        :type time_local_data_guard_enabled: datetime

        :param dataguard_region_type:
            The value to assign to the dataguard_region_type property of this AutonomousDwDatabase.
            Allowed values for this property are: "PRIMARY_DG_REGION", "REMOTE_STANDBY_DG_REGION"
        :type dataguard_region_type: str

        :param time_data_guard_role_changed:
            The value to assign to the time_data_guard_role_changed property of this AutonomousDwDatabase.
        :type time_data_guard_role_changed: datetime

        :param peer_db_ids:
            The value to assign to the peer_db_ids property of this AutonomousDwDatabase.
        :type peer_db_ids: list[str]

        :param is_mtls_connection_required:
            The value to assign to the is_mtls_connection_required property of this AutonomousDwDatabase.
        :type is_mtls_connection_required: bool

        :param time_of_joining_resource_pool:
            The value to assign to the time_of_joining_resource_pool property of this AutonomousDwDatabase.
        :type time_of_joining_resource_pool: datetime

        :param resource_pool_leader_id:
            The value to assign to the resource_pool_leader_id property of this AutonomousDwDatabase.
        :type resource_pool_leader_id: str

        :param resource_pool_summary:
            The value to assign to the resource_pool_summary property of this AutonomousDwDatabase.
        :type resource_pool_summary: oci.database.models.ResourcePoolSummary

        :param is_reconnect_clone_enabled:
            The value to assign to the is_reconnect_clone_enabled property of this AutonomousDwDatabase.
        :type is_reconnect_clone_enabled: bool

        :param time_until_reconnect_clone_enabled:
            The value to assign to the time_until_reconnect_clone_enabled property of this AutonomousDwDatabase.
        :type time_until_reconnect_clone_enabled: datetime

        :param autonomous_maintenance_schedule_type:
            The value to assign to the autonomous_maintenance_schedule_type property of this AutonomousDwDatabase.
            Allowed values for this property are: "EARLY", "REGULAR"
        :type autonomous_maintenance_schedule_type: str

        :param autonomous_database_maintenance_window:
            The value to assign to the autonomous_database_maintenance_window property of this AutonomousDwDatabase.
        :type autonomous_database_maintenance_window: oci.database.models.AutonomousDatabaseMaintenanceWindowSummary

        :param time_maintenance_pause_until:
            The value to assign to the time_maintenance_pause_until property of this AutonomousDwDatabase.
        :type time_maintenance_pause_until: datetime

        :param scheduled_operations:
            The value to assign to the scheduled_operations property of this AutonomousDwDatabase.
        :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails]

        :param is_auto_scaling_for_storage_enabled:
            The value to assign to the is_auto_scaling_for_storage_enabled property of this AutonomousDwDatabase.
        :type is_auto_scaling_for_storage_enabled: bool

        :param allocated_storage_size_in_tbs:
            The value to assign to the allocated_storage_size_in_tbs property of this AutonomousDwDatabase.
        :type allocated_storage_size_in_tbs: float

        :param actual_used_data_storage_size_in_tbs:
            The value to assign to the actual_used_data_storage_size_in_tbs property of this AutonomousDwDatabase.
        :type actual_used_data_storage_size_in_tbs: float

        :param database_edition:
            The value to assign to the database_edition property of this AutonomousDwDatabase.
            Allowed values for this property are: "STANDARD_EDITION", "ENTERPRISE_EDITION"
        :type database_edition: str

        :param db_tools_details:
            The value to assign to the db_tools_details property of this AutonomousDwDatabase.
        :type db_tools_details: list[oci.database.models.DatabaseTool]

        :param vanity_url_details:
            The value to assign to the vanity_url_details property of this AutonomousDwDatabase.
        :type vanity_url_details: oci.database.models.VanityUrlDetails

        :param local_disaster_recovery_type:
            The value to assign to the local_disaster_recovery_type property of this AutonomousDwDatabase.
        :type local_disaster_recovery_type: str

        :param disaster_recovery_region_type:
            The value to assign to the disaster_recovery_region_type property of this AutonomousDwDatabase.
            Allowed values for this property are: "PRIMARY", "REMOTE"
        :type disaster_recovery_region_type: str

        :param time_disaster_recovery_role_changed:
            The value to assign to the time_disaster_recovery_role_changed property of this AutonomousDwDatabase.
        :type time_disaster_recovery_role_changed: datetime

        :param remote_disaster_recovery_configuration:
            The value to assign to the remote_disaster_recovery_configuration property of this AutonomousDwDatabase.
        :type remote_disaster_recovery_configuration: oci.database.models.DisasterRecoveryConfiguration

        :param net_services_architecture:
            The value to assign to the net_services_architecture property of this AutonomousDwDatabase.
            Allowed values for this property are: "DEDICATED", "SHARED", "DRCP"
        :type net_services_architecture: str

        :param availability_domain:
            The value to assign to the availability_domain property of this AutonomousDwDatabase.
        :type availability_domain: str

        :param cluster_placement_group_id:
            The value to assign to the cluster_placement_group_id property of this AutonomousDwDatabase.
        :type cluster_placement_group_id: str

        :param clone_table_space_list:
            The value to assign to the clone_table_space_list property of this AutonomousDwDatabase.
        :type clone_table_space_list: list[int]

        :param clone_type:
            The value to assign to the clone_type property of this AutonomousDwDatabase.
            Allowed values for this property are: "FULL", "METADATA", "PARTIAL"
        :type clone_type: str

        :param additional_attributes:
            The value to assign to the additional_attributes property of this AutonomousDwDatabase.
        :type additional_attributes: dict(str, str)

        :param local_adg_resource_pool_leader_id:
            The value to assign to the local_adg_resource_pool_leader_id property of this AutonomousDwDatabase.
        :type local_adg_resource_pool_leader_id: str

        """
        self.swagger_types = {
            'id': 'str',
            'compartment_id': 'str',
            'subscription_id': 'str',
            'lifecycle_state': 'str',
            'lifecycle_details': 'str',
            'kms_key_id': 'str',
            'vault_id': 'str',
            'kms_key_lifecycle_details': 'str',
            'encryption_key': 'AutonomousDatabaseEncryptionKeyDetails',
            'kms_key_version_id': 'str',
            'encryption_key_location_details': 'EncryptionKeyLocationDetails',
            'db_name': 'str',
            'character_set': 'str',
            'ncharacter_set': 'str',
            'in_memory_percentage': 'int',
            'in_memory_area_in_gbs': 'int',
            'next_long_term_backup_time_stamp': 'datetime',
            'long_term_backup_schedule': 'LongTermBackUpScheduleDetails',
            'is_free_tier': 'bool',
            'system_tags': 'dict(str, dict(str, object))',
            'time_reclamation_of_free_autonomous_database': 'datetime',
            'time_deletion_of_free_autonomous_database': 'datetime',
            'backup_config': 'AutonomousDatabaseBackupConfig',
            'key_history_entry': 'list[AutonomousDatabaseKeyHistoryEntry]',
            'encryption_key_history_entry': 'list[AutonomousDatabaseEncryptionKeyHistoryEntry]',
            'cpu_core_count': 'int',
            'local_adg_auto_failover_max_data_loss_limit': 'int',
            'compute_model': 'str',
            'compute_count': 'float',
            'backup_retention_period_in_days': 'int',
            'total_backup_storage_size_in_gbs': 'float',
            'ocpu_count': 'float',
            'provisionable_cpus': 'list[float]',
            'data_storage_size_in_tbs': 'int',
            'memory_per_oracle_compute_unit_in_gbs': 'int',
            'memory_per_compute_unit_in_gbs': 'float',
            'data_storage_size_in_gbs': 'int',
            'used_data_storage_size_in_gbs': 'int',
            'infrastructure_type': 'str',
            'is_dedicated': 'bool',
            'autonomous_container_database_id': 'str',
            'is_backup_retention_locked': 'bool',
            'time_undeleted': 'datetime',
            'time_earliest_available_db_version_upgrade': 'datetime',
            'time_latest_available_db_version_upgrade': 'datetime',
            'time_scheduled_db_version_upgrade': 'datetime',
            'time_created': 'datetime',
            'display_name': 'str',
            'service_console_url': 'str',
            'connection_strings': 'AutonomousDatabaseConnectionStrings',
            'connection_urls': 'AutonomousDatabaseConnectionUrls',
            'public_connection_urls': 'AutonomousDatabaseConnectionUrls',
            'vanity_connection_urls': 'AutonomousDatabaseConnectionUrls',
            'license_model': 'str',
            'byol_compute_count_limit': 'float',
            'used_data_storage_size_in_tbs': 'int',
            'freeform_tags': 'dict(str, str)',
            'defined_tags': 'dict(str, dict(str, object))',
            'security_attributes': 'dict(str, dict(str, object))',
            'subnet_id': 'str',
            'nsg_ids': 'list[str]',
            'private_endpoint': 'str',
            'public_endpoint': 'str',
            'private_endpoint_label': 'str',
            'private_endpoint_ip': 'str',
            'db_version': 'str',
            'is_preview': 'bool',
            'db_workload': 'str',
            'is_dev_tier': 'bool',
            'is_access_control_enabled': 'bool',
            'whitelisted_ips': 'list[str]',
            'are_primary_whitelisted_ips_used': 'bool',
            'standby_whitelisted_ips': 'list[str]',
            'apex_details': 'AutonomousDatabaseApex',
            'is_auto_scaling_enabled': 'bool',
            'data_safe_status': 'str',
            'operations_insights_status': 'str',
            'database_management_status': 'str',
            'time_maintenance_begin': 'datetime',
            'time_maintenance_end': 'datetime',
            'maintenance_target_component': 'str',
            'is_refreshable_clone': 'bool',
            'time_of_last_refresh': 'datetime',
            'time_of_last_refresh_point': 'datetime',
            'time_of_next_refresh': 'datetime',
            'open_mode': 'str',
            'refreshable_status': 'str',
            'refreshable_mode': 'str',
            'source_id': 'str',
            'permission_level': 'str',
            'time_of_last_switchover': 'datetime',
            'time_of_last_failover': 'datetime',
            'is_data_guard_enabled': 'bool',
            'failed_data_recovery_in_seconds': 'int',
            'standby_db': 'AutonomousDatabaseStandbySummary',
            'is_local_data_guard_enabled': 'bool',
            'is_remote_data_guard_enabled': 'bool',
            'local_standby_db': 'AutonomousDatabaseStandbySummary',
            'role': 'str',
            'available_upgrade_versions': 'list[str]',
            'key_store_id': 'str',
            'key_store_wallet_name': 'str',
            'auto_refresh_frequency_in_seconds': 'int',
            'auto_refresh_point_lag_in_seconds': 'int',
            'time_of_auto_refresh_start': 'datetime',
            'supported_regions_to_clone_to': 'list[str]',
            'customer_contacts': 'list[CustomerContact]',
            'time_local_data_guard_enabled': 'datetime',
            'dataguard_region_type': 'str',
            'time_data_guard_role_changed': 'datetime',
            'peer_db_ids': 'list[str]',
            'is_mtls_connection_required': 'bool',
            'time_of_joining_resource_pool': 'datetime',
            'resource_pool_leader_id': 'str',
            'resource_pool_summary': 'ResourcePoolSummary',
            'is_reconnect_clone_enabled': 'bool',
            'time_until_reconnect_clone_enabled': 'datetime',
            'autonomous_maintenance_schedule_type': 'str',
            'autonomous_database_maintenance_window': 'AutonomousDatabaseMaintenanceWindowSummary',
            'time_maintenance_pause_until': 'datetime',
            'scheduled_operations': 'list[ScheduledOperationDetails]',
            'is_auto_scaling_for_storage_enabled': 'bool',
            'allocated_storage_size_in_tbs': 'float',
            'actual_used_data_storage_size_in_tbs': 'float',
            'database_edition': 'str',
            'db_tools_details': 'list[DatabaseTool]',
            'vanity_url_details': 'VanityUrlDetails',
            'local_disaster_recovery_type': 'str',
            'disaster_recovery_region_type': 'str',
            'time_disaster_recovery_role_changed': 'datetime',
            'remote_disaster_recovery_configuration': 'DisasterRecoveryConfiguration',
            'net_services_architecture': 'str',
            'availability_domain': 'str',
            'cluster_placement_group_id': 'str',
            'clone_table_space_list': 'list[int]',
            'clone_type': 'str',
            'additional_attributes': 'dict(str, str)',
            'local_adg_resource_pool_leader_id': 'str'
        }
        self.attribute_map = {
            'id': 'id',
            'compartment_id': 'compartmentId',
            'subscription_id': 'subscriptionId',
            'lifecycle_state': 'lifecycleState',
            'lifecycle_details': 'lifecycleDetails',
            'kms_key_id': 'kmsKeyId',
            'vault_id': 'vaultId',
            'kms_key_lifecycle_details': 'kmsKeyLifecycleDetails',
            'encryption_key': 'encryptionKey',
            'kms_key_version_id': 'kmsKeyVersionId',
            'encryption_key_location_details': 'encryptionKeyLocationDetails',
            'db_name': 'dbName',
            'character_set': 'characterSet',
            'ncharacter_set': 'ncharacterSet',
            'in_memory_percentage': 'inMemoryPercentage',
            'in_memory_area_in_gbs': 'inMemoryAreaInGBs',
            'next_long_term_backup_time_stamp': 'nextLongTermBackupTimeStamp',
            'long_term_backup_schedule': 'longTermBackupSchedule',
            'is_free_tier': 'isFreeTier',
            'system_tags': 'systemTags',
            'time_reclamation_of_free_autonomous_database': 'timeReclamationOfFreeAutonomousDatabase',
            'time_deletion_of_free_autonomous_database': 'timeDeletionOfFreeAutonomousDatabase',
            'backup_config': 'backupConfig',
            'key_history_entry': 'keyHistoryEntry',
            'encryption_key_history_entry': 'encryptionKeyHistoryEntry',
            'cpu_core_count': 'cpuCoreCount',
            'local_adg_auto_failover_max_data_loss_limit': 'localAdgAutoFailoverMaxDataLossLimit',
            'compute_model': 'computeModel',
            'compute_count': 'computeCount',
            'backup_retention_period_in_days': 'backupRetentionPeriodInDays',
            'total_backup_storage_size_in_gbs': 'totalBackupStorageSizeInGBs',
            'ocpu_count': 'ocpuCount',
            'provisionable_cpus': 'provisionableCpus',
            'data_storage_size_in_tbs': 'dataStorageSizeInTBs',
            'memory_per_oracle_compute_unit_in_gbs': 'memoryPerOracleComputeUnitInGBs',
            'memory_per_compute_unit_in_gbs': 'memoryPerComputeUnitInGBs',
            'data_storage_size_in_gbs': 'dataStorageSizeInGBs',
            'used_data_storage_size_in_gbs': 'usedDataStorageSizeInGBs',
            'infrastructure_type': 'infrastructureType',
            'is_dedicated': 'isDedicated',
            'autonomous_container_database_id': 'autonomousContainerDatabaseId',
            'is_backup_retention_locked': 'isBackupRetentionLocked',
            'time_undeleted': 'timeUndeleted',
            'time_earliest_available_db_version_upgrade': 'timeEarliestAvailableDbVersionUpgrade',
            'time_latest_available_db_version_upgrade': 'timeLatestAvailableDbVersionUpgrade',
            'time_scheduled_db_version_upgrade': 'timeScheduledDbVersionUpgrade',
            'time_created': 'timeCreated',
            'display_name': 'displayName',
            'service_console_url': 'serviceConsoleUrl',
            'connection_strings': 'connectionStrings',
            'connection_urls': 'connectionUrls',
            'public_connection_urls': 'publicConnectionUrls',
            'vanity_connection_urls': 'vanityConnectionUrls',
            'license_model': 'licenseModel',
            'byol_compute_count_limit': 'byolComputeCountLimit',
            'used_data_storage_size_in_tbs': 'usedDataStorageSizeInTBs',
            'freeform_tags': 'freeformTags',
            'defined_tags': 'definedTags',
            'security_attributes': 'securityAttributes',
            'subnet_id': 'subnetId',
            'nsg_ids': 'nsgIds',
            'private_endpoint': 'privateEndpoint',
            'public_endpoint': 'publicEndpoint',
            'private_endpoint_label': 'privateEndpointLabel',
            'private_endpoint_ip': 'privateEndpointIp',
            'db_version': 'dbVersion',
            'is_preview': 'isPreview',
            'db_workload': 'dbWorkload',
            'is_dev_tier': 'isDevTier',
            'is_access_control_enabled': 'isAccessControlEnabled',
            'whitelisted_ips': 'whitelistedIps',
            'are_primary_whitelisted_ips_used': 'arePrimaryWhitelistedIpsUsed',
            'standby_whitelisted_ips': 'standbyWhitelistedIps',
            'apex_details': 'apexDetails',
            'is_auto_scaling_enabled': 'isAutoScalingEnabled',
            'data_safe_status': 'dataSafeStatus',
            'operations_insights_status': 'operationsInsightsStatus',
            'database_management_status': 'databaseManagementStatus',
            'time_maintenance_begin': 'timeMaintenanceBegin',
            'time_maintenance_end': 'timeMaintenanceEnd',
            'maintenance_target_component': 'maintenanceTargetComponent',
            'is_refreshable_clone': 'isRefreshableClone',
            'time_of_last_refresh': 'timeOfLastRefresh',
            'time_of_last_refresh_point': 'timeOfLastRefreshPoint',
            'time_of_next_refresh': 'timeOfNextRefresh',
            'open_mode': 'openMode',
            'refreshable_status': 'refreshableStatus',
            'refreshable_mode': 'refreshableMode',
            'source_id': 'sourceId',
            'permission_level': 'permissionLevel',
            'time_of_last_switchover': 'timeOfLastSwitchover',
            'time_of_last_failover': 'timeOfLastFailover',
            'is_data_guard_enabled': 'isDataGuardEnabled',
            'failed_data_recovery_in_seconds': 'failedDataRecoveryInSeconds',
            'standby_db': 'standbyDb',
            'is_local_data_guard_enabled': 'isLocalDataGuardEnabled',
            'is_remote_data_guard_enabled': 'isRemoteDataGuardEnabled',
            'local_standby_db': 'localStandbyDb',
            'role': 'role',
            'available_upgrade_versions': 'availableUpgradeVersions',
            'key_store_id': 'keyStoreId',
            'key_store_wallet_name': 'keyStoreWalletName',
            'auto_refresh_frequency_in_seconds': 'autoRefreshFrequencyInSeconds',
            'auto_refresh_point_lag_in_seconds': 'autoRefreshPointLagInSeconds',
            'time_of_auto_refresh_start': 'timeOfAutoRefreshStart',
            'supported_regions_to_clone_to': 'supportedRegionsToCloneTo',
            'customer_contacts': 'customerContacts',
            'time_local_data_guard_enabled': 'timeLocalDataGuardEnabled',
            'dataguard_region_type': 'dataguardRegionType',
            'time_data_guard_role_changed': 'timeDataGuardRoleChanged',
            'peer_db_ids': 'peerDbIds',
            'is_mtls_connection_required': 'isMtlsConnectionRequired',
            'time_of_joining_resource_pool': 'timeOfJoiningResourcePool',
            'resource_pool_leader_id': 'resourcePoolLeaderId',
            'resource_pool_summary': 'resourcePoolSummary',
            'is_reconnect_clone_enabled': 'isReconnectCloneEnabled',
            'time_until_reconnect_clone_enabled': 'timeUntilReconnectCloneEnabled',
            'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType',
            'autonomous_database_maintenance_window': 'autonomousDatabaseMaintenanceWindow',
            'time_maintenance_pause_until': 'timeMaintenancePauseUntil',
            'scheduled_operations': 'scheduledOperations',
            'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled',
            'allocated_storage_size_in_tbs': 'allocatedStorageSizeInTBs',
            'actual_used_data_storage_size_in_tbs': 'actualUsedDataStorageSizeInTBs',
            'database_edition': 'databaseEdition',
            'db_tools_details': 'dbToolsDetails',
            'vanity_url_details': 'vanityUrlDetails',
            'local_disaster_recovery_type': 'localDisasterRecoveryType',
            'disaster_recovery_region_type': 'disasterRecoveryRegionType',
            'time_disaster_recovery_role_changed': 'timeDisasterRecoveryRoleChanged',
            'remote_disaster_recovery_configuration': 'remoteDisasterRecoveryConfiguration',
            'net_services_architecture': 'netServicesArchitecture',
            'availability_domain': 'availabilityDomain',
            'cluster_placement_group_id': 'clusterPlacementGroupId',
            'clone_table_space_list': 'cloneTableSpaceList',
            'clone_type': 'cloneType',
            'additional_attributes': 'additionalAttributes',
            'local_adg_resource_pool_leader_id': 'localAdgResourcePoolLeaderId'
        }
        self._id = None
        self._compartment_id = None
        self._subscription_id = None
        self._lifecycle_state = None
        self._lifecycle_details = None
        self._kms_key_id = None
        self._vault_id = None
        self._kms_key_lifecycle_details = None
        self._encryption_key = None
        self._kms_key_version_id = None
        self._encryption_key_location_details = None
        self._db_name = None
        self._character_set = None
        self._ncharacter_set = None
        self._in_memory_percentage = None
        self._in_memory_area_in_gbs = None
        self._next_long_term_backup_time_stamp = None
        self._long_term_backup_schedule = None
        self._is_free_tier = None
        self._system_tags = None
        self._time_reclamation_of_free_autonomous_database = None
        self._time_deletion_of_free_autonomous_database = None
        self._backup_config = None
        self._key_history_entry = None
        self._encryption_key_history_entry = None
        self._cpu_core_count = None
        self._local_adg_auto_failover_max_data_loss_limit = None
        self._compute_model = None
        self._compute_count = None
        self._backup_retention_period_in_days = None
        self._total_backup_storage_size_in_gbs = None
        self._ocpu_count = None
        self._provisionable_cpus = None
        self._data_storage_size_in_tbs = None
        self._memory_per_oracle_compute_unit_in_gbs = None
        self._memory_per_compute_unit_in_gbs = None
        self._data_storage_size_in_gbs = None
        self._used_data_storage_size_in_gbs = None
        self._infrastructure_type = None
        self._is_dedicated = None
        self._autonomous_container_database_id = None
        self._is_backup_retention_locked = None
        self._time_undeleted = None
        self._time_earliest_available_db_version_upgrade = None
        self._time_latest_available_db_version_upgrade = None
        self._time_scheduled_db_version_upgrade = None
        self._time_created = None
        self._display_name = None
        self._service_console_url = None
        self._connection_strings = None
        self._connection_urls = None
        self._public_connection_urls = None
        self._vanity_connection_urls = None
        self._license_model = None
        self._byol_compute_count_limit = None
        self._used_data_storage_size_in_tbs = None
        self._freeform_tags = None
        self._defined_tags = None
        self._security_attributes = None
        self._subnet_id = None
        self._nsg_ids = None
        self._private_endpoint = None
        self._public_endpoint = None
        self._private_endpoint_label = None
        self._private_endpoint_ip = None
        self._db_version = None
        self._is_preview = None
        self._db_workload = None
        self._is_dev_tier = None
        self._is_access_control_enabled = None
        self._whitelisted_ips = None
        self._are_primary_whitelisted_ips_used = None
        self._standby_whitelisted_ips = None
        self._apex_details = None
        self._is_auto_scaling_enabled = None
        self._data_safe_status = None
        self._operations_insights_status = None
        self._database_management_status = None
        self._time_maintenance_begin = None
        self._time_maintenance_end = None
        self._maintenance_target_component = None
        self._is_refreshable_clone = None
        self._time_of_last_refresh = None
        self._time_of_last_refresh_point = None
        self._time_of_next_refresh = None
        self._open_mode = None
        self._refreshable_status = None
        self._refreshable_mode = None
        self._source_id = None
        self._permission_level = None
        self._time_of_last_switchover = None
        self._time_of_last_failover = None
        self._is_data_guard_enabled = None
        self._failed_data_recovery_in_seconds = None
        self._standby_db = None
        self._is_local_data_guard_enabled = None
        self._is_remote_data_guard_enabled = None
        self._local_standby_db = None
        self._role = None
        self._available_upgrade_versions = None
        self._key_store_id = None
        self._key_store_wallet_name = None
        self._auto_refresh_frequency_in_seconds = None
        self._auto_refresh_point_lag_in_seconds = None
        self._time_of_auto_refresh_start = None
        self._supported_regions_to_clone_to = None
        self._customer_contacts = None
        self._time_local_data_guard_enabled = None
        self._dataguard_region_type = None
        self._time_data_guard_role_changed = None
        self._peer_db_ids = None
        self._is_mtls_connection_required = None
        self._time_of_joining_resource_pool = None
        self._resource_pool_leader_id = None
        self._resource_pool_summary = None
        self._is_reconnect_clone_enabled = None
        self._time_until_reconnect_clone_enabled = None
        self._autonomous_maintenance_schedule_type = None
        self._autonomous_database_maintenance_window = None
        self._time_maintenance_pause_until = None
        self._scheduled_operations = None
        self._is_auto_scaling_for_storage_enabled = None
        self._allocated_storage_size_in_tbs = None
        self._actual_used_data_storage_size_in_tbs = None
        self._database_edition = None
        self._db_tools_details = None
        self._vanity_url_details = None
        self._local_disaster_recovery_type = None
        self._disaster_recovery_region_type = None
        self._time_disaster_recovery_role_changed = None
        self._remote_disaster_recovery_configuration = None
        self._net_services_architecture = None
        self._availability_domain = None
        self._cluster_placement_group_id = None
        self._clone_table_space_list = None
        self._clone_type = None
        self._additional_attributes = None
        self._local_adg_resource_pool_leader_id = None

    @property
    def id(self):
        """
        **[Required]** Gets the id of this AutonomousDwDatabase.
        The `OCID`__ of the Autonomous AI Database.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this AutonomousDwDatabase.
        The `OCID`__ of the Autonomous AI Database.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param id: The id of this AutonomousDwDatabase.
        :type: str
        """
        self._id = id

    @property
    def compartment_id(self):
        """
        **[Required]** Gets the compartment_id of this AutonomousDwDatabase.
        The `OCID`__ of the compartment.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The compartment_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._compartment_id

    @compartment_id.setter
    def compartment_id(self, compartment_id):
        """
        Sets the compartment_id of this AutonomousDwDatabase.
        The `OCID`__ of the compartment.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param compartment_id: The compartment_id of this AutonomousDwDatabase.
        :type: str
        """
        self._compartment_id = compartment_id

    @property
    def subscription_id(self):
        """
        Gets the subscription_id of this AutonomousDwDatabase.
        The `OCID`__ of the subscription with which resource needs to be associated with.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The subscription_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._subscription_id

    @subscription_id.setter
    def subscription_id(self, subscription_id):
        """
        Sets the subscription_id of this AutonomousDwDatabase.
        The `OCID`__ of the subscription with which resource needs to be associated with.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param subscription_id: The subscription_id of this AutonomousDwDatabase.
        :type: str
        """
        self._subscription_id = subscription_id

    @property
    def lifecycle_state(self):
        """
        **[Required]** Gets the lifecycle_state of this AutonomousDwDatabase.
        The current state of the Autonomous AI Database.

        Allowed values for this property are: "PROVISIONING", "AVAILABLE", "STOPPING", "STOPPED", "STARTING", "TERMINATING", "TERMINATED", "UNAVAILABLE", "RESTORE_IN_PROGRESS", "RESTORE_FAILED", "BACKUP_IN_PROGRESS", "SCALE_IN_PROGRESS", "AVAILABLE_NEEDS_ATTENTION", "UPDATING", "MAINTENANCE_IN_PROGRESS", "RESTARTING", "RECREATING", "ROLE_CHANGE_IN_PROGRESS", "UPGRADING", "INACCESSIBLE", "STANDBY", "TRANSPORTING"


        :return: The lifecycle_state of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._lifecycle_state

    @lifecycle_state.setter
    def lifecycle_state(self, lifecycle_state):
        """
        Sets the lifecycle_state of this AutonomousDwDatabase.
        The current state of the Autonomous AI Database.


        :param lifecycle_state: The lifecycle_state of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["PROVISIONING", "AVAILABLE", "STOPPING", "STOPPED", "STARTING", "TERMINATING", "TERMINATED", "UNAVAILABLE", "RESTORE_IN_PROGRESS", "RESTORE_FAILED", "BACKUP_IN_PROGRESS", "SCALE_IN_PROGRESS", "AVAILABLE_NEEDS_ATTENTION", "UPDATING", "MAINTENANCE_IN_PROGRESS", "RESTARTING", "RECREATING", "ROLE_CHANGE_IN_PROGRESS", "UPGRADING", "INACCESSIBLE", "STANDBY", "TRANSPORTING"]
        if not value_allowed_none_or_none_sentinel(lifecycle_state, allowed_values):
            raise ValueError(
                f"Invalid value for `lifecycle_state`, must be None or one of {allowed_values}"
            )
        self._lifecycle_state = lifecycle_state

    @property
    def lifecycle_details(self):
        """
        Gets the lifecycle_details of this AutonomousDwDatabase.
        Information about the current lifecycle state.


        :return: The lifecycle_details of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._lifecycle_details

    @lifecycle_details.setter
    def lifecycle_details(self, lifecycle_details):
        """
        Sets the lifecycle_details of this AutonomousDwDatabase.
        Information about the current lifecycle state.


        :param lifecycle_details: The lifecycle_details of this AutonomousDwDatabase.
        :type: str
        """
        self._lifecycle_details = lifecycle_details

    @property
    def kms_key_id(self):
        """
        Gets the kms_key_id of this AutonomousDwDatabase.
        The OCID of the key container that is used as the master encryption key in database transparent data encryption (TDE) operations.


        :return: The kms_key_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._kms_key_id

    @kms_key_id.setter
    def kms_key_id(self, kms_key_id):
        """
        Sets the kms_key_id of this AutonomousDwDatabase.
        The OCID of the key container that is used as the master encryption key in database transparent data encryption (TDE) operations.


        :param kms_key_id: The kms_key_id of this AutonomousDwDatabase.
        :type: str
        """
        self._kms_key_id = kms_key_id

    @property
    def vault_id(self):
        """
        Gets the vault_id of this AutonomousDwDatabase.
        The `OCID`__ of the Oracle Cloud Infrastructure `vault`__. This parameter and `secretId` are required for Customer Managed Keys.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm
        __ https://docs.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts


        :return: The vault_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._vault_id

    @vault_id.setter
    def vault_id(self, vault_id):
        """
        Sets the vault_id of this AutonomousDwDatabase.
        The `OCID`__ of the Oracle Cloud Infrastructure `vault`__. This parameter and `secretId` are required for Customer Managed Keys.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm
        __ https://docs.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts


        :param vault_id: The vault_id of this AutonomousDwDatabase.
        :type: str
        """
        self._vault_id = vault_id

    @property
    def kms_key_lifecycle_details(self):
        """
        Gets the kms_key_lifecycle_details of this AutonomousDwDatabase.
        KMS key lifecycle details.


        :return: The kms_key_lifecycle_details of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._kms_key_lifecycle_details

    @kms_key_lifecycle_details.setter
    def kms_key_lifecycle_details(self, kms_key_lifecycle_details):
        """
        Sets the kms_key_lifecycle_details of this AutonomousDwDatabase.
        KMS key lifecycle details.


        :param kms_key_lifecycle_details: The kms_key_lifecycle_details of this AutonomousDwDatabase.
        :type: str
        """
        self._kms_key_lifecycle_details = kms_key_lifecycle_details

    @property
    def encryption_key(self):
        """
        Gets the encryption_key of this AutonomousDwDatabase.

        :return: The encryption_key of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseEncryptionKeyDetails
        """
        return self._encryption_key

    @encryption_key.setter
    def encryption_key(self, encryption_key):
        """
        Sets the encryption_key of this AutonomousDwDatabase.

        :param encryption_key: The encryption_key of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseEncryptionKeyDetails
        """
        self._encryption_key = encryption_key

    @property
    def kms_key_version_id(self):
        """
        Gets the kms_key_version_id of this AutonomousDwDatabase.
        The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation. Autonomous AI Database Serverless does not use key versions, hence is not applicable for Autonomous AI Database Serverless instances.


        :return: The kms_key_version_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._kms_key_version_id

    @kms_key_version_id.setter
    def kms_key_version_id(self, kms_key_version_id):
        """
        Sets the kms_key_version_id of this AutonomousDwDatabase.
        The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation. Autonomous AI Database Serverless does not use key versions, hence is not applicable for Autonomous AI Database Serverless instances.


        :param kms_key_version_id: The kms_key_version_id of this AutonomousDwDatabase.
        :type: str
        """
        self._kms_key_version_id = kms_key_version_id

    @property
    def encryption_key_location_details(self):
        """
        Gets the encryption_key_location_details of this AutonomousDwDatabase.

        :return: The encryption_key_location_details of this AutonomousDwDatabase.
        :rtype: oci.database.models.EncryptionKeyLocationDetails
        """
        return self._encryption_key_location_details

    @encryption_key_location_details.setter
    def encryption_key_location_details(self, encryption_key_location_details):
        """
        Sets the encryption_key_location_details of this AutonomousDwDatabase.

        :param encryption_key_location_details: The encryption_key_location_details of this AutonomousDwDatabase.
        :type: oci.database.models.EncryptionKeyLocationDetails
        """
        self._encryption_key_location_details = encryption_key_location_details

    @property
    def db_name(self):
        """
        **[Required]** Gets the db_name of this AutonomousDwDatabase.
        The database name.


        :return: The db_name of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._db_name

    @db_name.setter
    def db_name(self, db_name):
        """
        Sets the db_name of this AutonomousDwDatabase.
        The database name.


        :param db_name: The db_name of this AutonomousDwDatabase.
        :type: str
        """
        self._db_name = db_name

    @property
    def character_set(self):
        """
        Gets the character_set of this AutonomousDwDatabase.
        The character set for the Autonomous AI Database.  The default is AL32UTF8. Allowed values are:

        AL32UTF8, AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6, AR8MSWIN1256, AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707, AZ8ISO8859P9E, BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775, BN8BSCII, CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U, CL8MACCYRILLICS, CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250, EE8PC852, EL8DEC, EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851, EL8PC869, ET8MSWIN923, HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8, IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, JA16VMS, KO16KSC5601, KO16KSCCS, KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921, LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR, LV8RST104090, N8PC865, NE8ISO8859P10, NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866, SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII, TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857, US7ASCII, US8PC437, UTF8, VN8MSWIN1258, VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15, WE8ISO8859P9, WE8MACROMAN8S, WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858, WE8PC860, WE8ROMAN8, ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS, ZHT16MSWIN950, ZHT32EUC, ZHT32SOPS, ZHT32TRIS


        :return: The character_set of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._character_set

    @character_set.setter
    def character_set(self, character_set):
        """
        Sets the character_set of this AutonomousDwDatabase.
        The character set for the Autonomous AI Database.  The default is AL32UTF8. Allowed values are:

        AL32UTF8, AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6, AR8MSWIN1256, AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707, AZ8ISO8859P9E, BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775, BN8BSCII, CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U, CL8MACCYRILLICS, CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250, EE8PC852, EL8DEC, EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851, EL8PC869, ET8MSWIN923, HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8, IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, JA16VMS, KO16KSC5601, KO16KSCCS, KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921, LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR, LV8RST104090, N8PC865, NE8ISO8859P10, NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866, SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII, TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857, US7ASCII, US8PC437, UTF8, VN8MSWIN1258, VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15, WE8ISO8859P9, WE8MACROMAN8S, WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858, WE8PC860, WE8ROMAN8, ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS, ZHT16MSWIN950, ZHT32EUC, ZHT32SOPS, ZHT32TRIS


        :param character_set: The character_set of this AutonomousDwDatabase.
        :type: str
        """
        self._character_set = character_set

    @property
    def ncharacter_set(self):
        """
        Gets the ncharacter_set of this AutonomousDwDatabase.
        The national character set for the Autonomous AI Database.  The default is AL16UTF16. Allowed values are:
        AL16UTF16 or UTF8.


        :return: The ncharacter_set of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._ncharacter_set

    @ncharacter_set.setter
    def ncharacter_set(self, ncharacter_set):
        """
        Sets the ncharacter_set of this AutonomousDwDatabase.
        The national character set for the Autonomous AI Database.  The default is AL16UTF16. Allowed values are:
        AL16UTF16 or UTF8.


        :param ncharacter_set: The ncharacter_set of this AutonomousDwDatabase.
        :type: str
        """
        self._ncharacter_set = ncharacter_set

    @property
    def in_memory_percentage(self):
        """
        Gets the in_memory_percentage of this AutonomousDwDatabase.
        The percentage of the System Global Area(SGA) assigned to In-Memory tables in Autonomous AI Database. This property is applicable only to Autonomous AI Databases on the Exadata Cloud@Customer platform.


        :return: The in_memory_percentage of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._in_memory_percentage

    @in_memory_percentage.setter
    def in_memory_percentage(self, in_memory_percentage):
        """
        Sets the in_memory_percentage of this AutonomousDwDatabase.
        The percentage of the System Global Area(SGA) assigned to In-Memory tables in Autonomous AI Database. This property is applicable only to Autonomous AI Databases on the Exadata Cloud@Customer platform.


        :param in_memory_percentage: The in_memory_percentage of this AutonomousDwDatabase.
        :type: int
        """
        self._in_memory_percentage = in_memory_percentage

    @property
    def in_memory_area_in_gbs(self):
        """
        Gets the in_memory_area_in_gbs of this AutonomousDwDatabase.
        The area assigned to In-Memory tables in Autonomous AI Database.


        :return: The in_memory_area_in_gbs of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._in_memory_area_in_gbs

    @in_memory_area_in_gbs.setter
    def in_memory_area_in_gbs(self, in_memory_area_in_gbs):
        """
        Sets the in_memory_area_in_gbs of this AutonomousDwDatabase.
        The area assigned to In-Memory tables in Autonomous AI Database.


        :param in_memory_area_in_gbs: The in_memory_area_in_gbs of this AutonomousDwDatabase.
        :type: int
        """
        self._in_memory_area_in_gbs = in_memory_area_in_gbs

    @property
    def next_long_term_backup_time_stamp(self):
        """
        Gets the next_long_term_backup_time_stamp of this AutonomousDwDatabase.
        The date and time when the next long-term backup would be created.


        :return: The next_long_term_backup_time_stamp of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._next_long_term_backup_time_stamp

    @next_long_term_backup_time_stamp.setter
    def next_long_term_backup_time_stamp(self, next_long_term_backup_time_stamp):
        """
        Sets the next_long_term_backup_time_stamp of this AutonomousDwDatabase.
        The date and time when the next long-term backup would be created.


        :param next_long_term_backup_time_stamp: The next_long_term_backup_time_stamp of this AutonomousDwDatabase.
        :type: datetime
        """
        self._next_long_term_backup_time_stamp = next_long_term_backup_time_stamp

    @property
    def long_term_backup_schedule(self):
        """
        Gets the long_term_backup_schedule of this AutonomousDwDatabase.

        :return: The long_term_backup_schedule of this AutonomousDwDatabase.
        :rtype: oci.database.models.LongTermBackUpScheduleDetails
        """
        return self._long_term_backup_schedule

    @long_term_backup_schedule.setter
    def long_term_backup_schedule(self, long_term_backup_schedule):
        """
        Sets the long_term_backup_schedule of this AutonomousDwDatabase.

        :param long_term_backup_schedule: The long_term_backup_schedule of this AutonomousDwDatabase.
        :type: oci.database.models.LongTermBackUpScheduleDetails
        """
        self._long_term_backup_schedule = long_term_backup_schedule

    @property
    def is_free_tier(self):
        """
        Gets the is_free_tier of this AutonomousDwDatabase.
        Indicates if this is an Always Free resource. The default value is false. Note that Always Free Autonomous AI Databases have 1 CPU and 20GB of memory. For Always Free databases, memory and CPU cannot be scaled.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, openMode, permissionLevel, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isLocalDataGuardEnabled


        :return: The is_free_tier of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_free_tier

    @is_free_tier.setter
    def is_free_tier(self, is_free_tier):
        """
        Sets the is_free_tier of this AutonomousDwDatabase.
        Indicates if this is an Always Free resource. The default value is false. Note that Always Free Autonomous AI Databases have 1 CPU and 20GB of memory. For Always Free databases, memory and CPU cannot be scaled.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, openMode, permissionLevel, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isLocalDataGuardEnabled


        :param is_free_tier: The is_free_tier of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_free_tier = is_free_tier

    @property
    def system_tags(self):
        """
        Gets the system_tags of this AutonomousDwDatabase.
        System tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see `Resource Tags`__.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm


        :return: The system_tags of this AutonomousDwDatabase.
        :rtype: dict(str, dict(str, object))
        """
        return self._system_tags

    @system_tags.setter
    def system_tags(self, system_tags):
        """
        Sets the system_tags of this AutonomousDwDatabase.
        System tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see `Resource Tags`__.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm


        :param system_tags: The system_tags of this AutonomousDwDatabase.
        :type: dict(str, dict(str, object))
        """
        self._system_tags = system_tags

    @property
    def time_reclamation_of_free_autonomous_database(self):
        """
        Gets the time_reclamation_of_free_autonomous_database of this AutonomousDwDatabase.
        The date and time the Always Free database will be stopped because of inactivity. If this time is reached without any database activity, the database will automatically be put into the STOPPED state.


        :return: The time_reclamation_of_free_autonomous_database of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_reclamation_of_free_autonomous_database

    @time_reclamation_of_free_autonomous_database.setter
    def time_reclamation_of_free_autonomous_database(self, time_reclamation_of_free_autonomous_database):
        """
        Sets the time_reclamation_of_free_autonomous_database of this AutonomousDwDatabase.
        The date and time the Always Free database will be stopped because of inactivity. If this time is reached without any database activity, the database will automatically be put into the STOPPED state.


        :param time_reclamation_of_free_autonomous_database: The time_reclamation_of_free_autonomous_database of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_reclamation_of_free_autonomous_database = time_reclamation_of_free_autonomous_database

    @property
    def time_deletion_of_free_autonomous_database(self):
        """
        Gets the time_deletion_of_free_autonomous_database of this AutonomousDwDatabase.
        The date and time the Always Free database will be automatically deleted because of inactivity. If the database is in the STOPPED state and without activity until this time, it will be deleted.


        :return: The time_deletion_of_free_autonomous_database of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_deletion_of_free_autonomous_database

    @time_deletion_of_free_autonomous_database.setter
    def time_deletion_of_free_autonomous_database(self, time_deletion_of_free_autonomous_database):
        """
        Sets the time_deletion_of_free_autonomous_database of this AutonomousDwDatabase.
        The date and time the Always Free database will be automatically deleted because of inactivity. If the database is in the STOPPED state and without activity until this time, it will be deleted.


        :param time_deletion_of_free_autonomous_database: The time_deletion_of_free_autonomous_database of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_deletion_of_free_autonomous_database = time_deletion_of_free_autonomous_database

    @property
    def backup_config(self):
        """
        Gets the backup_config of this AutonomousDwDatabase.

        :return: The backup_config of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseBackupConfig
        """
        return self._backup_config

    @backup_config.setter
    def backup_config(self, backup_config):
        """
        Sets the backup_config of this AutonomousDwDatabase.

        :param backup_config: The backup_config of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseBackupConfig
        """
        self._backup_config = backup_config

    @property
    def key_history_entry(self):
        """
        Gets the key_history_entry of this AutonomousDwDatabase.
        Key History Entry.


        :return: The key_history_entry of this AutonomousDwDatabase.
        :rtype: list[oci.database.models.AutonomousDatabaseKeyHistoryEntry]
        """
        return self._key_history_entry

    @key_history_entry.setter
    def key_history_entry(self, key_history_entry):
        """
        Sets the key_history_entry of this AutonomousDwDatabase.
        Key History Entry.


        :param key_history_entry: The key_history_entry of this AutonomousDwDatabase.
        :type: list[oci.database.models.AutonomousDatabaseKeyHistoryEntry]
        """
        self._key_history_entry = key_history_entry

    @property
    def encryption_key_history_entry(self):
        """
        Gets the encryption_key_history_entry of this AutonomousDwDatabase.
        Key History Entry.


        :return: The encryption_key_history_entry of this AutonomousDwDatabase.
        :rtype: list[oci.database.models.AutonomousDatabaseEncryptionKeyHistoryEntry]
        """
        return self._encryption_key_history_entry

    @encryption_key_history_entry.setter
    def encryption_key_history_entry(self, encryption_key_history_entry):
        """
        Sets the encryption_key_history_entry of this AutonomousDwDatabase.
        Key History Entry.


        :param encryption_key_history_entry: The encryption_key_history_entry of this AutonomousDwDatabase.
        :type: list[oci.database.models.AutonomousDatabaseEncryptionKeyHistoryEntry]
        """
        self._encryption_key_history_entry = encryption_key_history_entry

    @property
    def cpu_core_count(self):
        """
        Gets the cpu_core_count of this AutonomousDwDatabase.
        The number of CPU cores to be made available to the database. When the ECPU is selected, the value for cpuCoreCount is 0. For Autonomous AI Database on Dedicated Exadata infrastructure, the maximum number of cores is determined by the infrastructure shape. See `Characteristics of Infrastructure Shapes`__ for shape details.

        **Note:** This parameter cannot be used with the `ocpuCount` parameter.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/dedicated/adbde/


        :return: The cpu_core_count of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._cpu_core_count

    @cpu_core_count.setter
    def cpu_core_count(self, cpu_core_count):
        """
        Sets the cpu_core_count of this AutonomousDwDatabase.
        The number of CPU cores to be made available to the database. When the ECPU is selected, the value for cpuCoreCount is 0. For Autonomous AI Database on Dedicated Exadata infrastructure, the maximum number of cores is determined by the infrastructure shape. See `Characteristics of Infrastructure Shapes`__ for shape details.

        **Note:** This parameter cannot be used with the `ocpuCount` parameter.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/dedicated/adbde/


        :param cpu_core_count: The cpu_core_count of this AutonomousDwDatabase.
        :type: int
        """
        self._cpu_core_count = cpu_core_count

    @property
    def local_adg_auto_failover_max_data_loss_limit(self):
        """
        Gets the local_adg_auto_failover_max_data_loss_limit of this AutonomousDwDatabase.
        Parameter that allows users to select an acceptable maximum data loss limit in seconds, up to which Automatic Failover will be triggered when necessary for a Local Autonomous Data Guard


        :return: The local_adg_auto_failover_max_data_loss_limit of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._local_adg_auto_failover_max_data_loss_limit

    @local_adg_auto_failover_max_data_loss_limit.setter
    def local_adg_auto_failover_max_data_loss_limit(self, local_adg_auto_failover_max_data_loss_limit):
        """
        Sets the local_adg_auto_failover_max_data_loss_limit of this AutonomousDwDatabase.
        Parameter that allows users to select an acceptable maximum data loss limit in seconds, up to which Automatic Failover will be triggered when necessary for a Local Autonomous Data Guard


        :param local_adg_auto_failover_max_data_loss_limit: The local_adg_auto_failover_max_data_loss_limit of this AutonomousDwDatabase.
        :type: int
        """
        self._local_adg_auto_failover_max_data_loss_limit = local_adg_auto_failover_max_data_loss_limit

    @property
    def compute_model(self):
        """
        Gets the compute_model of this AutonomousDwDatabase.
        The compute model of the Autonomous AI Database. This is required if using the `computeCount` parameter. If using `cpuCoreCount` then it is an error to specify `computeModel` to a non-null value. ECPU compute model is the recommended model and OCPU compute model is legacy.

        Allowed values for this property are: "ECPU", "OCPU"


        :return: The compute_model of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._compute_model

    @compute_model.setter
    def compute_model(self, compute_model):
        """
        Sets the compute_model of this AutonomousDwDatabase.
        The compute model of the Autonomous AI Database. This is required if using the `computeCount` parameter. If using `cpuCoreCount` then it is an error to specify `computeModel` to a non-null value. ECPU compute model is the recommended model and OCPU compute model is legacy.


        :param compute_model: The compute_model of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["ECPU", "OCPU"]
        if not value_allowed_none_or_none_sentinel(compute_model, allowed_values):
            raise ValueError(
                f"Invalid value for `compute_model`, must be None or one of {allowed_values}"
            )
        self._compute_model = compute_model

    @property
    def compute_count(self):
        """
        Gets the compute_count of this AutonomousDwDatabase.
        The compute amount (CPUs) available to the database. Minimum and maximum values depend on the compute model and whether the database is an Autonomous AI Database Serverless instance or an Autonomous AI Database on Dedicated Exadata Infrastructure.
        The 'ECPU' compute model requires a minimum value of one, for databases in the elastic resource pool and minimum value of two, otherwise. Required when using the `computeModel` parameter. When using `cpuCoreCount` parameter, it is an error to specify computeCount to a non-null value. Providing `computeModel` and `computeCount` is the preferred method for both OCPU and ECPU.


        :return: The compute_count of this AutonomousDwDatabase.
        :rtype: float
        """
        return self._compute_count

    @compute_count.setter
    def compute_count(self, compute_count):
        """
        Sets the compute_count of this AutonomousDwDatabase.
        The compute amount (CPUs) available to the database. Minimum and maximum values depend on the compute model and whether the database is an Autonomous AI Database Serverless instance or an Autonomous AI Database on Dedicated Exadata Infrastructure.
        The 'ECPU' compute model requires a minimum value of one, for databases in the elastic resource pool and minimum value of two, otherwise. Required when using the `computeModel` parameter. When using `cpuCoreCount` parameter, it is an error to specify computeCount to a non-null value. Providing `computeModel` and `computeCount` is the preferred method for both OCPU and ECPU.


        :param compute_count: The compute_count of this AutonomousDwDatabase.
        :type: float
        """
        self._compute_count = compute_count

    @property
    def backup_retention_period_in_days(self):
        """
        Gets the backup_retention_period_in_days of this AutonomousDwDatabase.
        Retention period, in days, for long-term backups


        :return: The backup_retention_period_in_days of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._backup_retention_period_in_days

    @backup_retention_period_in_days.setter
    def backup_retention_period_in_days(self, backup_retention_period_in_days):
        """
        Sets the backup_retention_period_in_days of this AutonomousDwDatabase.
        Retention period, in days, for long-term backups


        :param backup_retention_period_in_days: The backup_retention_period_in_days of this AutonomousDwDatabase.
        :type: int
        """
        self._backup_retention_period_in_days = backup_retention_period_in_days

    @property
    def total_backup_storage_size_in_gbs(self):
        """
        Gets the total_backup_storage_size_in_gbs of this AutonomousDwDatabase.
        The backup storage to the database.


        :return: The total_backup_storage_size_in_gbs of this AutonomousDwDatabase.
        :rtype: float
        """
        return self._total_backup_storage_size_in_gbs

    @total_backup_storage_size_in_gbs.setter
    def total_backup_storage_size_in_gbs(self, total_backup_storage_size_in_gbs):
        """
        Sets the total_backup_storage_size_in_gbs of this AutonomousDwDatabase.
        The backup storage to the database.


        :param total_backup_storage_size_in_gbs: The total_backup_storage_size_in_gbs of this AutonomousDwDatabase.
        :type: float
        """
        self._total_backup_storage_size_in_gbs = total_backup_storage_size_in_gbs

    @property
    def ocpu_count(self):
        """
        Gets the ocpu_count of this AutonomousDwDatabase.
        The number of OCPU cores to be made available to the database.

        The following points apply:
        - For Autonomous AI Databases on Dedicated Exadata Infrastructure, to provision less than 1 core, enter a fractional value in an increment of 0.1. For example, you can provision 0.3 or 0.4 cores, but not 0.35 cores. (Note that fractional OCPU values are not supported for Autonomous AI Database Serverless instances.)
        - To provision cores, enter an integer between 1 and the maximum number of cores available for the infrastructure shape. For example, you can provision 2 cores or 3 cores, but not 2.5 cores. This applies to Autonomous AI Databases on both serverless and dedicated Exadata infrastructure.
        - For Autonomous AI Database Serverless instances, this parameter is not used.

        For Autonomous AI Databases on Dedicated Exadata Infrastructure, the maximum number of cores is determined by the infrastructure shape. See `Characteristics of Infrastructure Shapes`__ for shape details.

        **Note:** This parameter cannot be used with the `cpuCoreCount` parameter.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/dedicated/adbde/index.html


        :return: The ocpu_count of this AutonomousDwDatabase.
        :rtype: float
        """
        return self._ocpu_count

    @ocpu_count.setter
    def ocpu_count(self, ocpu_count):
        """
        Sets the ocpu_count of this AutonomousDwDatabase.
        The number of OCPU cores to be made available to the database.

        The following points apply:
        - For Autonomous AI Databases on Dedicated Exadata Infrastructure, to provision less than 1 core, enter a fractional value in an increment of 0.1. For example, you can provision 0.3 or 0.4 cores, but not 0.35 cores. (Note that fractional OCPU values are not supported for Autonomous AI Database Serverless instances.)
        - To provision cores, enter an integer between 1 and the maximum number of cores available for the infrastructure shape. For example, you can provision 2 cores or 3 cores, but not 2.5 cores. This applies to Autonomous AI Databases on both serverless and dedicated Exadata infrastructure.
        - For Autonomous AI Database Serverless instances, this parameter is not used.

        For Autonomous AI Databases on Dedicated Exadata Infrastructure, the maximum number of cores is determined by the infrastructure shape. See `Characteristics of Infrastructure Shapes`__ for shape details.

        **Note:** This parameter cannot be used with the `cpuCoreCount` parameter.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/dedicated/adbde/index.html


        :param ocpu_count: The ocpu_count of this AutonomousDwDatabase.
        :type: float
        """
        self._ocpu_count = ocpu_count

    @property
    def provisionable_cpus(self):
        """
        Gets the provisionable_cpus of this AutonomousDwDatabase.
        An array of CPU values that an Autonomous AI Database can be scaled to.


        :return: The provisionable_cpus of this AutonomousDwDatabase.
        :rtype: list[float]
        """
        return self._provisionable_cpus

    @provisionable_cpus.setter
    def provisionable_cpus(self, provisionable_cpus):
        """
        Sets the provisionable_cpus of this AutonomousDwDatabase.
        An array of CPU values that an Autonomous AI Database can be scaled to.


        :param provisionable_cpus: The provisionable_cpus of this AutonomousDwDatabase.
        :type: list[float]
        """
        self._provisionable_cpus = provisionable_cpus

    @property
    def data_storage_size_in_tbs(self):
        """
        **[Required]** Gets the data_storage_size_in_tbs of this AutonomousDwDatabase.
        The quantity of data in the database, in terabytes.

        The following points apply to Autonomous AI Databases on Serverless Infrastructure:
        - This is an integer field whose value remains null when the data size is in GBs and cannot be converted to TBs (by dividing the GB value by 1024) without rounding error.
        - To get the exact value of data storage size without rounding error, please see `dataStorageSizeInGBs` of Autonomous AI Database.


        :return: The data_storage_size_in_tbs of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._data_storage_size_in_tbs

    @data_storage_size_in_tbs.setter
    def data_storage_size_in_tbs(self, data_storage_size_in_tbs):
        """
        Sets the data_storage_size_in_tbs of this AutonomousDwDatabase.
        The quantity of data in the database, in terabytes.

        The following points apply to Autonomous AI Databases on Serverless Infrastructure:
        - This is an integer field whose value remains null when the data size is in GBs and cannot be converted to TBs (by dividing the GB value by 1024) without rounding error.
        - To get the exact value of data storage size without rounding error, please see `dataStorageSizeInGBs` of Autonomous AI Database.


        :param data_storage_size_in_tbs: The data_storage_size_in_tbs of this AutonomousDwDatabase.
        :type: int
        """
        self._data_storage_size_in_tbs = data_storage_size_in_tbs

    @property
    def memory_per_oracle_compute_unit_in_gbs(self):
        """
        Gets the memory_per_oracle_compute_unit_in_gbs of this AutonomousDwDatabase.
        The amount of memory (in GBs rounded off to nearest integer value) enabled per ECPU or OCPU. This is deprecated. Please refer to memoryPerComputeUnitInGBs for accurate value.


        :return: The memory_per_oracle_compute_unit_in_gbs of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._memory_per_oracle_compute_unit_in_gbs

    @memory_per_oracle_compute_unit_in_gbs.setter
    def memory_per_oracle_compute_unit_in_gbs(self, memory_per_oracle_compute_unit_in_gbs):
        """
        Sets the memory_per_oracle_compute_unit_in_gbs of this AutonomousDwDatabase.
        The amount of memory (in GBs rounded off to nearest integer value) enabled per ECPU or OCPU. This is deprecated. Please refer to memoryPerComputeUnitInGBs for accurate value.


        :param memory_per_oracle_compute_unit_in_gbs: The memory_per_oracle_compute_unit_in_gbs of this AutonomousDwDatabase.
        :type: int
        """
        self._memory_per_oracle_compute_unit_in_gbs = memory_per_oracle_compute_unit_in_gbs

    @property
    def memory_per_compute_unit_in_gbs(self):
        """
        Gets the memory_per_compute_unit_in_gbs of this AutonomousDwDatabase.
        The amount of memory (in GBs) to be enabled per OCPU or ECPU.


        :return: The memory_per_compute_unit_in_gbs of this AutonomousDwDatabase.
        :rtype: float
        """
        return self._memory_per_compute_unit_in_gbs

    @memory_per_compute_unit_in_gbs.setter
    def memory_per_compute_unit_in_gbs(self, memory_per_compute_unit_in_gbs):
        """
        Sets the memory_per_compute_unit_in_gbs of this AutonomousDwDatabase.
        The amount of memory (in GBs) to be enabled per OCPU or ECPU.


        :param memory_per_compute_unit_in_gbs: The memory_per_compute_unit_in_gbs of this AutonomousDwDatabase.
        :type: float
        """
        self._memory_per_compute_unit_in_gbs = memory_per_compute_unit_in_gbs

    @property
    def data_storage_size_in_gbs(self):
        """
        Gets the data_storage_size_in_gbs of this AutonomousDwDatabase.
        The quantity of data in the database, in gigabytes.

        For Autonomous AI Transaction Processing databases using ECPUs on Serverless Infrastructure, this value is always populated. In all the other cases, this value will be null and `dataStorageSizeInTBs` will be populated instead.


        :return: The data_storage_size_in_gbs of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._data_storage_size_in_gbs

    @data_storage_size_in_gbs.setter
    def data_storage_size_in_gbs(self, data_storage_size_in_gbs):
        """
        Sets the data_storage_size_in_gbs of this AutonomousDwDatabase.
        The quantity of data in the database, in gigabytes.

        For Autonomous AI Transaction Processing databases using ECPUs on Serverless Infrastructure, this value is always populated. In all the other cases, this value will be null and `dataStorageSizeInTBs` will be populated instead.


        :param data_storage_size_in_gbs: The data_storage_size_in_gbs of this AutonomousDwDatabase.
        :type: int
        """
        self._data_storage_size_in_gbs = data_storage_size_in_gbs

    @property
    def used_data_storage_size_in_gbs(self):
        """
        Gets the used_data_storage_size_in_gbs of this AutonomousDwDatabase.
        The storage space consumed by Autonomous AI Database in GBs.


        :return: The used_data_storage_size_in_gbs of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._used_data_storage_size_in_gbs

    @used_data_storage_size_in_gbs.setter
    def used_data_storage_size_in_gbs(self, used_data_storage_size_in_gbs):
        """
        Sets the used_data_storage_size_in_gbs of this AutonomousDwDatabase.
        The storage space consumed by Autonomous AI Database in GBs.


        :param used_data_storage_size_in_gbs: The used_data_storage_size_in_gbs of this AutonomousDwDatabase.
        :type: int
        """
        self._used_data_storage_size_in_gbs = used_data_storage_size_in_gbs

    @property
    def infrastructure_type(self):
        """
        Gets the infrastructure_type of this AutonomousDwDatabase.
        The infrastructure type this resource belongs to.

        Allowed values for this property are: "CLOUD", "CLOUD_AT_CUSTOMER"


        :return: The infrastructure_type of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._infrastructure_type

    @infrastructure_type.setter
    def infrastructure_type(self, infrastructure_type):
        """
        Sets the infrastructure_type of this AutonomousDwDatabase.
        The infrastructure type this resource belongs to.


        :param infrastructure_type: The infrastructure_type of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["CLOUD", "CLOUD_AT_CUSTOMER"]
        if not value_allowed_none_or_none_sentinel(infrastructure_type, allowed_values):
            raise ValueError(
                f"Invalid value for `infrastructure_type`, must be None or one of {allowed_values}"
            )
        self._infrastructure_type = infrastructure_type

    @property
    def is_dedicated(self):
        """
        Gets the is_dedicated of this AutonomousDwDatabase.
        True if the database uses `dedicated Exadata infrastructure`__.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html


        :return: The is_dedicated of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_dedicated

    @is_dedicated.setter
    def is_dedicated(self, is_dedicated):
        """
        Sets the is_dedicated of this AutonomousDwDatabase.
        True if the database uses `dedicated Exadata infrastructure`__.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html


        :param is_dedicated: The is_dedicated of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_dedicated = is_dedicated

    @property
    def autonomous_container_database_id(self):
        """
        Gets the autonomous_container_database_id of this AutonomousDwDatabase.
        The Autonomous Container Database `OCID`__. Used only by Autonomous AI Database on Dedicated Exadata Infrastructure.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The autonomous_container_database_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._autonomous_container_database_id

    @autonomous_container_database_id.setter
    def autonomous_container_database_id(self, autonomous_container_database_id):
        """
        Sets the autonomous_container_database_id of this AutonomousDwDatabase.
        The Autonomous Container Database `OCID`__. Used only by Autonomous AI Database on Dedicated Exadata Infrastructure.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param autonomous_container_database_id: The autonomous_container_database_id of this AutonomousDwDatabase.
        :type: str
        """
        self._autonomous_container_database_id = autonomous_container_database_id

    @property
    def is_backup_retention_locked(self):
        """
        Gets the is_backup_retention_locked of this AutonomousDwDatabase.
        Indicates if the Autonomous AI Database is backup retention locked.


        :return: The is_backup_retention_locked of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_backup_retention_locked

    @is_backup_retention_locked.setter
    def is_backup_retention_locked(self, is_backup_retention_locked):
        """
        Sets the is_backup_retention_locked of this AutonomousDwDatabase.
        Indicates if the Autonomous AI Database is backup retention locked.


        :param is_backup_retention_locked: The is_backup_retention_locked of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_backup_retention_locked = is_backup_retention_locked

    @property
    def time_undeleted(self):
        """
        Gets the time_undeleted of this AutonomousDwDatabase.
        The date and time the Autonomous AI Database was most recently undeleted.


        :return: The time_undeleted of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_undeleted

    @time_undeleted.setter
    def time_undeleted(self, time_undeleted):
        """
        Sets the time_undeleted of this AutonomousDwDatabase.
        The date and time the Autonomous AI Database was most recently undeleted.


        :param time_undeleted: The time_undeleted of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_undeleted = time_undeleted

    @property
    def time_earliest_available_db_version_upgrade(self):
        """
        Gets the time_earliest_available_db_version_upgrade of this AutonomousDwDatabase.
        The earliest(min) date and time the Autonomous AI Database can be scheduled to upgrade to 26ai.


        :return: The time_earliest_available_db_version_upgrade of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_earliest_available_db_version_upgrade

    @time_earliest_available_db_version_upgrade.setter
    def time_earliest_available_db_version_upgrade(self, time_earliest_available_db_version_upgrade):
        """
        Sets the time_earliest_available_db_version_upgrade of this AutonomousDwDatabase.
        The earliest(min) date and time the Autonomous AI Database can be scheduled to upgrade to 26ai.


        :param time_earliest_available_db_version_upgrade: The time_earliest_available_db_version_upgrade of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_earliest_available_db_version_upgrade = time_earliest_available_db_version_upgrade

    @property
    def time_latest_available_db_version_upgrade(self):
        """
        Gets the time_latest_available_db_version_upgrade of this AutonomousDwDatabase.
        The max date and time the Autonomous AI Database can be scheduled to upgrade to 26ai.


        :return: The time_latest_available_db_version_upgrade of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_latest_available_db_version_upgrade

    @time_latest_available_db_version_upgrade.setter
    def time_latest_available_db_version_upgrade(self, time_latest_available_db_version_upgrade):
        """
        Sets the time_latest_available_db_version_upgrade of this AutonomousDwDatabase.
        The max date and time the Autonomous AI Database can be scheduled to upgrade to 26ai.


        :param time_latest_available_db_version_upgrade: The time_latest_available_db_version_upgrade of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_latest_available_db_version_upgrade = time_latest_available_db_version_upgrade

    @property
    def time_scheduled_db_version_upgrade(self):
        """
        Gets the time_scheduled_db_version_upgrade of this AutonomousDwDatabase.
        The date and time the Autonomous AI Database scheduled to upgrade to 26ai.


        :return: The time_scheduled_db_version_upgrade of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_scheduled_db_version_upgrade

    @time_scheduled_db_version_upgrade.setter
    def time_scheduled_db_version_upgrade(self, time_scheduled_db_version_upgrade):
        """
        Sets the time_scheduled_db_version_upgrade of this AutonomousDwDatabase.
        The date and time the Autonomous AI Database scheduled to upgrade to 26ai.


        :param time_scheduled_db_version_upgrade: The time_scheduled_db_version_upgrade of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_scheduled_db_version_upgrade = time_scheduled_db_version_upgrade

    @property
    def time_created(self):
        """
        Gets the time_created of this AutonomousDwDatabase.
        The date and time the Autonomous AI Database was created.


        :return: The time_created of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_created

    @time_created.setter
    def time_created(self, time_created):
        """
        Sets the time_created of this AutonomousDwDatabase.
        The date and time the Autonomous AI Database was created.


        :param time_created: The time_created of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_created = time_created

    @property
    def display_name(self):
        """
        Gets the display_name of this AutonomousDwDatabase.
        The user-friendly name for the Autonomous AI Database. The name does not have to be unique.


        :return: The display_name of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._display_name

    @display_name.setter
    def display_name(self, display_name):
        """
        Sets the display_name of this AutonomousDwDatabase.
        The user-friendly name for the Autonomous AI Database. The name does not have to be unique.


        :param display_name: The display_name of this AutonomousDwDatabase.
        :type: str
        """
        self._display_name = display_name

    @property
    def service_console_url(self):
        """
        Gets the service_console_url of this AutonomousDwDatabase.
        The URL of the Service Console for the Autonomous AI Database.


        :return: The service_console_url of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._service_console_url

    @service_console_url.setter
    def service_console_url(self, service_console_url):
        """
        Sets the service_console_url of this AutonomousDwDatabase.
        The URL of the Service Console for the Autonomous AI Database.


        :param service_console_url: The service_console_url of this AutonomousDwDatabase.
        :type: str
        """
        self._service_console_url = service_console_url

    @property
    def connection_strings(self):
        """
        Gets the connection_strings of this AutonomousDwDatabase.
        The connection string used to connect to the Autonomous AI Database. The username for the Service Console is ADMIN. Use the password you entered when creating the Autonomous AI Database for the password value.


        :return: The connection_strings of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseConnectionStrings
        """
        return self._connection_strings

    @connection_strings.setter
    def connection_strings(self, connection_strings):
        """
        Sets the connection_strings of this AutonomousDwDatabase.
        The connection string used to connect to the Autonomous AI Database. The username for the Service Console is ADMIN. Use the password you entered when creating the Autonomous AI Database for the password value.


        :param connection_strings: The connection_strings of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseConnectionStrings
        """
        self._connection_strings = connection_strings

    @property
    def connection_urls(self):
        """
        Gets the connection_urls of this AutonomousDwDatabase.

        :return: The connection_urls of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseConnectionUrls
        """
        return self._connection_urls

    @connection_urls.setter
    def connection_urls(self, connection_urls):
        """
        Sets the connection_urls of this AutonomousDwDatabase.

        :param connection_urls: The connection_urls of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseConnectionUrls
        """
        self._connection_urls = connection_urls

    @property
    def public_connection_urls(self):
        """
        Gets the public_connection_urls of this AutonomousDwDatabase.
        The Public URLs of Private Endpoint database for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from a Compute instance within your VCN or that has a direct connection to your VCN.


        :return: The public_connection_urls of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseConnectionUrls
        """
        return self._public_connection_urls

    @public_connection_urls.setter
    def public_connection_urls(self, public_connection_urls):
        """
        Sets the public_connection_urls of this AutonomousDwDatabase.
        The Public URLs of Private Endpoint database for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from a Compute instance within your VCN or that has a direct connection to your VCN.


        :param public_connection_urls: The public_connection_urls of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseConnectionUrls
        """
        self._public_connection_urls = public_connection_urls

    @property
    def vanity_connection_urls(self):
        """
        Gets the vanity_connection_urls of this AutonomousDwDatabase.

        :return: The vanity_connection_urls of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseConnectionUrls
        """
        return self._vanity_connection_urls

    @vanity_connection_urls.setter
    def vanity_connection_urls(self, vanity_connection_urls):
        """
        Sets the vanity_connection_urls of this AutonomousDwDatabase.

        :param vanity_connection_urls: The vanity_connection_urls of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseConnectionUrls
        """
        self._vanity_connection_urls = vanity_connection_urls

    @property
    def license_model(self):
        """
        Gets the license_model of this AutonomousDwDatabase.
        The Oracle license model that applies to the Oracle Autonomous AI Database. Bring your own license (BYOL) allows you to apply your current on-premises Oracle software licenses to equivalent, highly automated Oracle services in the cloud.
        License Included allows you to subscribe to new Oracle AI Database software licenses and the Oracle AI Database service.
        Note that when provisioning an `Autonomous AI Database on dedicated Exadata infrastructure`__, this attribute must be null. It is already set at the
        Autonomous Exadata Infrastructure level. When provisioning an `Autonomous AI Database Serverless]`__ database, if a value is not specified, the system defaults the value to `BRING_YOUR_OWN_LICENSE`. Bring your own license (BYOL) also allows you to select the DB edition using the optional parameter.

        This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, dataStorageSizeInTBs, adminPassword, isMTLSConnectionRequired, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html
        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html

        Allowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"


        :return: The license_model of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._license_model

    @license_model.setter
    def license_model(self, license_model):
        """
        Sets the license_model of this AutonomousDwDatabase.
        The Oracle license model that applies to the Oracle Autonomous AI Database. Bring your own license (BYOL) allows you to apply your current on-premises Oracle software licenses to equivalent, highly automated Oracle services in the cloud.
        License Included allows you to subscribe to new Oracle AI Database software licenses and the Oracle AI Database service.
        Note that when provisioning an `Autonomous AI Database on dedicated Exadata infrastructure`__, this attribute must be null. It is already set at the
        Autonomous Exadata Infrastructure level. When provisioning an `Autonomous AI Database Serverless]`__ database, if a value is not specified, the system defaults the value to `BRING_YOUR_OWN_LICENSE`. Bring your own license (BYOL) also allows you to select the DB edition using the optional parameter.

        This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, dataStorageSizeInTBs, adminPassword, isMTLSConnectionRequired, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html
        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html


        :param license_model: The license_model of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"]
        if not value_allowed_none_or_none_sentinel(license_model, allowed_values):
            raise ValueError(
                f"Invalid value for `license_model`, must be None or one of {allowed_values}"
            )
        self._license_model = license_model

    @property
    def byol_compute_count_limit(self):
        """
        Gets the byol_compute_count_limit of this AutonomousDwDatabase.
        The maximum number of CPUs allowed with a Bring Your Own License (BYOL), including those used for auto-scaling, disaster recovery, tools, etc. Any CPU usage above this limit is considered as License Included and billed.


        :return: The byol_compute_count_limit of this AutonomousDwDatabase.
        :rtype: float
        """
        return self._byol_compute_count_limit

    @byol_compute_count_limit.setter
    def byol_compute_count_limit(self, byol_compute_count_limit):
        """
        Sets the byol_compute_count_limit of this AutonomousDwDatabase.
        The maximum number of CPUs allowed with a Bring Your Own License (BYOL), including those used for auto-scaling, disaster recovery, tools, etc. Any CPU usage above this limit is considered as License Included and billed.


        :param byol_compute_count_limit: The byol_compute_count_limit of this AutonomousDwDatabase.
        :type: float
        """
        self._byol_compute_count_limit = byol_compute_count_limit

    @property
    def used_data_storage_size_in_tbs(self):
        """
        Gets the used_data_storage_size_in_tbs of this AutonomousDwDatabase.
        The amount of storage that has been used for Autonomous AI Databases in dedicated infrastructure, in terabytes.


        :return: The used_data_storage_size_in_tbs of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._used_data_storage_size_in_tbs

    @used_data_storage_size_in_tbs.setter
    def used_data_storage_size_in_tbs(self, used_data_storage_size_in_tbs):
        """
        Sets the used_data_storage_size_in_tbs of this AutonomousDwDatabase.
        The amount of storage that has been used for Autonomous AI Databases in dedicated infrastructure, in terabytes.


        :param used_data_storage_size_in_tbs: The used_data_storage_size_in_tbs of this AutonomousDwDatabase.
        :type: int
        """
        self._used_data_storage_size_in_tbs = used_data_storage_size_in_tbs

    @property
    def freeform_tags(self):
        """
        Gets the freeform_tags of this AutonomousDwDatabase.
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
        For more information, see `Resource Tags`__.

        Example: `{\"Department\": \"Finance\"}`

        __ https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm


        :return: The freeform_tags of this AutonomousDwDatabase.
        :rtype: dict(str, str)
        """
        return self._freeform_tags

    @freeform_tags.setter
    def freeform_tags(self, freeform_tags):
        """
        Sets the freeform_tags of this AutonomousDwDatabase.
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
        For more information, see `Resource Tags`__.

        Example: `{\"Department\": \"Finance\"}`

        __ https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm


        :param freeform_tags: The freeform_tags of this AutonomousDwDatabase.
        :type: dict(str, str)
        """
        self._freeform_tags = freeform_tags

    @property
    def defined_tags(self):
        """
        Gets the defined_tags of this AutonomousDwDatabase.
        Defined tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see `Resource Tags`__.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm


        :return: The defined_tags of this AutonomousDwDatabase.
        :rtype: dict(str, dict(str, object))
        """
        return self._defined_tags

    @defined_tags.setter
    def defined_tags(self, defined_tags):
        """
        Sets the defined_tags of this AutonomousDwDatabase.
        Defined tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see `Resource Tags`__.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm


        :param defined_tags: The defined_tags of this AutonomousDwDatabase.
        :type: dict(str, dict(str, object))
        """
        self._defined_tags = defined_tags

    @property
    def security_attributes(self):
        """
        Gets the security_attributes of this AutonomousDwDatabase.
        Security Attributes for this resource. Each key is predefined and scoped to a namespace.
        For more information, see `Resource Tags`__.
        Example: `{\"Oracle-ZPR\": {\"MaxEgressCount\": {\"value\": \"42\", \"mode\": \"audit\"}}}`

        __ https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm


        :return: The security_attributes of this AutonomousDwDatabase.
        :rtype: dict(str, dict(str, object))
        """
        return self._security_attributes

    @security_attributes.setter
    def security_attributes(self, security_attributes):
        """
        Sets the security_attributes of this AutonomousDwDatabase.
        Security Attributes for this resource. Each key is predefined and scoped to a namespace.
        For more information, see `Resource Tags`__.
        Example: `{\"Oracle-ZPR\": {\"MaxEgressCount\": {\"value\": \"42\", \"mode\": \"audit\"}}}`

        __ https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm


        :param security_attributes: The security_attributes of this AutonomousDwDatabase.
        :type: dict(str, dict(str, object))
        """
        self._security_attributes = security_attributes

    @property
    def subnet_id(self):
        """
        Gets the subnet_id of this AutonomousDwDatabase.
        The `OCID`__ of the subnet the resource is associated with.

        **Subnet Restrictions:**
        - For bare metal DB systems and for single node virtual machine DB systems, do not use a subnet that overlaps with 192.168.16.16/28.
        - For Exadata and virtual machine 2-node RAC systems, do not use a subnet that overlaps with 192.168.128.0/20.
        - For Autonomous AI Database, setting this will disable public secure access to the database.

        These subnets are used by the Oracle Clusterware private interconnect on the database instance.
        Specifying an overlapping subnet will cause the private interconnect to malfunction.
        This restriction applies to both the client subnet and the backup subnet.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The subnet_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._subnet_id

    @subnet_id.setter
    def subnet_id(self, subnet_id):
        """
        Sets the subnet_id of this AutonomousDwDatabase.
        The `OCID`__ of the subnet the resource is associated with.

        **Subnet Restrictions:**
        - For bare metal DB systems and for single node virtual machine DB systems, do not use a subnet that overlaps with 192.168.16.16/28.
        - For Exadata and virtual machine 2-node RAC systems, do not use a subnet that overlaps with 192.168.128.0/20.
        - For Autonomous AI Database, setting this will disable public secure access to the database.

        These subnets are used by the Oracle Clusterware private interconnect on the database instance.
        Specifying an overlapping subnet will cause the private interconnect to malfunction.
        This restriction applies to both the client subnet and the backup subnet.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param subnet_id: The subnet_id of this AutonomousDwDatabase.
        :type: str
        """
        self._subnet_id = subnet_id

    @property
    def nsg_ids(self):
        """
        Gets the nsg_ids of this AutonomousDwDatabase.
        The list of `OCIDs`__ for the network security groups (NSGs) to which this resource belongs. Setting this to an empty list removes all resources from all NSGs. For more information about NSGs, see `Security Rules`__.
        **NsgIds restrictions:**
        - A network security group (NSG) is optional for Autonomous AI Databases with private access. The nsgIds list can be empty.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm
        __ https://docs.oracle.com/iaas/Content/Network/Concepts/securityrules.htm


        :return: The nsg_ids of this AutonomousDwDatabase.
        :rtype: list[str]
        """
        return self._nsg_ids

    @nsg_ids.setter
    def nsg_ids(self, nsg_ids):
        """
        Sets the nsg_ids of this AutonomousDwDatabase.
        The list of `OCIDs`__ for the network security groups (NSGs) to which this resource belongs. Setting this to an empty list removes all resources from all NSGs. For more information about NSGs, see `Security Rules`__.
        **NsgIds restrictions:**
        - A network security group (NSG) is optional for Autonomous AI Databases with private access. The nsgIds list can be empty.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm
        __ https://docs.oracle.com/iaas/Content/Network/Concepts/securityrules.htm


        :param nsg_ids: The nsg_ids of this AutonomousDwDatabase.
        :type: list[str]
        """
        self._nsg_ids = nsg_ids

    @property
    def private_endpoint(self):
        """
        Gets the private_endpoint of this AutonomousDwDatabase.
        The private endpoint for the resource.


        :return: The private_endpoint of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._private_endpoint

    @private_endpoint.setter
    def private_endpoint(self, private_endpoint):
        """
        Sets the private_endpoint of this AutonomousDwDatabase.
        The private endpoint for the resource.


        :param private_endpoint: The private_endpoint of this AutonomousDwDatabase.
        :type: str
        """
        self._private_endpoint = private_endpoint

    @property
    def public_endpoint(self):
        """
        Gets the public_endpoint of this AutonomousDwDatabase.
        The public endpoint for the private endpoint enabled resource.


        :return: The public_endpoint of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._public_endpoint

    @public_endpoint.setter
    def public_endpoint(self, public_endpoint):
        """
        Sets the public_endpoint of this AutonomousDwDatabase.
        The public endpoint for the private endpoint enabled resource.


        :param public_endpoint: The public_endpoint of this AutonomousDwDatabase.
        :type: str
        """
        self._public_endpoint = public_endpoint

    @property
    def private_endpoint_label(self):
        """
        Gets the private_endpoint_label of this AutonomousDwDatabase.
        The resource's private endpoint label.
        - Setting the endpoint label to a non-empty string creates a private endpoint database.
        - Resetting the endpoint label to an empty string, after the creation of the private endpoint database, changes the private endpoint database to a public endpoint database.
        - Setting the endpoint label to a non-empty string value, updates to a new private endpoint database, when the database is disabled and re-enabled.

        This setting cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, dbWorkload, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.


        :return: The private_endpoint_label of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._private_endpoint_label

    @private_endpoint_label.setter
    def private_endpoint_label(self, private_endpoint_label):
        """
        Sets the private_endpoint_label of this AutonomousDwDatabase.
        The resource's private endpoint label.
        - Setting the endpoint label to a non-empty string creates a private endpoint database.
        - Resetting the endpoint label to an empty string, after the creation of the private endpoint database, changes the private endpoint database to a public endpoint database.
        - Setting the endpoint label to a non-empty string value, updates to a new private endpoint database, when the database is disabled and re-enabled.

        This setting cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, dbWorkload, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.


        :param private_endpoint_label: The private_endpoint_label of this AutonomousDwDatabase.
        :type: str
        """
        self._private_endpoint_label = private_endpoint_label

    @property
    def private_endpoint_ip(self):
        """
        Gets the private_endpoint_ip of this AutonomousDwDatabase.
        The private endpoint Ip address for the resource.


        :return: The private_endpoint_ip of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._private_endpoint_ip

    @private_endpoint_ip.setter
    def private_endpoint_ip(self, private_endpoint_ip):
        """
        Sets the private_endpoint_ip of this AutonomousDwDatabase.
        The private endpoint Ip address for the resource.


        :param private_endpoint_ip: The private_endpoint_ip of this AutonomousDwDatabase.
        :type: str
        """
        self._private_endpoint_ip = private_endpoint_ip

    @property
    def db_version(self):
        """
        Gets the db_version of this AutonomousDwDatabase.
        A valid Oracle AI Database version for Autonomous AI Database.
        When you specify 23ai for dbversion, the system will provision a 23ai database, but the UI will display it as 26ai.
        When you specify 26ai for dbversion, the system will provision and display a 26ai database as expected.
        For new databases, it is recommended to use either 19c or 26ai.

        **Note** Starting December 2026, 23ai will not be supported as a valid value for this parameter.


        :return: The db_version of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._db_version

    @db_version.setter
    def db_version(self, db_version):
        """
        Sets the db_version of this AutonomousDwDatabase.
        A valid Oracle AI Database version for Autonomous AI Database.
        When you specify 23ai for dbversion, the system will provision a 23ai database, but the UI will display it as 26ai.
        When you specify 26ai for dbversion, the system will provision and display a 26ai database as expected.
        For new databases, it is recommended to use either 19c or 26ai.

        **Note** Starting December 2026, 23ai will not be supported as a valid value for this parameter.


        :param db_version: The db_version of this AutonomousDwDatabase.
        :type: str
        """
        self._db_version = db_version

    @property
    def is_preview(self):
        """
        Gets the is_preview of this AutonomousDwDatabase.
        Indicates if the Autonomous AI Database version is a preview version.


        :return: The is_preview of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_preview

    @is_preview.setter
    def is_preview(self, is_preview):
        """
        Sets the is_preview of this AutonomousDwDatabase.
        Indicates if the Autonomous AI Database version is a preview version.


        :param is_preview: The is_preview of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_preview = is_preview

    @property
    def db_workload(self):
        """
        Gets the db_workload of this AutonomousDwDatabase.
        The Autonomous AI Database workload type. The following values are valid:
        - OLTP - indicates an Autonomous AI Transaction Processing database
        - DW - indicates an Autonomous AI Lakehouse database
        - AJD - indicates an Autonomous AI JSON Database
        - APEX - indicates an Autonomous AI Database with the Oracle APEX AI Application Development workload type.
        - LH - indicates an Oracle Autonomous AI Lakehouse database

        **Note** Starting December 2026, DW will not be supported as a valid value for this parameter.
        When creating an Autonomous AI Database, if this parameter is not specified, the default value is `OLTP`.


        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.

        Allowed values for this property are: "OLTP", "DW", "AJD", "APEX", "LH"


        :return: The db_workload of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._db_workload

    @db_workload.setter
    def db_workload(self, db_workload):
        """
        Sets the db_workload of this AutonomousDwDatabase.
        The Autonomous AI Database workload type. The following values are valid:
        - OLTP - indicates an Autonomous AI Transaction Processing database
        - DW - indicates an Autonomous AI Lakehouse database
        - AJD - indicates an Autonomous AI JSON Database
        - APEX - indicates an Autonomous AI Database with the Oracle APEX AI Application Development workload type.
        - LH - indicates an Oracle Autonomous AI Lakehouse database

        **Note** Starting December 2026, DW will not be supported as a valid value for this parameter.
        When creating an Autonomous AI Database, if this parameter is not specified, the default value is `OLTP`.


        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.


        :param db_workload: The db_workload of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["OLTP", "DW", "AJD", "APEX", "LH"]
        if not value_allowed_none_or_none_sentinel(db_workload, allowed_values):
            raise ValueError(
                f"Invalid value for `db_workload`, must be None or one of {allowed_values}"
            )
        self._db_workload = db_workload

    @property
    def is_dev_tier(self):
        """
        Gets the is_dev_tier of this AutonomousDwDatabase.
        Autonomous AI Database for Developers are fixed-shape Autonomous AI Databases that developers can use to build and test new applications. On Serverless, these are low-cost and billed per instance, on Dedicated and Cloud@Customer there is no additional cost to create Developer databases. Developer databases come with limited resources and is not intended for large-scale testing and production deployments. When you need more compute or storage resources, you may upgrade to a full paid production database.


        :return: The is_dev_tier of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_dev_tier

    @is_dev_tier.setter
    def is_dev_tier(self, is_dev_tier):
        """
        Sets the is_dev_tier of this AutonomousDwDatabase.
        Autonomous AI Database for Developers are fixed-shape Autonomous AI Databases that developers can use to build and test new applications. On Serverless, these are low-cost and billed per instance, on Dedicated and Cloud@Customer there is no additional cost to create Developer databases. Developer databases come with limited resources and is not intended for large-scale testing and production deployments. When you need more compute or storage resources, you may upgrade to a full paid production database.


        :param is_dev_tier: The is_dev_tier of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_dev_tier = is_dev_tier

    @property
    def is_access_control_enabled(self):
        """
        Gets the is_access_control_enabled of this AutonomousDwDatabase.
        Indicates if the database-level access control is enabled.
        If disabled, database access is defined by the network security rules.
        If enabled, database access is restricted to the IP addresses defined by the rules specified with the `whitelistedIps` property. While specifying `whitelistedIps` rules is optional,
         if database-level access control is enabled and no rules are specified, the database will become inaccessible. The rules can be added later using the `UpdateAutonomousDatabase` API operation or edit option in console.
        When creating a database clone, the desired access control setting should be specified. By default, database-level access control will be disabled for the clone.

        This property is applicable only to Autonomous AI Databases on the Exadata Cloud@Customer platform. For Autonomous AI Database Serverless instances, `whitelistedIps` is used.


        :return: The is_access_control_enabled of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_access_control_enabled

    @is_access_control_enabled.setter
    def is_access_control_enabled(self, is_access_control_enabled):
        """
        Sets the is_access_control_enabled of this AutonomousDwDatabase.
        Indicates if the database-level access control is enabled.
        If disabled, database access is defined by the network security rules.
        If enabled, database access is restricted to the IP addresses defined by the rules specified with the `whitelistedIps` property. While specifying `whitelistedIps` rules is optional,
         if database-level access control is enabled and no rules are specified, the database will become inaccessible. The rules can be added later using the `UpdateAutonomousDatabase` API operation or edit option in console.
        When creating a database clone, the desired access control setting should be specified. By default, database-level access control will be disabled for the clone.

        This property is applicable only to Autonomous AI Databases on the Exadata Cloud@Customer platform. For Autonomous AI Database Serverless instances, `whitelistedIps` is used.


        :param is_access_control_enabled: The is_access_control_enabled of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_access_control_enabled = is_access_control_enabled

    @property
    def whitelisted_ips(self):
        """
        Gets the whitelisted_ips of this AutonomousDwDatabase.
        The client IP access control list (ACL). This feature is available for `Autonomous AI Database Serverless]`__ and on Exadata Cloud@Customer.
        Only clients connecting from an IP address included in the ACL may access the Autonomous AI Database instance.
        If `arePrimaryWhitelistedIpsUsed` is 'TRUE' then Autonomous AI Database uses this primary's IP access control list (ACL) for the disaster recovery peer called `standbywhitelistedips`.

        For Autonomous AI Database Serverless, this is an array of CIDR (classless inter-domain routing) notations for a subnet or VCN OCID (virtual cloud network Oracle Cloud ID).
        Multiple IPs and VCN OCIDs should be separate strings separated by commas, but if it\u2019s other configurations that need multiple pieces of information then its each piece is connected with semicolon (;) as a delimiter.
        Example: `[\"1.1.1.1\",\"1.1.1.0/24\",\"ocid1.vcn.oc1.sea.<unique_id>\",\"ocid1.vcn.oc1.sea.<unique_id1>;1.1.1.1\",\"ocid1.vcn.oc1.sea.<unique_id2>;1.1.0.0/16\"]`
        For Exadata Cloud@Customer, this is an array of IP addresses or CIDR notations.
        Example: `[\"1.1.1.1\",\"1.1.1.0/24\",\"1.1.2.25\"]`

        For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html


        :return: The whitelisted_ips of this AutonomousDwDatabase.
        :rtype: list[str]
        """
        return self._whitelisted_ips

    @whitelisted_ips.setter
    def whitelisted_ips(self, whitelisted_ips):
        """
        Sets the whitelisted_ips of this AutonomousDwDatabase.
        The client IP access control list (ACL). This feature is available for `Autonomous AI Database Serverless]`__ and on Exadata Cloud@Customer.
        Only clients connecting from an IP address included in the ACL may access the Autonomous AI Database instance.
        If `arePrimaryWhitelistedIpsUsed` is 'TRUE' then Autonomous AI Database uses this primary's IP access control list (ACL) for the disaster recovery peer called `standbywhitelistedips`.

        For Autonomous AI Database Serverless, this is an array of CIDR (classless inter-domain routing) notations for a subnet or VCN OCID (virtual cloud network Oracle Cloud ID).
        Multiple IPs and VCN OCIDs should be separate strings separated by commas, but if it\u2019s other configurations that need multiple pieces of information then its each piece is connected with semicolon (;) as a delimiter.
        Example: `[\"1.1.1.1\",\"1.1.1.0/24\",\"ocid1.vcn.oc1.sea.<unique_id>\",\"ocid1.vcn.oc1.sea.<unique_id1>;1.1.1.1\",\"ocid1.vcn.oc1.sea.<unique_id2>;1.1.0.0/16\"]`
        For Exadata Cloud@Customer, this is an array of IP addresses or CIDR notations.
        Example: `[\"1.1.1.1\",\"1.1.1.0/24\",\"1.1.2.25\"]`

        For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html


        :param whitelisted_ips: The whitelisted_ips of this AutonomousDwDatabase.
        :type: list[str]
        """
        self._whitelisted_ips = whitelisted_ips

    @property
    def are_primary_whitelisted_ips_used(self):
        """
        Gets the are_primary_whitelisted_ips_used of this AutonomousDwDatabase.
        This field will be null if the Autonomous AI Database is not Data Guard enabled or Access Control is disabled.
        It's value would be `TRUE` if Autonomous AI Database is Data Guard enabled and Access Control is enabled and if the Autonomous AI Database uses primary IP access control list (ACL) for standby.
        It's value would be `FALSE` if Autonomous AI Database is Data Guard enabled and Access Control is enabled and if the Autonomous AI Database uses different IP access control list (ACL) for standby compared to primary.


        :return: The are_primary_whitelisted_ips_used of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._are_primary_whitelisted_ips_used

    @are_primary_whitelisted_ips_used.setter
    def are_primary_whitelisted_ips_used(self, are_primary_whitelisted_ips_used):
        """
        Sets the are_primary_whitelisted_ips_used of this AutonomousDwDatabase.
        This field will be null if the Autonomous AI Database is not Data Guard enabled or Access Control is disabled.
        It's value would be `TRUE` if Autonomous AI Database is Data Guard enabled and Access Control is enabled and if the Autonomous AI Database uses primary IP access control list (ACL) for standby.
        It's value would be `FALSE` if Autonomous AI Database is Data Guard enabled and Access Control is enabled and if the Autonomous AI Database uses different IP access control list (ACL) for standby compared to primary.


        :param are_primary_whitelisted_ips_used: The are_primary_whitelisted_ips_used of this AutonomousDwDatabase.
        :type: bool
        """
        self._are_primary_whitelisted_ips_used = are_primary_whitelisted_ips_used

    @property
    def standby_whitelisted_ips(self):
        """
        Gets the standby_whitelisted_ips of this AutonomousDwDatabase.
        The client IP access control list (ACL). This feature is available for `Autonomous AI Database Serverless]`__ and on Exadata Cloud@Customer.
        Only clients connecting from an IP address included in the ACL may access the Autonomous AI Database instance.
        If `arePrimaryWhitelistedIpsUsed` is 'TRUE' then Autonomous AI Database uses this primary's IP access control list (ACL) for the disaster recovery peer called `standbywhitelistedips`.

        For Autonomous AI Database Serverless, this is an array of CIDR (classless inter-domain routing) notations for a subnet or VCN OCID (virtual cloud network Oracle Cloud ID).
        Multiple IPs and VCN OCIDs should be separate strings separated by commas, but if it\u2019s other configurations that need multiple pieces of information then its each piece is connected with semicolon (;) as a delimiter.
        Example: `[\"1.1.1.1\",\"1.1.1.0/24\",\"ocid1.vcn.oc1.sea.<unique_id>\",\"ocid1.vcn.oc1.sea.<unique_id1>;1.1.1.1\",\"ocid1.vcn.oc1.sea.<unique_id2>;1.1.0.0/16\"]`
        For Exadata Cloud@Customer, this is an array of IP addresses or CIDR notations.
        Example: `[\"1.1.1.1\",\"1.1.1.0/24\",\"1.1.2.25\"]`

        For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html


        :return: The standby_whitelisted_ips of this AutonomousDwDatabase.
        :rtype: list[str]
        """
        return self._standby_whitelisted_ips

    @standby_whitelisted_ips.setter
    def standby_whitelisted_ips(self, standby_whitelisted_ips):
        """
        Sets the standby_whitelisted_ips of this AutonomousDwDatabase.
        The client IP access control list (ACL). This feature is available for `Autonomous AI Database Serverless]`__ and on Exadata Cloud@Customer.
        Only clients connecting from an IP address included in the ACL may access the Autonomous AI Database instance.
        If `arePrimaryWhitelistedIpsUsed` is 'TRUE' then Autonomous AI Database uses this primary's IP access control list (ACL) for the disaster recovery peer called `standbywhitelistedips`.

        For Autonomous AI Database Serverless, this is an array of CIDR (classless inter-domain routing) notations for a subnet or VCN OCID (virtual cloud network Oracle Cloud ID).
        Multiple IPs and VCN OCIDs should be separate strings separated by commas, but if it\u2019s other configurations that need multiple pieces of information then its each piece is connected with semicolon (;) as a delimiter.
        Example: `[\"1.1.1.1\",\"1.1.1.0/24\",\"ocid1.vcn.oc1.sea.<unique_id>\",\"ocid1.vcn.oc1.sea.<unique_id1>;1.1.1.1\",\"ocid1.vcn.oc1.sea.<unique_id2>;1.1.0.0/16\"]`
        For Exadata Cloud@Customer, this is an array of IP addresses or CIDR notations.
        Example: `[\"1.1.1.1\",\"1.1.1.0/24\",\"1.1.2.25\"]`

        For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.

        __ https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html


        :param standby_whitelisted_ips: The standby_whitelisted_ips of this AutonomousDwDatabase.
        :type: list[str]
        """
        self._standby_whitelisted_ips = standby_whitelisted_ips

    @property
    def apex_details(self):
        """
        Gets the apex_details of this AutonomousDwDatabase.
        Information about Oracle APEX AI Application Development.


        :return: The apex_details of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseApex
        """
        return self._apex_details

    @apex_details.setter
    def apex_details(self, apex_details):
        """
        Sets the apex_details of this AutonomousDwDatabase.
        Information about Oracle APEX AI Application Development.


        :param apex_details: The apex_details of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseApex
        """
        self._apex_details = apex_details

    @property
    def is_auto_scaling_enabled(self):
        """
        Gets the is_auto_scaling_enabled of this AutonomousDwDatabase.
        Indicates if auto scaling is enabled for the Autonomous AI Database CPU core count. The default value is `TRUE`.


        :return: The is_auto_scaling_enabled of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_auto_scaling_enabled

    @is_auto_scaling_enabled.setter
    def is_auto_scaling_enabled(self, is_auto_scaling_enabled):
        """
        Sets the is_auto_scaling_enabled of this AutonomousDwDatabase.
        Indicates if auto scaling is enabled for the Autonomous AI Database CPU core count. The default value is `TRUE`.


        :param is_auto_scaling_enabled: The is_auto_scaling_enabled of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_auto_scaling_enabled = is_auto_scaling_enabled

    @property
    def data_safe_status(self):
        """
        Gets the data_safe_status of this AutonomousDwDatabase.
        Status of the Data Safe registration for this Autonomous AI Database.

        Allowed values for this property are: "REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED"


        :return: The data_safe_status of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._data_safe_status

    @data_safe_status.setter
    def data_safe_status(self, data_safe_status):
        """
        Sets the data_safe_status of this AutonomousDwDatabase.
        Status of the Data Safe registration for this Autonomous AI Database.


        :param data_safe_status: The data_safe_status of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED"]
        if not value_allowed_none_or_none_sentinel(data_safe_status, allowed_values):
            raise ValueError(
                f"Invalid value for `data_safe_status`, must be None or one of {allowed_values}"
            )
        self._data_safe_status = data_safe_status

    @property
    def operations_insights_status(self):
        """
        Gets the operations_insights_status of this AutonomousDwDatabase.
        Status of Operations Insights for this Autonomous AI Database.

        Allowed values for this property are: "ENABLING", "ENABLED", "DISABLING", "NOT_ENABLED", "FAILED_ENABLING", "FAILED_DISABLING"


        :return: The operations_insights_status of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._operations_insights_status

    @operations_insights_status.setter
    def operations_insights_status(self, operations_insights_status):
        """
        Sets the operations_insights_status of this AutonomousDwDatabase.
        Status of Operations Insights for this Autonomous AI Database.


        :param operations_insights_status: The operations_insights_status of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["ENABLING", "ENABLED", "DISABLING", "NOT_ENABLED", "FAILED_ENABLING", "FAILED_DISABLING"]
        if not value_allowed_none_or_none_sentinel(operations_insights_status, allowed_values):
            raise ValueError(
                f"Invalid value for `operations_insights_status`, must be None or one of {allowed_values}"
            )
        self._operations_insights_status = operations_insights_status

    @property
    def database_management_status(self):
        """
        Gets the database_management_status of this AutonomousDwDatabase.
        Status of Database Management for this Autonomous AI Database.

        Allowed values for this property are: "ENABLING", "ENABLED", "DISABLING", "NOT_ENABLED", "FAILED_ENABLING", "FAILED_DISABLING"


        :return: The database_management_status of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._database_management_status

    @database_management_status.setter
    def database_management_status(self, database_management_status):
        """
        Sets the database_management_status of this AutonomousDwDatabase.
        Status of Database Management for this Autonomous AI Database.


        :param database_management_status: The database_management_status of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["ENABLING", "ENABLED", "DISABLING", "NOT_ENABLED", "FAILED_ENABLING", "FAILED_DISABLING"]
        if not value_allowed_none_or_none_sentinel(database_management_status, allowed_values):
            raise ValueError(
                f"Invalid value for `database_management_status`, must be None or one of {allowed_values}"
            )
        self._database_management_status = database_management_status

    @property
    def time_maintenance_begin(self):
        """
        Gets the time_maintenance_begin of this AutonomousDwDatabase.
        The date and time when maintenance will begin.


        :return: The time_maintenance_begin of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_maintenance_begin

    @time_maintenance_begin.setter
    def time_maintenance_begin(self, time_maintenance_begin):
        """
        Sets the time_maintenance_begin of this AutonomousDwDatabase.
        The date and time when maintenance will begin.


        :param time_maintenance_begin: The time_maintenance_begin of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_maintenance_begin = time_maintenance_begin

    @property
    def time_maintenance_end(self):
        """
        Gets the time_maintenance_end of this AutonomousDwDatabase.
        The date and time when maintenance will end.


        :return: The time_maintenance_end of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_maintenance_end

    @time_maintenance_end.setter
    def time_maintenance_end(self, time_maintenance_end):
        """
        Sets the time_maintenance_end of this AutonomousDwDatabase.
        The date and time when maintenance will end.


        :param time_maintenance_end: The time_maintenance_end of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_maintenance_end = time_maintenance_end

    @property
    def maintenance_target_component(self):
        """
        Gets the maintenance_target_component of this AutonomousDwDatabase.
        The component chosen for maintenance.


        :return: The maintenance_target_component of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._maintenance_target_component

    @maintenance_target_component.setter
    def maintenance_target_component(self, maintenance_target_component):
        """
        Sets the maintenance_target_component of this AutonomousDwDatabase.
        The component chosen for maintenance.


        :param maintenance_target_component: The maintenance_target_component of this AutonomousDwDatabase.
        :type: str
        """
        self._maintenance_target_component = maintenance_target_component

    @property
    def is_refreshable_clone(self):
        """
        Gets the is_refreshable_clone of this AutonomousDwDatabase.
        Indicates if the Autonomous AI Database is a refreshable clone.

        This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, openMode, permissionLevel, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.


        :return: The is_refreshable_clone of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_refreshable_clone

    @is_refreshable_clone.setter
    def is_refreshable_clone(self, is_refreshable_clone):
        """
        Sets the is_refreshable_clone of this AutonomousDwDatabase.
        Indicates if the Autonomous AI Database is a refreshable clone.

        This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, openMode, permissionLevel, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.


        :param is_refreshable_clone: The is_refreshable_clone of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_refreshable_clone = is_refreshable_clone

    @property
    def time_of_last_refresh(self):
        """
        Gets the time_of_last_refresh of this AutonomousDwDatabase.
        The date and time when last refresh happened.


        :return: The time_of_last_refresh of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_of_last_refresh

    @time_of_last_refresh.setter
    def time_of_last_refresh(self, time_of_last_refresh):
        """
        Sets the time_of_last_refresh of this AutonomousDwDatabase.
        The date and time when last refresh happened.


        :param time_of_last_refresh: The time_of_last_refresh of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_of_last_refresh = time_of_last_refresh

    @property
    def time_of_last_refresh_point(self):
        """
        Gets the time_of_last_refresh_point of this AutonomousDwDatabase.
        The refresh point timestamp (UTC). The refresh point is the time to which the database was most recently refreshed. Data created after the refresh point is not included in the refresh.


        :return: The time_of_last_refresh_point of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_of_last_refresh_point

    @time_of_last_refresh_point.setter
    def time_of_last_refresh_point(self, time_of_last_refresh_point):
        """
        Sets the time_of_last_refresh_point of this AutonomousDwDatabase.
        The refresh point timestamp (UTC). The refresh point is the time to which the database was most recently refreshed. Data created after the refresh point is not included in the refresh.


        :param time_of_last_refresh_point: The time_of_last_refresh_point of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_of_last_refresh_point = time_of_last_refresh_point

    @property
    def time_of_next_refresh(self):
        """
        Gets the time_of_next_refresh of this AutonomousDwDatabase.
        The date and time of next refresh.


        :return: The time_of_next_refresh of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_of_next_refresh

    @time_of_next_refresh.setter
    def time_of_next_refresh(self, time_of_next_refresh):
        """
        Sets the time_of_next_refresh of this AutonomousDwDatabase.
        The date and time of next refresh.


        :param time_of_next_refresh: The time_of_next_refresh of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_of_next_refresh = time_of_next_refresh

    @property
    def open_mode(self):
        """
        Gets the open_mode of this AutonomousDwDatabase.
        Indicates the Autonomous AI Database mode. The database can be opened in `READ_ONLY` or `READ_WRITE` mode.

        This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.

        Allowed values for this property are: "READ_ONLY", "READ_WRITE"


        :return: The open_mode of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._open_mode

    @open_mode.setter
    def open_mode(self, open_mode):
        """
        Sets the open_mode of this AutonomousDwDatabase.
        Indicates the Autonomous AI Database mode. The database can be opened in `READ_ONLY` or `READ_WRITE` mode.

        This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.


        :param open_mode: The open_mode of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["READ_ONLY", "READ_WRITE"]
        if not value_allowed_none_or_none_sentinel(open_mode, allowed_values):
            raise ValueError(
                f"Invalid value for `open_mode`, must be None or one of {allowed_values}"
            )
        self._open_mode = open_mode

    @property
    def refreshable_status(self):
        """
        Gets the refreshable_status of this AutonomousDwDatabase.
        The refresh status of the clone. REFRESHING indicates that the clone is currently being refreshed with data from the source Autonomous AI Database.

        Allowed values for this property are: "REFRESHING", "NOT_REFRESHING"


        :return: The refreshable_status of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._refreshable_status

    @refreshable_status.setter
    def refreshable_status(self, refreshable_status):
        """
        Sets the refreshable_status of this AutonomousDwDatabase.
        The refresh status of the clone. REFRESHING indicates that the clone is currently being refreshed with data from the source Autonomous AI Database.


        :param refreshable_status: The refreshable_status of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["REFRESHING", "NOT_REFRESHING"]
        if not value_allowed_none_or_none_sentinel(refreshable_status, allowed_values):
            raise ValueError(
                f"Invalid value for `refreshable_status`, must be None or one of {allowed_values}"
            )
        self._refreshable_status = refreshable_status

    @property
    def refreshable_mode(self):
        """
        Gets the refreshable_mode of this AutonomousDwDatabase.
        The refresh mode of the clone. AUTOMATIC indicates that the clone is automatically being refreshed with data from the source Autonomous AI Database.

        Allowed values for this property are: "AUTOMATIC", "MANUAL"


        :return: The refreshable_mode of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._refreshable_mode

    @refreshable_mode.setter
    def refreshable_mode(self, refreshable_mode):
        """
        Sets the refreshable_mode of this AutonomousDwDatabase.
        The refresh mode of the clone. AUTOMATIC indicates that the clone is automatically being refreshed with data from the source Autonomous AI Database.


        :param refreshable_mode: The refreshable_mode of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["AUTOMATIC", "MANUAL"]
        if not value_allowed_none_or_none_sentinel(refreshable_mode, allowed_values):
            raise ValueError(
                f"Invalid value for `refreshable_mode`, must be None or one of {allowed_values}"
            )
        self._refreshable_mode = refreshable_mode

    @property
    def source_id(self):
        """
        Gets the source_id of this AutonomousDwDatabase.
        The `OCID`__ of the source Autonomous AI Database that was cloned to create the current Autonomous AI Database.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The source_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._source_id

    @source_id.setter
    def source_id(self, source_id):
        """
        Sets the source_id of this AutonomousDwDatabase.
        The `OCID`__ of the source Autonomous AI Database that was cloned to create the current Autonomous AI Database.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param source_id: The source_id of this AutonomousDwDatabase.
        :type: str
        """
        self._source_id = source_id

    @property
    def permission_level(self):
        """
        Gets the permission_level of this AutonomousDwDatabase.
        The Autonomous AI Database permission level. Restricted mode allows access only by admin users.

        This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.

        Allowed values for this property are: "RESTRICTED", "UNRESTRICTED"


        :return: The permission_level of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._permission_level

    @permission_level.setter
    def permission_level(self, permission_level):
        """
        Sets the permission_level of this AutonomousDwDatabase.
        The Autonomous AI Database permission level. Restricted mode allows access only by admin users.

        This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.


        :param permission_level: The permission_level of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["RESTRICTED", "UNRESTRICTED"]
        if not value_allowed_none_or_none_sentinel(permission_level, allowed_values):
            raise ValueError(
                f"Invalid value for `permission_level`, must be None or one of {allowed_values}"
            )
        self._permission_level = permission_level

    @property
    def time_of_last_switchover(self):
        """
        Gets the time_of_last_switchover of this AutonomousDwDatabase.
        The timestamp of the last switchover operation for the Autonomous AI Database.


        :return: The time_of_last_switchover of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_of_last_switchover

    @time_of_last_switchover.setter
    def time_of_last_switchover(self, time_of_last_switchover):
        """
        Sets the time_of_last_switchover of this AutonomousDwDatabase.
        The timestamp of the last switchover operation for the Autonomous AI Database.


        :param time_of_last_switchover: The time_of_last_switchover of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_of_last_switchover = time_of_last_switchover

    @property
    def time_of_last_failover(self):
        """
        Gets the time_of_last_failover of this AutonomousDwDatabase.
        The timestamp of the last failover operation.


        :return: The time_of_last_failover of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_of_last_failover

    @time_of_last_failover.setter
    def time_of_last_failover(self, time_of_last_failover):
        """
        Sets the time_of_last_failover of this AutonomousDwDatabase.
        The timestamp of the last failover operation.


        :param time_of_last_failover: The time_of_last_failover of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_of_last_failover = time_of_last_failover

    @property
    def is_data_guard_enabled(self):
        """
        Gets the is_data_guard_enabled of this AutonomousDwDatabase.
        **Deprecated.** Indicates whether the Autonomous AI Database has local (in-region) Data Guard enabled. Not applicable to cross-region Autonomous Data Guard associations, or to Autonomous AI Databases using dedicated Exadata infrastructure or Exadata Cloud@Customer infrastructure.


        :return: The is_data_guard_enabled of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_data_guard_enabled

    @is_data_guard_enabled.setter
    def is_data_guard_enabled(self, is_data_guard_enabled):
        """
        Sets the is_data_guard_enabled of this AutonomousDwDatabase.
        **Deprecated.** Indicates whether the Autonomous AI Database has local (in-region) Data Guard enabled. Not applicable to cross-region Autonomous Data Guard associations, or to Autonomous AI Databases using dedicated Exadata infrastructure or Exadata Cloud@Customer infrastructure.


        :param is_data_guard_enabled: The is_data_guard_enabled of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_data_guard_enabled = is_data_guard_enabled

    @property
    def failed_data_recovery_in_seconds(self):
        """
        Gets the failed_data_recovery_in_seconds of this AutonomousDwDatabase.
        Indicates the number of seconds of data loss for a Data Guard failover.


        :return: The failed_data_recovery_in_seconds of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._failed_data_recovery_in_seconds

    @failed_data_recovery_in_seconds.setter
    def failed_data_recovery_in_seconds(self, failed_data_recovery_in_seconds):
        """
        Sets the failed_data_recovery_in_seconds of this AutonomousDwDatabase.
        Indicates the number of seconds of data loss for a Data Guard failover.


        :param failed_data_recovery_in_seconds: The failed_data_recovery_in_seconds of this AutonomousDwDatabase.
        :type: int
        """
        self._failed_data_recovery_in_seconds = failed_data_recovery_in_seconds

    @property
    def standby_db(self):
        """
        Gets the standby_db of this AutonomousDwDatabase.
        **Deprecated** Autonomous Data Guard standby database details.


        :return: The standby_db of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseStandbySummary
        """
        return self._standby_db

    @standby_db.setter
    def standby_db(self, standby_db):
        """
        Sets the standby_db of this AutonomousDwDatabase.
        **Deprecated** Autonomous Data Guard standby database details.


        :param standby_db: The standby_db of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseStandbySummary
        """
        self._standby_db = standby_db

    @property
    def is_local_data_guard_enabled(self):
        """
        Gets the is_local_data_guard_enabled of this AutonomousDwDatabase.
        Indicates whether the Autonomous AI Database has local (in-region) Data Guard enabled. Not applicable to cross-region Autonomous Data Guard associations, or to Autonomous AI Databases using dedicated Exadata infrastructure or Exadata Cloud@Customer infrastructure.


        :return: The is_local_data_guard_enabled of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_local_data_guard_enabled

    @is_local_data_guard_enabled.setter
    def is_local_data_guard_enabled(self, is_local_data_guard_enabled):
        """
        Sets the is_local_data_guard_enabled of this AutonomousDwDatabase.
        Indicates whether the Autonomous AI Database has local (in-region) Data Guard enabled. Not applicable to cross-region Autonomous Data Guard associations, or to Autonomous AI Databases using dedicated Exadata infrastructure or Exadata Cloud@Customer infrastructure.


        :param is_local_data_guard_enabled: The is_local_data_guard_enabled of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_local_data_guard_enabled = is_local_data_guard_enabled

    @property
    def is_remote_data_guard_enabled(self):
        """
        Gets the is_remote_data_guard_enabled of this AutonomousDwDatabase.
        Indicates whether the Autonomous AI Database has Cross Region Data Guard enabled. Not applicable to Autonomous AI Databases using dedicated Exadata infrastructure or Exadata Cloud@Customer infrastructure.


        :return: The is_remote_data_guard_enabled of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_remote_data_guard_enabled

    @is_remote_data_guard_enabled.setter
    def is_remote_data_guard_enabled(self, is_remote_data_guard_enabled):
        """
        Sets the is_remote_data_guard_enabled of this AutonomousDwDatabase.
        Indicates whether the Autonomous AI Database has Cross Region Data Guard enabled. Not applicable to Autonomous AI Databases using dedicated Exadata infrastructure or Exadata Cloud@Customer infrastructure.


        :param is_remote_data_guard_enabled: The is_remote_data_guard_enabled of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_remote_data_guard_enabled = is_remote_data_guard_enabled

    @property
    def local_standby_db(self):
        """
        Gets the local_standby_db of this AutonomousDwDatabase.

        :return: The local_standby_db of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseStandbySummary
        """
        return self._local_standby_db

    @local_standby_db.setter
    def local_standby_db(self, local_standby_db):
        """
        Sets the local_standby_db of this AutonomousDwDatabase.

        :param local_standby_db: The local_standby_db of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseStandbySummary
        """
        self._local_standby_db = local_standby_db

    @property
    def role(self):
        """
        Gets the role of this AutonomousDwDatabase.
        The Data Guard role of the Autonomous Container Database or Autonomous AI Database, if Autonomous Data Guard is enabled.

        Allowed values for this property are: "PRIMARY", "STANDBY", "DISABLED_STANDBY", "BACKUP_COPY", "SNAPSHOT_STANDBY"


        :return: The role of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._role

    @role.setter
    def role(self, role):
        """
        Sets the role of this AutonomousDwDatabase.
        The Data Guard role of the Autonomous Container Database or Autonomous AI Database, if Autonomous Data Guard is enabled.


        :param role: The role of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["PRIMARY", "STANDBY", "DISABLED_STANDBY", "BACKUP_COPY", "SNAPSHOT_STANDBY"]
        if not value_allowed_none_or_none_sentinel(role, allowed_values):
            raise ValueError(
                f"Invalid value for `role`, must be None or one of {allowed_values}"
            )
        self._role = role

    @property
    def available_upgrade_versions(self):
        """
        Gets the available_upgrade_versions of this AutonomousDwDatabase.
        List of Oracle AI Database versions available for a database upgrade. If there are no version upgrades available, this list is empty.


        :return: The available_upgrade_versions of this AutonomousDwDatabase.
        :rtype: list[str]
        """
        return self._available_upgrade_versions

    @available_upgrade_versions.setter
    def available_upgrade_versions(self, available_upgrade_versions):
        """
        Sets the available_upgrade_versions of this AutonomousDwDatabase.
        List of Oracle AI Database versions available for a database upgrade. If there are no version upgrades available, this list is empty.


        :param available_upgrade_versions: The available_upgrade_versions of this AutonomousDwDatabase.
        :type: list[str]
        """
        self._available_upgrade_versions = available_upgrade_versions

    @property
    def key_store_id(self):
        """
        Gets the key_store_id of this AutonomousDwDatabase.
        The `OCID`__ of the key store of Oracle Vault.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The key_store_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._key_store_id

    @key_store_id.setter
    def key_store_id(self, key_store_id):
        """
        Sets the key_store_id of this AutonomousDwDatabase.
        The `OCID`__ of the key store of Oracle Vault.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param key_store_id: The key_store_id of this AutonomousDwDatabase.
        :type: str
        """
        self._key_store_id = key_store_id

    @property
    def key_store_wallet_name(self):
        """
        Gets the key_store_wallet_name of this AutonomousDwDatabase.
        The wallet name for Oracle Key Vault.


        :return: The key_store_wallet_name of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._key_store_wallet_name

    @key_store_wallet_name.setter
    def key_store_wallet_name(self, key_store_wallet_name):
        """
        Sets the key_store_wallet_name of this AutonomousDwDatabase.
        The wallet name for Oracle Key Vault.


        :param key_store_wallet_name: The key_store_wallet_name of this AutonomousDwDatabase.
        :type: str
        """
        self._key_store_wallet_name = key_store_wallet_name

    @property
    def auto_refresh_frequency_in_seconds(self):
        """
        Gets the auto_refresh_frequency_in_seconds of this AutonomousDwDatabase.
        The frequency a refreshable clone is refreshed after auto-refresh is enabled. The minimum is 1 hour. The maximum is 7 days. The date and time that auto-refresh is enabled is controlled by the `timeOfAutoRefreshStart` parameter.


        :return: The auto_refresh_frequency_in_seconds of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._auto_refresh_frequency_in_seconds

    @auto_refresh_frequency_in_seconds.setter
    def auto_refresh_frequency_in_seconds(self, auto_refresh_frequency_in_seconds):
        """
        Sets the auto_refresh_frequency_in_seconds of this AutonomousDwDatabase.
        The frequency a refreshable clone is refreshed after auto-refresh is enabled. The minimum is 1 hour. The maximum is 7 days. The date and time that auto-refresh is enabled is controlled by the `timeOfAutoRefreshStart` parameter.


        :param auto_refresh_frequency_in_seconds: The auto_refresh_frequency_in_seconds of this AutonomousDwDatabase.
        :type: int
        """
        self._auto_refresh_frequency_in_seconds = auto_refresh_frequency_in_seconds

    @property
    def auto_refresh_point_lag_in_seconds(self):
        """
        Gets the auto_refresh_point_lag_in_seconds of this AutonomousDwDatabase.
        The time, in seconds, the data of the refreshable clone lags the primary database at the point of refresh. The minimum is 0 minutes (0 mins means refresh to the latest available timestamp). The maximum is 7 days. The lag time increases after refreshing until the next data refresh happens.


        :return: The auto_refresh_point_lag_in_seconds of this AutonomousDwDatabase.
        :rtype: int
        """
        return self._auto_refresh_point_lag_in_seconds

    @auto_refresh_point_lag_in_seconds.setter
    def auto_refresh_point_lag_in_seconds(self, auto_refresh_point_lag_in_seconds):
        """
        Sets the auto_refresh_point_lag_in_seconds of this AutonomousDwDatabase.
        The time, in seconds, the data of the refreshable clone lags the primary database at the point of refresh. The minimum is 0 minutes (0 mins means refresh to the latest available timestamp). The maximum is 7 days. The lag time increases after refreshing until the next data refresh happens.


        :param auto_refresh_point_lag_in_seconds: The auto_refresh_point_lag_in_seconds of this AutonomousDwDatabase.
        :type: int
        """
        self._auto_refresh_point_lag_in_seconds = auto_refresh_point_lag_in_seconds

    @property
    def time_of_auto_refresh_start(self):
        """
        Gets the time_of_auto_refresh_start of this AutonomousDwDatabase.
        The the date and time that auto-refreshing will begin for an Autonomous AI Database refreshable clone. This value controls only the start time for the first refresh operation. Subsequent (ongoing) refresh operations have start times controlled by the value of the `autoRefreshFrequencyInSeconds` parameter.


        :return: The time_of_auto_refresh_start of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_of_auto_refresh_start

    @time_of_auto_refresh_start.setter
    def time_of_auto_refresh_start(self, time_of_auto_refresh_start):
        """
        Sets the time_of_auto_refresh_start of this AutonomousDwDatabase.
        The the date and time that auto-refreshing will begin for an Autonomous AI Database refreshable clone. This value controls only the start time for the first refresh operation. Subsequent (ongoing) refresh operations have start times controlled by the value of the `autoRefreshFrequencyInSeconds` parameter.


        :param time_of_auto_refresh_start: The time_of_auto_refresh_start of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_of_auto_refresh_start = time_of_auto_refresh_start

    @property
    def supported_regions_to_clone_to(self):
        """
        Gets the supported_regions_to_clone_to of this AutonomousDwDatabase.
        The list of regions that support the creation of an Autonomous AI Database clone or an Autonomous Data Guard standby database.


        :return: The supported_regions_to_clone_to of this AutonomousDwDatabase.
        :rtype: list[str]
        """
        return self._supported_regions_to_clone_to

    @supported_regions_to_clone_to.setter
    def supported_regions_to_clone_to(self, supported_regions_to_clone_to):
        """
        Sets the supported_regions_to_clone_to of this AutonomousDwDatabase.
        The list of regions that support the creation of an Autonomous AI Database clone or an Autonomous Data Guard standby database.


        :param supported_regions_to_clone_to: The supported_regions_to_clone_to of this AutonomousDwDatabase.
        :type: list[str]
        """
        self._supported_regions_to_clone_to = supported_regions_to_clone_to

    @property
    def customer_contacts(self):
        """
        Gets the customer_contacts of this AutonomousDwDatabase.
        Customer Contacts.


        :return: The customer_contacts of this AutonomousDwDatabase.
        :rtype: list[oci.database.models.CustomerContact]
        """
        return self._customer_contacts

    @customer_contacts.setter
    def customer_contacts(self, customer_contacts):
        """
        Sets the customer_contacts of this AutonomousDwDatabase.
        Customer Contacts.


        :param customer_contacts: The customer_contacts of this AutonomousDwDatabase.
        :type: list[oci.database.models.CustomerContact]
        """
        self._customer_contacts = customer_contacts

    @property
    def time_local_data_guard_enabled(self):
        """
        Gets the time_local_data_guard_enabled of this AutonomousDwDatabase.
        The date and time that Autonomous Data Guard was enabled for an Autonomous AI Database where the standby was provisioned in the same region as the primary database.


        :return: The time_local_data_guard_enabled of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_local_data_guard_enabled

    @time_local_data_guard_enabled.setter
    def time_local_data_guard_enabled(self, time_local_data_guard_enabled):
        """
        Sets the time_local_data_guard_enabled of this AutonomousDwDatabase.
        The date and time that Autonomous Data Guard was enabled for an Autonomous AI Database where the standby was provisioned in the same region as the primary database.


        :param time_local_data_guard_enabled: The time_local_data_guard_enabled of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_local_data_guard_enabled = time_local_data_guard_enabled

    @property
    def dataguard_region_type(self):
        """
        Gets the dataguard_region_type of this AutonomousDwDatabase.
        **Deprecated.** The Autonomous Data Guard region type of the Autonomous AI Database. For Autonomous AI Database Serverless, Autonomous Data Guard associations have designated primary and standby regions, and these region types do not change when the database changes roles. The standby regions in Autonomous Data Guard associations can be the same region designated as the primary region, or they can be remote regions. Certain database administrative operations may be available only in the primary region of the Autonomous Data Guard association, and cannot be performed when the database using the primary role is operating in a remote Autonomous Data Guard standby region.

        Allowed values for this property are: "PRIMARY_DG_REGION", "REMOTE_STANDBY_DG_REGION"


        :return: The dataguard_region_type of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._dataguard_region_type

    @dataguard_region_type.setter
    def dataguard_region_type(self, dataguard_region_type):
        """
        Sets the dataguard_region_type of this AutonomousDwDatabase.
        **Deprecated.** The Autonomous Data Guard region type of the Autonomous AI Database. For Autonomous AI Database Serverless, Autonomous Data Guard associations have designated primary and standby regions, and these region types do not change when the database changes roles. The standby regions in Autonomous Data Guard associations can be the same region designated as the primary region, or they can be remote regions. Certain database administrative operations may be available only in the primary region of the Autonomous Data Guard association, and cannot be performed when the database using the primary role is operating in a remote Autonomous Data Guard standby region.


        :param dataguard_region_type: The dataguard_region_type of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["PRIMARY_DG_REGION", "REMOTE_STANDBY_DG_REGION"]
        if not value_allowed_none_or_none_sentinel(dataguard_region_type, allowed_values):
            raise ValueError(
                f"Invalid value for `dataguard_region_type`, must be None or one of {allowed_values}"
            )
        self._dataguard_region_type = dataguard_region_type

    @property
    def time_data_guard_role_changed(self):
        """
        Gets the time_data_guard_role_changed of this AutonomousDwDatabase.
        The date and time the Autonomous Data Guard role was switched for the Autonomous AI Database. For databases that have standbys in both the primary Data Guard region and a remote Data Guard standby region, this is the latest timestamp of either the database using the \"primary\" role in the primary Data Guard region, or database located in the remote Data Guard standby region.


        :return: The time_data_guard_role_changed of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_data_guard_role_changed

    @time_data_guard_role_changed.setter
    def time_data_guard_role_changed(self, time_data_guard_role_changed):
        """
        Sets the time_data_guard_role_changed of this AutonomousDwDatabase.
        The date and time the Autonomous Data Guard role was switched for the Autonomous AI Database. For databases that have standbys in both the primary Data Guard region and a remote Data Guard standby region, this is the latest timestamp of either the database using the \"primary\" role in the primary Data Guard region, or database located in the remote Data Guard standby region.


        :param time_data_guard_role_changed: The time_data_guard_role_changed of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_data_guard_role_changed = time_data_guard_role_changed

    @property
    def peer_db_ids(self):
        """
        Gets the peer_db_ids of this AutonomousDwDatabase.
        The list of `OCIDs`__ of standby databases located in Autonomous Data Guard remote regions that are associated with the source database. Note that for Autonomous AI Database Serverless instances, standby databases located in the same region as the source primary database do not have OCIDs.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The peer_db_ids of this AutonomousDwDatabase.
        :rtype: list[str]
        """
        return self._peer_db_ids

    @peer_db_ids.setter
    def peer_db_ids(self, peer_db_ids):
        """
        Sets the peer_db_ids of this AutonomousDwDatabase.
        The list of `OCIDs`__ of standby databases located in Autonomous Data Guard remote regions that are associated with the source database. Note that for Autonomous AI Database Serverless instances, standby databases located in the same region as the source primary database do not have OCIDs.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param peer_db_ids: The peer_db_ids of this AutonomousDwDatabase.
        :type: list[str]
        """
        self._peer_db_ids = peer_db_ids

    @property
    def is_mtls_connection_required(self):
        """
        Gets the is_mtls_connection_required of this AutonomousDwDatabase.
        Specifies if the Autonomous AI Database requires mTLS connections.

        This may not be updated in parallel with any of the following: licenseModel, databaseEdition, cpuCoreCount, computeCount, dataStorageSizeInTBs, whitelistedIps, openMode, permissionLevel, db-workload, privateEndpointLabel, nsgIds, customerContacts, dbVersion, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.

        Service Change: The default value of the isMTLSConnectionRequired attribute will change from true to false on July 1, 2023 in the following APIs:
        - CreateAutonomousDatabase
        - GetAutonomousDatabase
        - UpdateAutonomousDatabase
        Details: Prior to the July 1, 2023 change, the isMTLSConnectionRequired attribute default value was true. This applies to Autonomous AI Database Serverless.
        Does this impact me? If you use or maintain custom scripts or Terraform scripts referencing the CreateAutonomousDatabase, GetAutonomousDatabase, or UpdateAutonomousDatabase APIs, you want to check, and possibly modify, the scripts for the changed default value of the attribute. Should you choose not to leave your scripts unchanged, the API calls containing this attribute will continue to work, but the default value will switch from true to false.
        How do I make this change? Using either OCI SDKs or command line tools, update your custom scripts to explicitly set the isMTLSConnectionRequired attribute to true.


        :return: The is_mtls_connection_required of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_mtls_connection_required

    @is_mtls_connection_required.setter
    def is_mtls_connection_required(self, is_mtls_connection_required):
        """
        Sets the is_mtls_connection_required of this AutonomousDwDatabase.
        Specifies if the Autonomous AI Database requires mTLS connections.

        This may not be updated in parallel with any of the following: licenseModel, databaseEdition, cpuCoreCount, computeCount, dataStorageSizeInTBs, whitelistedIps, openMode, permissionLevel, db-workload, privateEndpointLabel, nsgIds, customerContacts, dbVersion, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.

        Service Change: The default value of the isMTLSConnectionRequired attribute will change from true to false on July 1, 2023 in the following APIs:
        - CreateAutonomousDatabase
        - GetAutonomousDatabase
        - UpdateAutonomousDatabase
        Details: Prior to the July 1, 2023 change, the isMTLSConnectionRequired attribute default value was true. This applies to Autonomous AI Database Serverless.
        Does this impact me? If you use or maintain custom scripts or Terraform scripts referencing the CreateAutonomousDatabase, GetAutonomousDatabase, or UpdateAutonomousDatabase APIs, you want to check, and possibly modify, the scripts for the changed default value of the attribute. Should you choose not to leave your scripts unchanged, the API calls containing this attribute will continue to work, but the default value will switch from true to false.
        How do I make this change? Using either OCI SDKs or command line tools, update your custom scripts to explicitly set the isMTLSConnectionRequired attribute to true.


        :param is_mtls_connection_required: The is_mtls_connection_required of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_mtls_connection_required = is_mtls_connection_required

    @property
    def time_of_joining_resource_pool(self):
        """
        Gets the time_of_joining_resource_pool of this AutonomousDwDatabase.
        The time the member joined the resource pool.


        :return: The time_of_joining_resource_pool of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_of_joining_resource_pool

    @time_of_joining_resource_pool.setter
    def time_of_joining_resource_pool(self, time_of_joining_resource_pool):
        """
        Sets the time_of_joining_resource_pool of this AutonomousDwDatabase.
        The time the member joined the resource pool.


        :param time_of_joining_resource_pool: The time_of_joining_resource_pool of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_of_joining_resource_pool = time_of_joining_resource_pool

    @property
    def resource_pool_leader_id(self):
        """
        Gets the resource_pool_leader_id of this AutonomousDwDatabase.
        The unique identifier for leader Autonomous AI Database OCID `OCID`__.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The resource_pool_leader_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._resource_pool_leader_id

    @resource_pool_leader_id.setter
    def resource_pool_leader_id(self, resource_pool_leader_id):
        """
        Sets the resource_pool_leader_id of this AutonomousDwDatabase.
        The unique identifier for leader Autonomous AI Database OCID `OCID`__.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param resource_pool_leader_id: The resource_pool_leader_id of this AutonomousDwDatabase.
        :type: str
        """
        self._resource_pool_leader_id = resource_pool_leader_id

    @property
    def resource_pool_summary(self):
        """
        Gets the resource_pool_summary of this AutonomousDwDatabase.

        :return: The resource_pool_summary of this AutonomousDwDatabase.
        :rtype: oci.database.models.ResourcePoolSummary
        """
        return self._resource_pool_summary

    @resource_pool_summary.setter
    def resource_pool_summary(self, resource_pool_summary):
        """
        Sets the resource_pool_summary of this AutonomousDwDatabase.

        :param resource_pool_summary: The resource_pool_summary of this AutonomousDwDatabase.
        :type: oci.database.models.ResourcePoolSummary
        """
        self._resource_pool_summary = resource_pool_summary

    @property
    def is_reconnect_clone_enabled(self):
        """
        Gets the is_reconnect_clone_enabled of this AutonomousDwDatabase.
        Indicates if the refreshable clone can be reconnected to its source database.


        :return: The is_reconnect_clone_enabled of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_reconnect_clone_enabled

    @is_reconnect_clone_enabled.setter
    def is_reconnect_clone_enabled(self, is_reconnect_clone_enabled):
        """
        Sets the is_reconnect_clone_enabled of this AutonomousDwDatabase.
        Indicates if the refreshable clone can be reconnected to its source database.


        :param is_reconnect_clone_enabled: The is_reconnect_clone_enabled of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_reconnect_clone_enabled = is_reconnect_clone_enabled

    @property
    def time_until_reconnect_clone_enabled(self):
        """
        Gets the time_until_reconnect_clone_enabled of this AutonomousDwDatabase.
        The time and date as an RFC3339 formatted string, e.g., 2022-01-01T12:00:00.000Z, to set the limit for a refreshable clone to be reconnected to its source database.


        :return: The time_until_reconnect_clone_enabled of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_until_reconnect_clone_enabled

    @time_until_reconnect_clone_enabled.setter
    def time_until_reconnect_clone_enabled(self, time_until_reconnect_clone_enabled):
        """
        Sets the time_until_reconnect_clone_enabled of this AutonomousDwDatabase.
        The time and date as an RFC3339 formatted string, e.g., 2022-01-01T12:00:00.000Z, to set the limit for a refreshable clone to be reconnected to its source database.


        :param time_until_reconnect_clone_enabled: The time_until_reconnect_clone_enabled of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_until_reconnect_clone_enabled = time_until_reconnect_clone_enabled

    @property
    def autonomous_maintenance_schedule_type(self):
        """
        Gets the autonomous_maintenance_schedule_type of this AutonomousDwDatabase.
        The maintenance schedule type of the Autonomous AI Database Serverless. An EARLY maintenance schedule
        follows a schedule applying patches prior to the REGULAR schedule. A REGULAR maintenance schedule follows the normal cycle

        Allowed values for this property are: "EARLY", "REGULAR"


        :return: The autonomous_maintenance_schedule_type of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._autonomous_maintenance_schedule_type

    @autonomous_maintenance_schedule_type.setter
    def autonomous_maintenance_schedule_type(self, autonomous_maintenance_schedule_type):
        """
        Sets the autonomous_maintenance_schedule_type of this AutonomousDwDatabase.
        The maintenance schedule type of the Autonomous AI Database Serverless. An EARLY maintenance schedule
        follows a schedule applying patches prior to the REGULAR schedule. A REGULAR maintenance schedule follows the normal cycle


        :param autonomous_maintenance_schedule_type: The autonomous_maintenance_schedule_type of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["EARLY", "REGULAR"]
        if not value_allowed_none_or_none_sentinel(autonomous_maintenance_schedule_type, allowed_values):
            raise ValueError(
                f"Invalid value for `autonomous_maintenance_schedule_type`, must be None or one of {allowed_values}"
            )
        self._autonomous_maintenance_schedule_type = autonomous_maintenance_schedule_type

    @property
    def autonomous_database_maintenance_window(self):
        """
        Gets the autonomous_database_maintenance_window of this AutonomousDwDatabase.

        :return: The autonomous_database_maintenance_window of this AutonomousDwDatabase.
        :rtype: oci.database.models.AutonomousDatabaseMaintenanceWindowSummary
        """
        return self._autonomous_database_maintenance_window

    @autonomous_database_maintenance_window.setter
    def autonomous_database_maintenance_window(self, autonomous_database_maintenance_window):
        """
        Sets the autonomous_database_maintenance_window of this AutonomousDwDatabase.

        :param autonomous_database_maintenance_window: The autonomous_database_maintenance_window of this AutonomousDwDatabase.
        :type: oci.database.models.AutonomousDatabaseMaintenanceWindowSummary
        """
        self._autonomous_database_maintenance_window = autonomous_database_maintenance_window

    @property
    def time_maintenance_pause_until(self):
        """
        Gets the time_maintenance_pause_until of this AutonomousDwDatabase.
        The date until which Autonomous AI Database maintenance is temporarily paused.


        :return: The time_maintenance_pause_until of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_maintenance_pause_until

    @time_maintenance_pause_until.setter
    def time_maintenance_pause_until(self, time_maintenance_pause_until):
        """
        Sets the time_maintenance_pause_until of this AutonomousDwDatabase.
        The date until which Autonomous AI Database maintenance is temporarily paused.


        :param time_maintenance_pause_until: The time_maintenance_pause_until of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_maintenance_pause_until = time_maintenance_pause_until

    @property
    def scheduled_operations(self):
        """
        Gets the scheduled_operations of this AutonomousDwDatabase.
        The list of scheduled operations. Consists of values such as dayOfWeek, scheduledStartTime, scheduledStopTime.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, whitelistedIps, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.


        :return: The scheduled_operations of this AutonomousDwDatabase.
        :rtype: list[oci.database.models.ScheduledOperationDetails]
        """
        return self._scheduled_operations

    @scheduled_operations.setter
    def scheduled_operations(self, scheduled_operations):
        """
        Sets the scheduled_operations of this AutonomousDwDatabase.
        The list of scheduled operations. Consists of values such as dayOfWeek, scheduledStartTime, scheduledStopTime.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, whitelistedIps, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.


        :param scheduled_operations: The scheduled_operations of this AutonomousDwDatabase.
        :type: list[oci.database.models.ScheduledOperationDetails]
        """
        self._scheduled_operations = scheduled_operations

    @property
    def is_auto_scaling_for_storage_enabled(self):
        """
        Gets the is_auto_scaling_for_storage_enabled of this AutonomousDwDatabase.
        Indicates if auto scaling is enabled for the Autonomous AI Database storage. The default value is `FALSE`.


        :return: The is_auto_scaling_for_storage_enabled of this AutonomousDwDatabase.
        :rtype: bool
        """
        return self._is_auto_scaling_for_storage_enabled

    @is_auto_scaling_for_storage_enabled.setter
    def is_auto_scaling_for_storage_enabled(self, is_auto_scaling_for_storage_enabled):
        """
        Sets the is_auto_scaling_for_storage_enabled of this AutonomousDwDatabase.
        Indicates if auto scaling is enabled for the Autonomous AI Database storage. The default value is `FALSE`.


        :param is_auto_scaling_for_storage_enabled: The is_auto_scaling_for_storage_enabled of this AutonomousDwDatabase.
        :type: bool
        """
        self._is_auto_scaling_for_storage_enabled = is_auto_scaling_for_storage_enabled

    @property
    def allocated_storage_size_in_tbs(self):
        """
        Gets the allocated_storage_size_in_tbs of this AutonomousDwDatabase.
        The amount of storage currently allocated for the database tables and billed for, rounded up. When auto-scaling is not enabled, this value is equal to the `dataStorageSizeInTBs` value. You can compare this value to the `actualUsedDataStorageSizeInTBs` value to determine if a manual shrink operation is appropriate for your allocated storage.

        **Note:** Auto-scaling does not automatically decrease allocated storage when data is deleted from the database.


        :return: The allocated_storage_size_in_tbs of this AutonomousDwDatabase.
        :rtype: float
        """
        return self._allocated_storage_size_in_tbs

    @allocated_storage_size_in_tbs.setter
    def allocated_storage_size_in_tbs(self, allocated_storage_size_in_tbs):
        """
        Sets the allocated_storage_size_in_tbs of this AutonomousDwDatabase.
        The amount of storage currently allocated for the database tables and billed for, rounded up. When auto-scaling is not enabled, this value is equal to the `dataStorageSizeInTBs` value. You can compare this value to the `actualUsedDataStorageSizeInTBs` value to determine if a manual shrink operation is appropriate for your allocated storage.

        **Note:** Auto-scaling does not automatically decrease allocated storage when data is deleted from the database.


        :param allocated_storage_size_in_tbs: The allocated_storage_size_in_tbs of this AutonomousDwDatabase.
        :type: float
        """
        self._allocated_storage_size_in_tbs = allocated_storage_size_in_tbs

    @property
    def actual_used_data_storage_size_in_tbs(self):
        """
        Gets the actual_used_data_storage_size_in_tbs of this AutonomousDwDatabase.
        The current amount of storage in use for user and system data, in terabytes (TB).


        :return: The actual_used_data_storage_size_in_tbs of this AutonomousDwDatabase.
        :rtype: float
        """
        return self._actual_used_data_storage_size_in_tbs

    @actual_used_data_storage_size_in_tbs.setter
    def actual_used_data_storage_size_in_tbs(self, actual_used_data_storage_size_in_tbs):
        """
        Sets the actual_used_data_storage_size_in_tbs of this AutonomousDwDatabase.
        The current amount of storage in use for user and system data, in terabytes (TB).


        :param actual_used_data_storage_size_in_tbs: The actual_used_data_storage_size_in_tbs of this AutonomousDwDatabase.
        :type: float
        """
        self._actual_used_data_storage_size_in_tbs = actual_used_data_storage_size_in_tbs

    @property
    def database_edition(self):
        """
        Gets the database_edition of this AutonomousDwDatabase.
        The Oracle AI Database Edition that applies to the Autonomous AI Databases.

        Allowed values for this property are: "STANDARD_EDITION", "ENTERPRISE_EDITION"


        :return: The database_edition of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._database_edition

    @database_edition.setter
    def database_edition(self, database_edition):
        """
        Sets the database_edition of this AutonomousDwDatabase.
        The Oracle AI Database Edition that applies to the Autonomous AI Databases.


        :param database_edition: The database_edition of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["STANDARD_EDITION", "ENTERPRISE_EDITION"]
        if not value_allowed_none_or_none_sentinel(database_edition, allowed_values):
            raise ValueError(
                f"Invalid value for `database_edition`, must be None or one of {allowed_values}"
            )
        self._database_edition = database_edition

    @property
    def db_tools_details(self):
        """
        Gets the db_tools_details of this AutonomousDwDatabase.
        The list of database tools details.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, whitelistedIps, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, isLocalDataGuardEnabled, or isFreeTier.


        :return: The db_tools_details of this AutonomousDwDatabase.
        :rtype: list[oci.database.models.DatabaseTool]
        """
        return self._db_tools_details

    @db_tools_details.setter
    def db_tools_details(self, db_tools_details):
        """
        Sets the db_tools_details of this AutonomousDwDatabase.
        The list of database tools details.

        This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, whitelistedIps, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, isLocalDataGuardEnabled, or isFreeTier.


        :param db_tools_details: The db_tools_details of this AutonomousDwDatabase.
        :type: list[oci.database.models.DatabaseTool]
        """
        self._db_tools_details = db_tools_details

    @property
    def vanity_url_details(self):
        """
        Gets the vanity_url_details of this AutonomousDwDatabase.

        :return: The vanity_url_details of this AutonomousDwDatabase.
        :rtype: oci.database.models.VanityUrlDetails
        """
        return self._vanity_url_details

    @vanity_url_details.setter
    def vanity_url_details(self, vanity_url_details):
        """
        Sets the vanity_url_details of this AutonomousDwDatabase.

        :param vanity_url_details: The vanity_url_details of this AutonomousDwDatabase.
        :type: oci.database.models.VanityUrlDetails
        """
        self._vanity_url_details = vanity_url_details

    @property
    def local_disaster_recovery_type(self):
        """
        Gets the local_disaster_recovery_type of this AutonomousDwDatabase.
        Indicates the local disaster recovery (DR) type of the Autonomous AI Database Serverless instance.
        Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover.
        Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.


        :return: The local_disaster_recovery_type of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._local_disaster_recovery_type

    @local_disaster_recovery_type.setter
    def local_disaster_recovery_type(self, local_disaster_recovery_type):
        """
        Sets the local_disaster_recovery_type of this AutonomousDwDatabase.
        Indicates the local disaster recovery (DR) type of the Autonomous AI Database Serverless instance.
        Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover.
        Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.


        :param local_disaster_recovery_type: The local_disaster_recovery_type of this AutonomousDwDatabase.
        :type: str
        """
        self._local_disaster_recovery_type = local_disaster_recovery_type

    @property
    def disaster_recovery_region_type(self):
        """
        Gets the disaster_recovery_region_type of this AutonomousDwDatabase.
        **Deprecated.** The disaster recovery (DR) region type of the Autonomous AI Database. For Autonomous AI Database Serverless instances, DR associations have designated primary and standby regions. These region types do not change when the database changes roles. The standby region in DR associations can be the same region as the primary region, or they can be in a remote regions. Some database administration operations may be available only in the primary region of the DR association, and cannot be performed when the database using the primary role is operating in a remote region.

        Allowed values for this property are: "PRIMARY", "REMOTE"


        :return: The disaster_recovery_region_type of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._disaster_recovery_region_type

    @disaster_recovery_region_type.setter
    def disaster_recovery_region_type(self, disaster_recovery_region_type):
        """
        Sets the disaster_recovery_region_type of this AutonomousDwDatabase.
        **Deprecated.** The disaster recovery (DR) region type of the Autonomous AI Database. For Autonomous AI Database Serverless instances, DR associations have designated primary and standby regions. These region types do not change when the database changes roles. The standby region in DR associations can be the same region as the primary region, or they can be in a remote regions. Some database administration operations may be available only in the primary region of the DR association, and cannot be performed when the database using the primary role is operating in a remote region.


        :param disaster_recovery_region_type: The disaster_recovery_region_type of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["PRIMARY", "REMOTE"]
        if not value_allowed_none_or_none_sentinel(disaster_recovery_region_type, allowed_values):
            raise ValueError(
                f"Invalid value for `disaster_recovery_region_type`, must be None or one of {allowed_values}"
            )
        self._disaster_recovery_region_type = disaster_recovery_region_type

    @property
    def time_disaster_recovery_role_changed(self):
        """
        Gets the time_disaster_recovery_role_changed of this AutonomousDwDatabase.
        The date and time the Disaster Recovery role was switched for the standby Autonomous AI Database.


        :return: The time_disaster_recovery_role_changed of this AutonomousDwDatabase.
        :rtype: datetime
        """
        return self._time_disaster_recovery_role_changed

    @time_disaster_recovery_role_changed.setter
    def time_disaster_recovery_role_changed(self, time_disaster_recovery_role_changed):
        """
        Sets the time_disaster_recovery_role_changed of this AutonomousDwDatabase.
        The date and time the Disaster Recovery role was switched for the standby Autonomous AI Database.


        :param time_disaster_recovery_role_changed: The time_disaster_recovery_role_changed of this AutonomousDwDatabase.
        :type: datetime
        """
        self._time_disaster_recovery_role_changed = time_disaster_recovery_role_changed

    @property
    def remote_disaster_recovery_configuration(self):
        """
        Gets the remote_disaster_recovery_configuration of this AutonomousDwDatabase.

        :return: The remote_disaster_recovery_configuration of this AutonomousDwDatabase.
        :rtype: oci.database.models.DisasterRecoveryConfiguration
        """
        return self._remote_disaster_recovery_configuration

    @remote_disaster_recovery_configuration.setter
    def remote_disaster_recovery_configuration(self, remote_disaster_recovery_configuration):
        """
        Sets the remote_disaster_recovery_configuration of this AutonomousDwDatabase.

        :param remote_disaster_recovery_configuration: The remote_disaster_recovery_configuration of this AutonomousDwDatabase.
        :type: oci.database.models.DisasterRecoveryConfiguration
        """
        self._remote_disaster_recovery_configuration = remote_disaster_recovery_configuration

    @property
    def net_services_architecture(self):
        """
        Gets the net_services_architecture of this AutonomousDwDatabase.
        Enabling SHARED server architecture enables a database server to allow many client processes to share very few server processes, thereby increasing the number of supported users.

        Allowed values for this property are: "DEDICATED", "SHARED", "DRCP"


        :return: The net_services_architecture of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._net_services_architecture

    @net_services_architecture.setter
    def net_services_architecture(self, net_services_architecture):
        """
        Sets the net_services_architecture of this AutonomousDwDatabase.
        Enabling SHARED server architecture enables a database server to allow many client processes to share very few server processes, thereby increasing the number of supported users.


        :param net_services_architecture: The net_services_architecture of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["DEDICATED", "SHARED", "DRCP"]
        if not value_allowed_none_or_none_sentinel(net_services_architecture, allowed_values):
            raise ValueError(
                f"Invalid value for `net_services_architecture`, must be None or one of {allowed_values}"
            )
        self._net_services_architecture = net_services_architecture

    @property
    def availability_domain(self):
        """
        Gets the availability_domain of this AutonomousDwDatabase.
        The availability domain where the Autonomous AI Database Serverless instance is located.


        :return: The availability_domain of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._availability_domain

    @availability_domain.setter
    def availability_domain(self, availability_domain):
        """
        Sets the availability_domain of this AutonomousDwDatabase.
        The availability domain where the Autonomous AI Database Serverless instance is located.


        :param availability_domain: The availability_domain of this AutonomousDwDatabase.
        :type: str
        """
        self._availability_domain = availability_domain

    @property
    def cluster_placement_group_id(self):
        """
        Gets the cluster_placement_group_id of this AutonomousDwDatabase.
        The `OCID`__ of the cluster placement group of the Autonomous Serverless Database.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The cluster_placement_group_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._cluster_placement_group_id

    @cluster_placement_group_id.setter
    def cluster_placement_group_id(self, cluster_placement_group_id):
        """
        Sets the cluster_placement_group_id of this AutonomousDwDatabase.
        The `OCID`__ of the cluster placement group of the Autonomous Serverless Database.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param cluster_placement_group_id: The cluster_placement_group_id of this AutonomousDwDatabase.
        :type: str
        """
        self._cluster_placement_group_id = cluster_placement_group_id

    @property
    def clone_table_space_list(self):
        """
        Gets the clone_table_space_list of this AutonomousDwDatabase.
        A list of the source Autonomous AI Database's table space number(s) used to create this partial clone from the backup.


        :return: The clone_table_space_list of this AutonomousDwDatabase.
        :rtype: list[int]
        """
        return self._clone_table_space_list

    @clone_table_space_list.setter
    def clone_table_space_list(self, clone_table_space_list):
        """
        Sets the clone_table_space_list of this AutonomousDwDatabase.
        A list of the source Autonomous AI Database's table space number(s) used to create this partial clone from the backup.


        :param clone_table_space_list: The clone_table_space_list of this AutonomousDwDatabase.
        :type: list[int]
        """
        self._clone_table_space_list = clone_table_space_list

    @property
    def clone_type(self):
        """
        Gets the clone_type of this AutonomousDwDatabase.
        The Autonomous AI Database clone type.

        Allowed values for this property are: "FULL", "METADATA", "PARTIAL"


        :return: The clone_type of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._clone_type

    @clone_type.setter
    def clone_type(self, clone_type):
        """
        Sets the clone_type of this AutonomousDwDatabase.
        The Autonomous AI Database clone type.


        :param clone_type: The clone_type of this AutonomousDwDatabase.
        :type: str
        """
        allowed_values = ["FULL", "METADATA", "PARTIAL"]
        if not value_allowed_none_or_none_sentinel(clone_type, allowed_values):
            raise ValueError(
                f"Invalid value for `clone_type`, must be None or one of {allowed_values}"
            )
        self._clone_type = clone_type

    @property
    def additional_attributes(self):
        """
        Gets the additional_attributes of this AutonomousDwDatabase.
        Additional attributes for this resource. Each attribute is a simple key-value pair with no predefined name, type, or namespace.
        Example: `{ \"gcpAccountName\": \"gcpName\" }`


        :return: The additional_attributes of this AutonomousDwDatabase.
        :rtype: dict(str, str)
        """
        return self._additional_attributes

    @additional_attributes.setter
    def additional_attributes(self, additional_attributes):
        """
        Sets the additional_attributes of this AutonomousDwDatabase.
        Additional attributes for this resource. Each attribute is a simple key-value pair with no predefined name, type, or namespace.
        Example: `{ \"gcpAccountName\": \"gcpName\" }`


        :param additional_attributes: The additional_attributes of this AutonomousDwDatabase.
        :type: dict(str, str)
        """
        self._additional_attributes = additional_attributes

    @property
    def local_adg_resource_pool_leader_id(self):
        """
        Gets the local_adg_resource_pool_leader_id of this AutonomousDwDatabase.
        The `OCID`__ of the dedicated resource pool leader Autonomous AI Database in the same region, associated with local Autonomous Data Guard for a dedicated resource pool member.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The local_adg_resource_pool_leader_id of this AutonomousDwDatabase.
        :rtype: str
        """
        return self._local_adg_resource_pool_leader_id

    @local_adg_resource_pool_leader_id.setter
    def local_adg_resource_pool_leader_id(self, local_adg_resource_pool_leader_id):
        """
        Sets the local_adg_resource_pool_leader_id of this AutonomousDwDatabase.
        The `OCID`__ of the dedicated resource pool leader Autonomous AI Database in the same region, associated with local Autonomous Data Guard for a dedicated resource pool member.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param local_adg_resource_pool_leader_id: The local_adg_resource_pool_leader_id of this AutonomousDwDatabase.
        :type: str
        """
        self._local_adg_resource_pool_leader_id = local_adg_resource_pool_leader_id

    def __repr__(self):
        return formatted_flat_dict(self)

    def __eq__(self, other):
        if other is None:
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not self == other
