// 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.Release,
			bigTables: true,
			characterSetServer: mysql.models.ConfigurationVariables.CharacterSetServer.Gb18030,
			collationServer: mysql.models.ConfigurationVariables.CollationServer.Utf16SinhalaCi,
			connectionMemoryChunkSize: 65936802,
			connectionMemoryLimit: 6716711156682219520,
			defaultAuthenticationPlugin: mysql.models.ConfigurationVariables.DefaultAuthenticationPlugin.CachingSha2Password,
			globalConnectionMemoryLimit: 3546170820907158016,
			globalConnectionMemoryTracking: false,
			transactionIsolation: mysql.models.ConfigurationVariables.TransactionIsolation.Serializable,
			innodbFtServerStopwordTable: "EXAMPLE-innodbFtServerStopwordTable-Value",
			mandatoryRoles: "EXAMPLE-mandatoryRoles-Value",
			autocommit: true,
			foreignKeyChecks: true,
			groupReplicationConsistency: mysql.models.ConfigurationVariables.GroupReplicationConsistency.Eventual,
			groupConcatMaxLen: 3925405769743622148,
			innodbFtEnableStopword: true,
			innodbLogWriterThreads: false,
			localInfile: true,
			mysqlFirewallMode: true,
			mysqlxEnableHelloNotice: false,
			sqlRequirePrimaryKey: true,
			sqlWarnings: false,
			binlogExpireLogsSeconds: 362,
			binlogRowMetadata: mysql.models.ConfigurationVariables.BinlogRowMetadata.Minimal,
			binlogRowValueOptions: "EXAMPLE-binlogRowValueOptions-Value",
			binlogTransactionCompression: false,
			innodbBufferPoolSize: 1115314833973030784,
			innodbFtResultCacheLimit: 1997437295,
			maxBinlogCacheSize: 31548048861205,
			maxConnectErrors: 1304223423420172289,
			maxHeapTableSize: 8458320913826550784,
			maxConnections: 68160,
			maxPreparedStmtCount: 1483285,
			connectTimeout: 21087220,
			cteMaxRecursionDepth: 44464814,
			generatedRandomPasswordLength: 229,
			informationSchemaStatsExpiry: 12189561,
			innodbBufferPoolDumpPct: 94,
			innodbBufferPoolInstances: 37,
			innodbDdlBufferSize: 613706721,
			innodbDdlThreads: 38,
			innodbFtMaxTokenSize: 71,
			innodbFtMinTokenSize: 11,
			innodbFtNumWordOptimize: 616,
			innodbLockWaitTimeout: 418611925,
			innodbMaxPurgeLag: 2295243598,
			innodbMaxPurgeLagDelay: 13956,
			interactiveTimeout: 16760062,
			innodbStatsPersistentSamplePages: 5047354003601163265,
			innodbStatsTransientSamplePages: 1394117987660214273,
			innodbStrictMode: true,
			maxAllowedPacket: 245284469,
			maxExecutionTime: 4730483718752466944,
			mysqlxConnectTimeout: 267456369,
			mysqlxDocumentIdUniquePrefix: 58823,
			mysqlxIdleWorkerThreadTimeout: 254,
			mysqlxInteractiveTimeout: 1778623,
			mysqlxMaxAllowedPacket: 129778950,
			mysqlxMinWorkerThreads: 50,
			mysqlxReadTimeout: 436695,
			mysqlxWaitTimeout: 1638887,
			mysqlxWriteTimeout: 198748,
			netReadTimeout: 17031540,
			netWriteTimeout: 13334690,
			parserMaxMemSize: 5688124059728178816,
			queryAllocBlockSize: 3953556227,
			queryPreallocSize: 5692470562487397376,
			regexpTimeLimit: 90990392,
			sqlMode: "EXAMPLE-sqlMode-Value",
			tmpTableSize: 7650358377314181120,
			mysqlxDeflateDefaultCompressionLevel: 4,
			mysqlxDeflateMaxClientCompressionLevel: 7,
			mysqlxLz4MaxClientCompressionLevel: 12,
			mysqlxLz4DefaultCompressionLevel: 14,
			mysqlxZstdMaxClientCompressionLevel: 9,
			mysqlxZstdDefaultCompressionLevel: 15,
			mysqlZstdDefaultCompressionLevel: 8,
			sortBufferSize: 8863935285047696384,
			waitTimeout: 1039477,
			threadPoolDedicatedListeners: true,
			threadPoolMaxTransactionsLimit: 52107,
			timeZone: "EXAMPLE-timeZone-Value",
			blockEncryptionMode: "EXAMPLE-blockEncryptionMode-Value",
			binlogGroupCommitSyncDelay: 296092,
			binlogGroupCommitSyncNoDelayCount: 10010,
			replicaNetTimeout: 5996203,
			requireSecureTransport: false,
			innodbRedoLogCapacity: 51402034521,
			threadPoolTransactionDelay: 290112,
			threadPoolQueryThreadsPerGroup: 1802,
			explainFormat: mysql.models.ConfigurationVariables.ExplainFormat.Json,
			explicitDefaultsForTimestamp: false,
			sqlGenerateInvisiblePrimaryKey: false,
			temptableMaxRam: 8952242213881496576,
			innodbChangeBuffering: mysql.models.ConfigurationVariables.InnodbChangeBuffering.All,
			innodbAdaptiveHashIndex: false,
			innodbUndoLogTruncate: false,
			tableDefinitionCache: 318090,
			tableOpenCache: 251791,
			relayLogSpaceLimit: 2617240204140218368,
			optimizerSwitch: "EXAMPLE-optimizerSwitch-Value",
			replicaTypeConversions: "EXAMPLE-replicaTypeConversions-Value",
			replicaParallelWorkers: 224,
			skipNameResolve: true,
			maxUserConnections: 2433798219,
			joinBufferSize: 7054718320277284992,
			maxSeeksForKey: 3692997336905247745,
			rangeOptimizerMaxMemSize: 7473453303899693056,
			autoIncrementIncrement: 31395,
			autoIncrementOffset: 17043,
			innodbAutoincLockMode: 7,
			innodbRollbackOnTimeout: false,
			innodbOnlineAlterLogMaxSize: 6871775778199056384,
			innodbSortBufferSize: 33906050,
			innodbNumaInterleave: true,
			threadPoolSize: 333,
			longQueryTime: 16103327,

			}
,
		parentConfigurationId: "ocid1.test.oc1..<unique_ID>EXAMPLE-parentConfigurationId-Value",
		freeformTags: {
			EXAMPLE_KEY_7Zj2Y :"EXAMPLE_VALUE_iDGiZFLTct291itlNEjN"
			},
		definedTags: {
			EXAMPLE_KEY_gZmzq :{
				EXAMPLE_KEY_hwjep :"EXAMPLE--Value"
				}
			},

		}

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