// 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.Chain,
			bigTables: false,
			characterSetServer: mysql.models.ConfigurationVariables.CharacterSetServer.Koi8R,
			collationServer: mysql.models.ConfigurationVariables.CollationServer.Utf32UnicodeCi,
			connectionMemoryChunkSize: 485431073,
			connectionMemoryLimit: 2678450733316852224,
			defaultAuthenticationPlugin: mysql.models.ConfigurationVariables.DefaultAuthenticationPlugin.Sha256Password,
			globalConnectionMemoryLimit: 7284076417811347456,
			globalConnectionMemoryTracking: false,
			transactionIsolation: mysql.models.ConfigurationVariables.TransactionIsolation.Serializable,
			innodbFtServerStopwordTable: "EXAMPLE-innodbFtServerStopwordTable-Value",
			mandatoryRoles: "EXAMPLE-mandatoryRoles-Value",
			autocommit: true,
			foreignKeyChecks: false,
			groupReplicationConsistency: mysql.models.ConfigurationVariables.GroupReplicationConsistency.After,
			groupConcatMaxLen: 3479188431666648068,
			innodbFtEnableStopword: false,
			innodbLogWriterThreads: false,
			localInfile: false,
			mysqlFirewallMode: true,
			mysqlxEnableHelloNotice: true,
			sqlRequirePrimaryKey: false,
			sqlWarnings: true,
			binlogExpireLogsSeconds: 885,
			binlogRowMetadata: mysql.models.ConfigurationVariables.BinlogRowMetadata.Full,
			binlogRowValueOptions: "EXAMPLE-binlogRowValueOptions-Value",
			binlogTransactionCompression: false,
			innodbBufferPoolSize: 7900504491274998784,
			innodbFtResultCacheLimit: 3410465013,
			maxBinlogCacheSize: 41441707423122,
			maxConnectErrors: 5916738585489895425,
			maxHeapTableSize: 7292030851123043328,
			maxConnections: 87774,
			maxPreparedStmtCount: 2618192,
			connectTimeout: 29423852,
			cteMaxRecursionDepth: 1265488962,
			generatedRandomPasswordLength: 60,
			informationSchemaStatsExpiry: 14770491,
			innodbBufferPoolDumpPct: 98,
			innodbBufferPoolInstances: 34,
			innodbDdlBufferSize: 1478817434,
			innodbDdlThreads: 62,
			innodbFtMaxTokenSize: 10,
			innodbFtMinTokenSize: 5,
			innodbFtNumWordOptimize: 986,
			innodbLockWaitTimeout: 693575617,
			innodbMaxPurgeLag: 3101456610,
			innodbMaxPurgeLagDelay: 488239,
			interactiveTimeout: 26171140,
			innodbStatsPersistentSamplePages: 4555282974739858433,
			innodbStatsTransientSamplePages: 6061077907819778049,
			innodbStrictMode: false,
			maxAllowedPacket: 368061508,
			maxExecutionTime: 2906434813604791296,
			mysqlxConnectTimeout: 229913741,
			mysqlxDocumentIdUniquePrefix: 47710,
			mysqlxIdleWorkerThreadTimeout: 2013,
			mysqlxInteractiveTimeout: 1394775,
			mysqlxMaxAllowedPacket: 424002980,
			mysqlxMinWorkerThreads: 84,
			mysqlxReadTimeout: 354334,
			mysqlxWaitTimeout: 1358175,
			mysqlxWriteTimeout: 399614,
			netReadTimeout: 20219036,
			netWriteTimeout: 8495389,
			parserMaxMemSize: 4847519941923652224,
			queryAllocBlockSize: 1110811759,
			queryPreallocSize: 7556449467627691008,
			regexpTimeLimit: 1370260099,
			sqlMode: "EXAMPLE-sqlMode-Value",
			tmpTableSize: 5995037896297911296,
			mysqlxDeflateDefaultCompressionLevel: 5,
			mysqlxDeflateMaxClientCompressionLevel: 1,
			mysqlxLz4MaxClientCompressionLevel: 12,
			mysqlxLz4DefaultCompressionLevel: 3,
			mysqlxZstdMaxClientCompressionLevel: 17,
			mysqlxZstdDefaultCompressionLevel: 14,
			mysqlZstdDefaultCompressionLevel: 3,
			sortBufferSize: 4959405696023328768,
			waitTimeout: 381230,
			threadPoolDedicatedListeners: true,
			threadPoolMaxTransactionsLimit: 66953,
			timeZone: "EXAMPLE-timeZone-Value",
			blockEncryptionMode: "EXAMPLE-blockEncryptionMode-Value",
			binlogGroupCommitSyncDelay: 787546,
			binlogGroupCommitSyncNoDelayCount: 15845,
			replicaNetTimeout: 23887692,
			requireSecureTransport: true,
			innodbRedoLogCapacity: 33482949043,
			threadPoolTransactionDelay: 29802,
			threadPoolQueryThreadsPerGroup: 3289,
			explainFormat: mysql.models.ConfigurationVariables.ExplainFormat.Tree,
			explicitDefaultsForTimestamp: false,
			sqlGenerateInvisiblePrimaryKey: false,
			temptableMaxRam: 209231690029577760,
			innodbChangeBuffering: mysql.models.ConfigurationVariables.InnodbChangeBuffering.Deletes,
			innodbAdaptiveHashIndex: true,
			innodbUndoLogTruncate: true,
			tableDefinitionCache: 470896,
			tableOpenCache: 138099,
			relayLogSpaceLimit: 676728232412911616,
			optimizerSwitch: "EXAMPLE-optimizerSwitch-Value",
			replicaTypeConversions: "EXAMPLE-replicaTypeConversions-Value",
			replicaParallelWorkers: 140,
			skipNameResolve: true,
			maxUserConnections: 3207690758,
			joinBufferSize: 3271153152317301888,
			maxSeeksForKey: 7324760241179744257,
			rangeOptimizerMaxMemSize: 6551538849877114880,
			autoIncrementIncrement: 52690,
			autoIncrementOffset: 7691,
			innodbAutoincLockMode: 73,
			innodbRollbackOnTimeout: false,
			innodbOnlineAlterLogMaxSize: 1627480866881545984,
			innodbSortBufferSize: 8572074,
			innodbNumaInterleave: false,
			threadPoolSize: 188,
			longQueryTime: 16700124,

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

				}
				],
		parentConfigurationId: "ocid1.test.oc1..<unique_ID>EXAMPLE-parentConfigurationId-Value",
		freeformTags: {
			EXAMPLE_KEY_ltrZ0 :"EXAMPLE_VALUE_kEL6M0LgKnWakMgIR8Ek"
			},
		definedTags: {
			EXAMPLE_KEY_onp9B :{
				EXAMPLE_KEY_Ws4hX :"EXAMPLE--Value"
				}
			},

		}

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