// 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).

import * as database from "oci-database";
import common = require("oci-common");

// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.

const provider: common.ConfigFileAuthenticationDetailsProvider = new common.ConfigFileAuthenticationDetailsProvider();

(async () => {
    try {
     // Create a service client
     const client = new database.DatabaseClient({ authenticationDetailsProvider: provider });

     // Create a request and dependent object(s).
	const  createAutonomousDatabaseBase = {
		source: "CROSS_REGION_DISASTER_RECOVERY",		sourceId: "ocid1.test.oc1..<unique_ID>EXAMPLE-sourceId-Value",
		remoteDisasterRecoveryType: database.models.DisasterRecoveryConfiguration.DisasterRecoveryType.Adg,
		isReplicateAutomaticBackups: true,
		subscriptionId: "ocid1.test.oc1..<unique_ID>EXAMPLE-subscriptionId-Value",
		compartmentId: "ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value",
		characterSet: "EXAMPLE-characterSet-Value",
		ncharacterSet: "EXAMPLE-ncharacterSet-Value",
		dbName: "EXAMPLE-dbName-Value",
		cpuCoreCount: 31,
		backupRetentionPeriodInDays: 2765,
		computeModel: database.models.CreateAutonomousDatabaseBase.ComputeModel.Ocpu,
		computeCount: 3035.255,
		ocpuCount: 6601.093,
		dbWorkload: database.models.CreateAutonomousDatabaseBase.DbWorkload.Dw,
		dataStorageSizeInTBs: 308,
		dataStorageSizeInGBs: 65539,
		isFreeTier: false,
		kmsKeyId: "ocid1.test.oc1..<unique_ID>EXAMPLE-kmsKeyId-Value",
		vaultId: "ocid1.test.oc1..<unique_ID>EXAMPLE-vaultId-Value",
		encryptionKey: {
			provider: "OCI",			kmsKeyId: "ocid1.test.oc1..<unique_ID>EXAMPLE-kmsKeyId-Value",
			vaultId: "ocid1.test.oc1..<unique_ID>EXAMPLE-vaultId-Value"

			}
,
		adminPassword: "EXAMPLE-adminPassword-Value",
		displayName: "EXAMPLE-displayName-Value",
		licenseModel: database.models.CreateAutonomousDatabaseBase.LicenseModel.LicenseIncluded,
		byolComputeCountLimit: 2550.692,
		isPreviewVersionWithServiceTermsAccepted: false,
		isAutoScalingEnabled: false,
		isDevTier: false,
		isDedicated: false,
		autonomousContainerDatabaseId: "ocid1.test.oc1..<unique_ID>EXAMPLE-autonomousContainerDatabaseId-Value",
		inMemoryPercentage: 295,
		isAccessControlEnabled: false,
		whitelistedIps: ["EXAMPLE--Value"				],
		arePrimaryWhitelistedIpsUsed: true,
		standbyWhitelistedIps: ["EXAMPLE--Value"				],
		isDataGuardEnabled: false,
		isLocalDataGuardEnabled: true,
		subnetId: "ocid1.test.oc1..<unique_ID>EXAMPLE-subnetId-Value",
		nsgIds: ["EXAMPLE--Value"				],
		privateEndpointLabel: "EXAMPLE-privateEndpointLabel-Value",
		freeformTags: {
			EXAMPLE_KEY_pnQTe :"EXAMPLE_VALUE_Kgcn2nEEcavUiAVX82Aw"
			},
		definedTags: {
			EXAMPLE_KEY_nSTAs :{
				EXAMPLE_KEY_okx1R :"EXAMPLE--Value"
				}
			},
		securityAttributes: {
			EXAMPLE_KEY_BD0rH :{
				EXAMPLE_KEY_Wstag :"EXAMPLE--Value"
				}
			},
		privateEndpointIp: "EXAMPLE-privateEndpointIp-Value",
		dbVersion: "EXAMPLE-dbVersion-Value",
		customerContacts: [{
				email: "EXAMPLE-email-Value",

				}
				],
		isMtlsConnectionRequired: false,
		resourcePoolLeaderId: "ocid1.test.oc1..<unique_ID>EXAMPLE-resourcePoolLeaderId-Value",
		resourcePoolSummary: {
			poolSize: 581,
			totalComputeCapacity: 749,
			availableComputeCapacity: 581,
			isDisabled: false,

			}
,
		autonomousMaintenanceScheduleType: database.models.CreateAutonomousDatabaseBase.AutonomousMaintenanceScheduleType.Regular,
		scheduledOperations: [{
				dayOfWeek: {
					name: database.models.DayOfWeek.Name.Monday,

					}
,
				scheduledStartTime: "EXAMPLE-scheduledStartTime-Value",
				scheduledStopTime: "EXAMPLE-scheduledStopTime-Value",

				}
				],
		isAutoScalingForStorageEnabled: true,
		databaseEdition: database.models.AutonomousDatabaseSummary.DatabaseEdition.StandardEdition,
		dbToolsDetails: [{
				name: database.models.DatabaseTool.Name.MongodbApi,
				isEnabled: false,
				computeCount: 8737.636,
				maxIdleTimeInMinutes: 159,

				}
				],
		isBackupRetentionLocked: true,
		secretId: "ocid1.test.oc1..<unique_ID>EXAMPLE-secretId-Value",
		secretVersionNumber: 41

		}

	const createAutonomousDatabaseRequest: database.requests.CreateAutonomousDatabaseRequest = { 
	createAutonomousDatabaseDetails: createAutonomousDatabaseBase,
	opcRetryToken: "EXAMPLE-opcRetryToken-Value",
	opcRequestId: "FEEBDWZL2VZAS3FGEUIZ<unique_ID>",
	opcDryRun: true,

		}; 


     // Send request to the Client.
     const createAutonomousDatabaseResponse = await client.createAutonomousDatabase(createAutonomousDatabaseRequest);
     }
     catch (error) {
         console.log("createAutonomousDatabase Failed with error  " + error);
     }
})();