// 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.Release,
			bigTables: false,
			characterSetServer: mysql.models.ConfigurationVariables.CharacterSetServer.Koi8U,
			collationServer: mysql.models.ConfigurationVariables.CollationServer.Ucs2CroatianCi,
			connectionMemoryChunkSize: 192927682,
			connectionMemoryLimit: 3834928129022500352,
			defaultAuthenticationPlugin: mysql.models.ConfigurationVariables.DefaultAuthenticationPlugin.Sha256Password,
			globalConnectionMemoryLimit: 1274507406713602048,
			globalConnectionMemoryTracking: true,
			transactionIsolation: mysql.models.ConfigurationVariables.TransactionIsolation.ReadCommited,
			innodbFtServerStopwordTable: "EXAMPLE-innodbFtServerStopwordTable-Value",
			mandatoryRoles: "EXAMPLE-mandatoryRoles-Value",
			autocommit: true,
			foreignKeyChecks: true,
			groupReplicationConsistency: mysql.models.ConfigurationVariables.GroupReplicationConsistency.BeforeAndAfter,
			groupConcatMaxLen: 1256925138084925444,
			innodbFtEnableStopword: true,
			innodbLogWriterThreads: false,
			localInfile: false,
			mysqlFirewallMode: true,
			mysqlxEnableHelloNotice: false,
			sqlRequirePrimaryKey: false,
			sqlWarnings: false,
			binlogExpireLogsSeconds: 914,
			binlogRowMetadata: mysql.models.ConfigurationVariables.BinlogRowMetadata.Full,
			binlogRowValueOptions: "EXAMPLE-binlogRowValueOptions-Value",
			binlogTransactionCompression: true,
			innodbBufferPoolSize: 9108458715439586304,
			innodbFtResultCacheLimit: 324622693,
			maxBinlogCacheSize: 26554438194117,
			maxConnectErrors: 7493340565905219585,
			maxHeapTableSize: 8605309624583040000,
			maxConnections: 8524,
			maxPreparedStmtCount: 1795874,
			connectTimeout: 26874847,
			cteMaxRecursionDepth: 3053140759,
			generatedRandomPasswordLength: 24,
			informationSchemaStatsExpiry: 23401354,
			innodbBufferPoolDumpPct: 65,
			innodbBufferPoolInstances: 23,
			innodbDdlBufferSize: 1918027521,
			innodbDdlThreads: 46,
			innodbFtMaxTokenSize: 33,
			innodbFtMinTokenSize: 12,
			innodbFtNumWordOptimize: 547,
			innodbLockWaitTimeout: 225668927,
			innodbMaxPurgeLag: 1122758422,
			innodbMaxPurgeLagDelay: 221885,
			interactiveTimeout: 18964658,
			innodbStatsPersistentSamplePages: 8791944985731747841,
			innodbStatsTransientSamplePages: 8516516716995364865,
			innodbStrictMode: true,
			maxAllowedPacket: 310759071,
			maxExecutionTime: 4670222945982518272,
			mysqlxConnectTimeout: 500290376,
			mysqlxDocumentIdUniquePrefix: 19897,
			mysqlxIdleWorkerThreadTimeout: 385,
			mysqlxInteractiveTimeout: 2022028,
			mysqlxMaxAllowedPacket: 322103832,
			mysqlxMinWorkerThreads: 24,
			mysqlxReadTimeout: 1044214,
			mysqlxWaitTimeout: 182181,
			mysqlxWriteTimeout: 1967189,
			netReadTimeout: 27178733,
			netWriteTimeout: 24688054,
			parserMaxMemSize: 7080087793118543488,
			queryAllocBlockSize: 2045019183,
			queryPreallocSize: 2357752156821787648,
			regexpTimeLimit: 738632144,
			sqlMode: "EXAMPLE-sqlMode-Value",
			tmpTableSize: 3413399474143773184,
			mysqlxDeflateDefaultCompressionLevel: 5,
			mysqlxDeflateMaxClientCompressionLevel: 4,
			mysqlxLz4MaxClientCompressionLevel: 8,
			mysqlxLz4DefaultCompressionLevel: 13,
			mysqlxZstdMaxClientCompressionLevel: 17,
			mysqlxZstdDefaultCompressionLevel: 13,
			mysqlZstdDefaultCompressionLevel: 4,
			sortBufferSize: 1045836083207482752,
			waitTimeout: 1905421,
			threadPoolDedicatedListeners: false,
			threadPoolMaxTransactionsLimit: 7443,
			timeZone: "EXAMPLE-timeZone-Value",
			blockEncryptionMode: "EXAMPLE-blockEncryptionMode-Value",
			binlogGroupCommitSyncDelay: 39003,
			binlogGroupCommitSyncNoDelayCount: 64710,
			replicaNetTimeout: 3317325,
			requireSecureTransport: true,
			innodbRedoLogCapacity: 14577570825,
			threadPoolTransactionDelay: 96745,
			threadPoolQueryThreadsPerGroup: 2466,
			explainFormat: mysql.models.ConfigurationVariables.ExplainFormat.Traditional,
			explicitDefaultsForTimestamp: false,
			sqlGenerateInvisiblePrimaryKey: true,
			temptableMaxRam: 4973003394375117824,
			innodbChangeBuffering: mysql.models.ConfigurationVariables.InnodbChangeBuffering.Inserts,
			innodbAdaptiveHashIndex: true,
			innodbUndoLogTruncate: false,
			tableDefinitionCache: 192099,
			tableOpenCache: 27749,
			relayLogSpaceLimit: 2125986105223474176,
			optimizerSwitch: "EXAMPLE-optimizerSwitch-Value",
			replicaTypeConversions: "EXAMPLE-replicaTypeConversions-Value",
			replicaParallelWorkers: 133,
			skipNameResolve: false,
			maxUserConnections: 4100890988,
			joinBufferSize: 6132403214944400512,
			maxSeeksForKey: 7682420465313274881,
			rangeOptimizerMaxMemSize: 434232806223625216,
			autoIncrementIncrement: 32614,
			autoIncrementOffset: 62317,
			innodbAutoincLockMode: 716,
			innodbRollbackOnTimeout: false,
			innodbOnlineAlterLogMaxSize: 8369465958761122816,
			innodbSortBufferSize: 19504078,
			innodbNumaInterleave: false,
			threadPoolSize: 174,
			longQueryTime: 145984,

			}
,
		parentConfigurationId: "ocid1.test.oc1..<unique_ID>EXAMPLE-parentConfigurationId-Value",
		freeformTags: {
			EXAMPLE_KEY_8Kiyb :"EXAMPLE_VALUE_lfJYsBV796MxRjLQAxxB"
			},
		definedTags: {
			EXAMPLE_KEY_AlCVH :{
				EXAMPLE_KEY_ULiFE :"EXAMPLE--Value"
				}
			},

		}

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