# This is an automatically generated code sample.
# To make this code sample work in your Oracle Cloud tenancy,
# please replace the values for any parameters whose current values do not fit
# your use case (such as resource IDs, strings containing ‘EXAMPLE’ or ‘unique_id’, and
# boolean, number, and enum parameters with values not fitting your use case).

require 'oci'

# Create a default config using DEFAULT profile in default location
# Refer to https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File for more info
config = OCI::ConfigFileLoader.load_config

# Initialize service client with default config file
database_client = OCI::Database::DatabaseClient.new(config: config)

# Send the request to service, some parameters are not required, see API doc for more info
create_database_response =
  database_client.create_database(
    OCI::Database::Models::CreateNewDatabaseDetails.new(
      source: 'NONE',
      db_home_id: 'ocid1.test.oc1..<unique_ID>EXAMPLE-dbHomeId-Value',
      database:
        OCI::Database::Models::CreateDatabaseDetails.new(
          db_name: 'EXAMPLE-dbName-Value',
          admin_password: 'EXAMPLE-adminPassword-Value',
          db_unique_name: 'EXAMPLE-dbUniqueName-Value',
          database_software_image_id:
            'ocid1.test.oc1..<unique_ID>EXAMPLE-databaseSoftwareImageId-Value',
          pdb_name: 'EXAMPLE-pdbName-Value',
          tde_wallet_password: 'EXAMPLE-tdeWalletPassword-Value',
          character_set: 'EXAMPLE-characterSet-Value',
          ncharacter_set: 'EXAMPLE-ncharacterSet-Value',
          db_workload: 'OLTP',
          db_backup_config:
            OCI::Database::Models::DbBackupConfig.new(
              auto_backup_enabled: false,
              recovery_window_in_days: 51,
              auto_backup_window: 'SLOT_TWO',
              auto_full_backup_window: 'SLOT_TWO',
              auto_full_backup_day: 'THURSDAY',
              run_immediate_full_backup: false,
              backup_destination_details: [
                OCI::Database::Models::BackupDestinationDetails.new(
                  type: 'RECOVERY_APPLIANCE',
                  id: 'ocid1.test.oc1..<unique_ID>EXAMPLE-id-Value',
                  vpc_user: 'EXAMPLE-vpcUser-Value',
                  vpc_password: 'EXAMPLE-vpcPassword-Value',
                  internet_proxy: 'EXAMPLE-internetProxy-Value',
                  dbrs_policy_id:
                    'ocid1.test.oc1..<unique_ID>EXAMPLE-dbrsPolicyId-Value'
                )
              ],
              backup_deletion_policy: 'DELETE_AFTER_RETENTION_PERIOD'
            ),
          freeform_tags: {
            'EXAMPLE_KEY_XP0Ui' => 'EXAMPLE_VALUE_wkiRh716XuWgiyKgGHij'
          },
          defined_tags: {
            'EXAMPLE_KEY_K70g2' => { 'EXAMPLE_KEY_3sMsI' => 'EXAMPLE--Value' }
          },
          kms_key_id: 'ocid1.test.oc1..<unique_ID>EXAMPLE-kmsKeyId-Value',
          kms_key_version_id:
            'ocid1.test.oc1..<unique_ID>EXAMPLE-kmsKeyVersionId-Value',
          vault_id: 'ocid1.test.oc1..<unique_ID>EXAMPLE-vaultId-Value',
          sid_prefix: 'EXAMPLE-sidPrefix-Value'
        ),
      db_version: 'EXAMPLE-dbVersion-Value',
      kms_key_id: 'ocid1.test.oc1..<unique_ID>EXAMPLE-kmsKeyId-Value',
      kms_key_version_id:
        'ocid1.test.oc1..<unique_ID>EXAMPLE-kmsKeyVersionId-Value'
    )
  )

# Get the data from response
puts "#{create_database_response.data}"