// 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 mysql from "oci-mysql";
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 mysql.MysqlaasClient({ authenticationDetailsProvider: provider });

     // Create a request and dependent object(s).
	const  createConfigurationDetails = {
		compartmentId: "ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value",
		description: "EXAMPLE-description-Value",
		displayName: "EXAMPLE-displayName-Value",
		shapeName: "EXAMPLE-shapeName-Value",
		initVariables: {
			lowerCaseTableNames: mysql.models.InitializationVariables.LowerCaseTableNames.CaseSensitive,

			}
,
		variables: {
			completionType: mysql.models.ConfigurationVariables.CompletionType.Chain,
			bigTables: true,
			characterSetServer: mysql.models.ConfigurationVariables.CharacterSetServer.Big5,
			collationServer: mysql.models.ConfigurationVariables.CollationServer.Latin7EstonianCs,
			connectionMemoryChunkSize: 218729474,
			connectionMemoryLimit: 8550567556318526464,
			defaultAuthenticationPlugin: mysql.models.ConfigurationVariables.DefaultAuthenticationPlugin.MysqlNativePassword,
			globalConnectionMemoryLimit: 9069934699977914368,
			globalConnectionMemoryTracking: false,
			transactionIsolation: mysql.models.ConfigurationVariables.TransactionIsolation.RepeatableRead,
			innodbFtServerStopwordTable: "EXAMPLE-innodbFtServerStopwordTable-Value",
			mandatoryRoles: "EXAMPLE-mandatoryRoles-Value",
			autocommit: true,
			foreignKeyChecks: true,
			groupReplicationConsistency: mysql.models.ConfigurationVariables.GroupReplicationConsistency.Eventual,
			groupConcatMaxLen: 1935136333654106116,
			innodbFtEnableStopword: true,
			innodbLogWriterThreads: false,
			localInfile: true,
			mysqlFirewallMode: false,
			mysqlxEnableHelloNotice: true,
			sqlRequirePrimaryKey: true,
			sqlWarnings: false,
			binlogExpireLogsSeconds: 130,
			binlogRowMetadata: mysql.models.ConfigurationVariables.BinlogRowMetadata.Minimal,
			binlogRowValueOptions: "EXAMPLE-binlogRowValueOptions-Value",
			binlogTransactionCompression: false,
			innodbBufferPoolSize: 806966952470594560,
			innodbFtResultCacheLimit: 3041666522,
			maxBinlogCacheSize: 54453548777643,
			maxConnectErrors: 4194826118289869825,
			maxHeapTableSize: 2065294929772246528,
			maxConnections: 28227,
			maxPreparedStmtCount: 1721739,
			connectTimeout: 3729657,
			cteMaxRecursionDepth: 2459023382,
			generatedRandomPasswordLength: 64,
			informationSchemaStatsExpiry: 17852748,
			innodbBufferPoolDumpPct: 87,
			innodbBufferPoolInstances: 7,
			innodbDdlBufferSize: 1837159327,
			innodbDdlThreads: 22,
			innodbFtMaxTokenSize: 17,
			innodbFtMinTokenSize: 3,
			innodbFtNumWordOptimize: 624,
			innodbLockWaitTimeout: 987215796,
			innodbMaxPurgeLag: 1133244870,
			innodbMaxPurgeLagDelay: 433906,
			interactiveTimeout: 14801541,
			innodbStatsPersistentSamplePages: 8760327834005101569,
			innodbStatsTransientSamplePages: 8963936135485078529,
			innodbStrictMode: false,
			maxAllowedPacket: 237328484,
			maxExecutionTime: 4808793049318902784,
			mysqlxConnectTimeout: 482125228,
			mysqlxDocumentIdUniquePrefix: 55532,
			mysqlxIdleWorkerThreadTimeout: 2013,
			mysqlxInteractiveTimeout: 986472,
			mysqlxMaxAllowedPacket: 68396835,
			mysqlxMinWorkerThreads: 78,
			mysqlxReadTimeout: 520698,
			mysqlxWaitTimeout: 1026648,
			mysqlxWriteTimeout: 685409,
			netReadTimeout: 1879261,
			netWriteTimeout: 12232849,
			parserMaxMemSize: 2689869282552653440,
			queryAllocBlockSize: 2275075842,
			queryPreallocSize: 6419763944092570624,
			regexpTimeLimit: 1782357458,
			sqlMode: "EXAMPLE-sqlMode-Value",
			tmpTableSize: 8194364885255244800,
			mysqlxDeflateDefaultCompressionLevel: 6,
			mysqlxDeflateMaxClientCompressionLevel: 8,
			mysqlxLz4MaxClientCompressionLevel: 0,
			mysqlxLz4DefaultCompressionLevel: 14,
			mysqlxZstdMaxClientCompressionLevel: 12,
			mysqlxZstdDefaultCompressionLevel: 4,
			mysqlZstdDefaultCompressionLevel: 5,
			sortBufferSize: 6694442463165707264,
			waitTimeout: 1268318,
			threadPoolDedicatedListeners: false,
			threadPoolMaxTransactionsLimit: 76184,
			timeZone: "EXAMPLE-timeZone-Value",
			blockEncryptionMode: "EXAMPLE-blockEncryptionMode-Value",
			binlogGroupCommitSyncDelay: 130093,
			binlogGroupCommitSyncNoDelayCount: 84780,
			replicaNetTimeout: 5061877,
			requireSecureTransport: true,
			innodbRedoLogCapacity: 108758048705,
			threadPoolTransactionDelay: 208521,
			threadPoolQueryThreadsPerGroup: 2970,
			explainFormat: mysql.models.ConfigurationVariables.ExplainFormat.Traditional,
			explicitDefaultsForTimestamp: true,
			sqlGenerateInvisiblePrimaryKey: true,
			temptableMaxRam: 3536585757181393408,
			innodbChangeBuffering: mysql.models.ConfigurationVariables.InnodbChangeBuffering.Inserts,
			innodbAdaptiveHashIndex: true,
			innodbUndoLogTruncate: false,
			tableDefinitionCache: 428463,
			tableOpenCache: 372999,
			relayLogSpaceLimit: 8355505154912084992,
			optimizerSwitch: "EXAMPLE-optimizerSwitch-Value",
			replicaTypeConversions: "EXAMPLE-replicaTypeConversions-Value",
			replicaParallelWorkers: 329,
			skipNameResolve: false,
			maxUserConnections: 554079020,
			joinBufferSize: 6059753113698933888,
			maxSeeksForKey: 8319743788668548097,
			rangeOptimizerMaxMemSize: 6598965898750038016,
			autoIncrementIncrement: 45864,
			autoIncrementOffset: 10077,
			innodbAutoincLockMode: 786,
			innodbRollbackOnTimeout: true,
			innodbOnlineAlterLogMaxSize: 5587197498745483264,
			innodbSortBufferSize: 53707843,
			innodbNumaInterleave: true,
			threadPoolSize: 476,
			longQueryTime: 3870772,

			}
,
		parentConfigurationId: "ocid1.test.oc1..<unique_ID>EXAMPLE-parentConfigurationId-Value",
		freeformTags: {
			EXAMPLE_KEY_hcMTI :"EXAMPLE_VALUE_Vfz5HZ677NZA2dsNF68W"
			},
		definedTags: {
			EXAMPLE_KEY_cTIlo :{
				EXAMPLE_KEY_XCoKh :"EXAMPLE--Value"
				}
			},

		}

	const createConfigurationRequest: mysql.requests.CreateConfigurationRequest = { 
	createConfigurationDetails: createConfigurationDetails,
	opcRequestId: "SHW7E7SMTYKXV0EWZIFZ<unique_ID>",
	opcRetryToken: "EXAMPLE-opcRetryToken-Value",

		}; 


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