// 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.CaseInsensitiveLowercase,

			}
,
		variables: {
			completionType: mysql.models.ConfigurationVariables.CompletionType.NoChain,
			bigTables: true,
			characterSetServer: mysql.models.ConfigurationVariables.CharacterSetServer.Eucjpms,
			collationServer: mysql.models.ConfigurationVariables.CollationServer.Utf32German2Ci,
			connectionMemoryChunkSize: 103687291,
			connectionMemoryLimit: 5782655670078997504,
			defaultAuthenticationPlugin: mysql.models.ConfigurationVariables.DefaultAuthenticationPlugin.MysqlNativePassword,
			globalConnectionMemoryLimit: 8205245246942495744,
			globalConnectionMemoryTracking: true,
			transactionIsolation: mysql.models.ConfigurationVariables.TransactionIsolation.ReadUncommitted,
			innodbFtServerStopwordTable: "EXAMPLE-innodbFtServerStopwordTable-Value",
			mandatoryRoles: "EXAMPLE-mandatoryRoles-Value",
			autocommit: true,
			foreignKeyChecks: false,
			groupReplicationConsistency: mysql.models.ConfigurationVariables.GroupReplicationConsistency.Eventual,
			groupConcatMaxLen: 3432513248822693892,
			innodbFtEnableStopword: false,
			innodbLogWriterThreads: true,
			localInfile: false,
			mysqlFirewallMode: false,
			mysqlxEnableHelloNotice: true,
			sqlRequirePrimaryKey: false,
			sqlWarnings: true,
			binlogExpireLogsSeconds: 849,
			binlogRowMetadata: mysql.models.ConfigurationVariables.BinlogRowMetadata.Minimal,
			binlogRowValueOptions: "EXAMPLE-binlogRowValueOptions-Value",
			binlogTransactionCompression: true,
			innodbBufferPoolSize: 165864111105207232,
			innodbFtResultCacheLimit: 4112050419,
			maxBinlogCacheSize: 25511189905809,
			maxConnectErrors: 1051389350984802305,
			maxHeapTableSize: 5989426351856814080,
			maxConnections: 23128,
			maxPreparedStmtCount: 2123408,
			connectTimeout: 10764298,
			cteMaxRecursionDepth: 1326691455,
			generatedRandomPasswordLength: 107,
			informationSchemaStatsExpiry: 8416867,
			innodbBufferPoolDumpPct: 90,
			innodbBufferPoolInstances: 38,
			innodbDdlBufferSize: 56883576,
			innodbDdlThreads: 50,
			innodbFtMaxTokenSize: 32,
			innodbFtMinTokenSize: 9,
			innodbFtNumWordOptimize: 200,
			innodbLockWaitTimeout: 593351829,
			innodbMaxPurgeLag: 534756393,
			innodbMaxPurgeLagDelay: 555992,
			interactiveTimeout: 12517723,
			innodbStatsPersistentSamplePages: 5508326427150035969,
			innodbStatsTransientSamplePages: 758497647678822401,
			innodbStrictMode: true,
			maxAllowedPacket: 802397765,
			maxExecutionTime: 6656299111044746240,
			mysqlxConnectTimeout: 130833653,
			mysqlxDocumentIdUniquePrefix: 60524,
			mysqlxIdleWorkerThreadTimeout: 755,
			mysqlxInteractiveTimeout: 1518888,
			mysqlxMaxAllowedPacket: 234431129,
			mysqlxMinWorkerThreads: 85,
			mysqlxReadTimeout: 2069829,
			mysqlxWaitTimeout: 1396403,
			mysqlxWriteTimeout: 1986000,
			netReadTimeout: 29302886,
			netWriteTimeout: 31384291,
			parserMaxMemSize: 1867216779667325568,
			queryAllocBlockSize: 2219724216,
			queryPreallocSize: 5377114122557173760,
			regexpTimeLimit: 552355748,
			sqlMode: "EXAMPLE-sqlMode-Value",
			tmpTableSize: 7257639104542370816,
			mysqlxDeflateDefaultCompressionLevel: 2,
			mysqlxDeflateMaxClientCompressionLevel: 3,
			mysqlxLz4MaxClientCompressionLevel: 8,
			mysqlxLz4DefaultCompressionLevel: 2,
			mysqlxZstdMaxClientCompressionLevel: 4,
			mysqlxZstdDefaultCompressionLevel: 8,
			mysqlZstdDefaultCompressionLevel: 8,
			sortBufferSize: 6734819654584788992,
			waitTimeout: 307850,
			threadPoolDedicatedListeners: true,
			threadPoolMaxTransactionsLimit: 296,
			timeZone: "EXAMPLE-timeZone-Value",
			blockEncryptionMode: "EXAMPLE-blockEncryptionMode-Value",
			binlogGroupCommitSyncDelay: 718074,
			binlogGroupCommitSyncNoDelayCount: 39981,
			replicaNetTimeout: 3764422,
			requireSecureTransport: true,
			innodbRedoLogCapacity: 47886410424,
			threadPoolTransactionDelay: 58970,
			threadPoolQueryThreadsPerGroup: 2331,
			explainFormat: mysql.models.ConfigurationVariables.ExplainFormat.Json,
			explicitDefaultsForTimestamp: true,
			sqlGenerateInvisiblePrimaryKey: true,
			temptableMaxRam: 1069375461480119808,
			innodbChangeBuffering: mysql.models.ConfigurationVariables.InnodbChangeBuffering.All,
			innodbAdaptiveHashIndex: true,
			innodbUndoLogTruncate: false,
			tableDefinitionCache: 241079,
			tableOpenCache: 515796,
			relayLogSpaceLimit: 1466384267928484864,
			optimizerSwitch: "EXAMPLE-optimizerSwitch-Value",
			replicaTypeConversions: "EXAMPLE-replicaTypeConversions-Value",
			replicaParallelWorkers: 445,
			skipNameResolve: false,
			maxUserConnections: 2209650823,
			joinBufferSize: 312009083751816320,
			maxSeeksForKey: 6084801659175299073,
			rangeOptimizerMaxMemSize: 9174434229569652736,
			autoIncrementIncrement: 36514,
			autoIncrementOffset: 24970,
			innodbAutoincLockMode: 887,
			innodbRollbackOnTimeout: true,
			innodbOnlineAlterLogMaxSize: 6198084940783650816,
			innodbSortBufferSize: 31435917,
			innodbNumaInterleave: false,
			threadPoolSize: 28,
			longQueryTime: 27284367,

			}
,
		options: [{
				name: "EXAMPLE-name-Value",
				value: "EXAMPLE-value-Value",

				}
				],
		parentConfigurationId: "ocid1.test.oc1..<unique_ID>EXAMPLE-parentConfigurationId-Value",
		freeformTags: {
			EXAMPLE_KEY_6LPcc :"EXAMPLE_VALUE_XomUYbPqL3xz9yHFm2vX"
			},
		definedTags: {
			EXAMPLE_KEY_0TcGA :{
				EXAMPLE_KEY_C3GTH :"EXAMPLE--Value"
				}
			},

		}

	const createConfigurationRequest: mysql.requests.CreateConfigurationRequest = { 
	createConfigurationDetails: createConfigurationDetails,
	opcRequestId: "SMXIYMWMRRJRFDKI5LMG<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);
     }
})();