/** 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 com.oracle.bmc.ConfigFileReader;
import com.oracle.bmc.auth.AuthenticationDetailsProvider;
import com.oracle.bmc.auth.ConfigFileAuthenticationDetailsProvider;
import com.oracle.bmc.dataintegration.DataIntegrationClient;
import com.oracle.bmc.dataintegration.model.*;
import com.oracle.bmc.dataintegration.requests.*;
import com.oracle.bmc.dataintegration.responses.*;
import java.math.BigDecimal;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Date;
import java.util.UUID;
import java.util.Arrays;


public class CreateUserDefinedFunctionValidationExample {
    public static void main(String[] args) throws Exception {

        /**
         * 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.
         */
        final ConfigFileReader.ConfigFile configFile = ConfigFileReader.parseDefault();
        final AuthenticationDetailsProvider provider = new ConfigFileAuthenticationDetailsProvider(configFile);

        /* Create a service client */
        DataIntegrationClient client = DataIntegrationClient.builder().build(provider);

        /* Create a request and dependent object(s). */
	CreateUserDefinedFunctionValidationDetails createUserDefinedFunctionValidationDetails = CreateUserDefinedFunctionValidationDetails.builder()
		.key("EXAMPLE-key-Value")
		.modelType(CreateUserDefinedFunctionValidationDetails.ModelType.DisUserDefinedFunction)
		.modelVersion("EXAMPLE-modelVersion-Value")
		.parentRef(ParentReference.builder()
			.parent("EXAMPLE-parent-Value")
			.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
		.name("EXAMPLE-name-Value")
		.identifier("EXAMPLE-identifier-Value")
		.objectVersion(541)
		.signatures(new ArrayList<>(Arrays.asList(FunctionSignature.builder()
				.key("EXAMPLE-key-Value")
				.modelType(FunctionSignature.ModelType.DisFunctionSignature)
				.modelVersion("EXAMPLE-modelVersion-Value")
				.parentRef(ParentReference.builder()
					.parent("EXAMPLE-parent-Value")
					.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
				.name("EXAMPLE-name-Value")
				.retType(ConfiguredType.builder()
					.wrappedType("EXAMPLE-wrappedType-Value")
					.configValues(ConfigValues.builder()
						.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
								{
									put("EXAMPLE_KEY_Vci7i",ConfigParameterValue.builder()
								.stringValue("EXAMPLE-stringValue-Value")
								.intValue(289)
								.objectValue("EXAMPLE-objectValue-Value")
								.refValue("EXAMPLE-refValue-Value")
								.parameterValue("EXAMPLE-parameterValue-Value")
								.rootObjectValue("EXAMPLE-rootObjectValue-Value").build());
								}
 							})
						.parentRef(ParentReference.builder()
							.parent("EXAMPLE-parent-Value")
							.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build()).build())
					.configDefinition(ConfigDefinition.builder()
						.key("EXAMPLE-key-Value")
						.modelType("EXAMPLE-modelType-Value")
						.modelVersion("EXAMPLE-modelVersion-Value")
						.parentRef(ParentReference.builder()
							.parent("EXAMPLE-parent-Value")
							.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
						.name("EXAMPLE-name-Value")
						.isContained(true)
						.objectStatus(799)
						.configParameterDefinitions(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterDefinition>() {
								{
									put("EXAMPLE_KEY_pkuO9",ConfigParameterDefinition.builder()
								.parameterType(CompositeType.builder()
									.elements(new ArrayList<>(Arrays.asList(PivotField.builder()
											.expr(Expression.builder()
												.key("EXAMPLE-key-Value")
												.modelType("EXAMPLE-modelType-Value")
												.modelVersion("EXAMPLE-modelVersion-Value")
												.parentRef(ParentReference.builder()
													.parent("EXAMPLE-parent-Value")
													.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
												.exprString("EXAMPLE-exprString-Value")
												.configValues(ConfigValues.builder()
													.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
															{
																put("EXAMPLE_KEY_hKWQv",ConfigParameterValue.builder()
															.stringValue("EXAMPLE-stringValue-Value")
															.intValue(232)
															.objectValue("EXAMPLE-objectValue-Value")
															.refValue("EXAMPLE-refValue-Value")
															.parameterValue("EXAMPLE-parameterValue-Value")
															.rootObjectValue("EXAMPLE-rootObjectValue-Value").build());
															}
 														})
													.parentRef(ParentReference.builder()
														.parent("EXAMPLE-parent-Value")
														.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build()).build())
												.objectStatus(319).build())
											.columnNamePattern("EXAMPLE-columnNamePattern-Value")
											.key("EXAMPLE-key-Value")
											.modelVersion("EXAMPLE-modelVersion-Value")
											.parentRef(ParentReference.builder()
												.parent("EXAMPLE-parent-Value")
												.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
											.configValues(ConfigValues.builder()
												.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
														{
															put("EXAMPLE_KEY_eTOq8",ConfigParameterValue.builder()
														.stringValue("EXAMPLE-stringValue-Value")
														.intValue(138)
														.objectValue("EXAMPLE-objectValue-Value")
														.refValue("EXAMPLE-refValue-Value")
														.parameterValue("EXAMPLE-parameterValue-Value")
														.rootObjectValue("EXAMPLE-rootObjectValue-Value").build());
														}
 													})
												.parentRef(ParentReference.builder()
													.parent("EXAMPLE-parent-Value")
													.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build()).build())
											.objectStatus(647)
											.name("EXAMPLE-name-Value")
											.description("EXAMPLE-description-Value").build())))
									.key("EXAMPLE-key-Value")
									.modelVersion("EXAMPLE-modelVersion-Value")
									.parentRef(ParentReference.builder()
										.parent("EXAMPLE-parent-Value")
										.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
									.name("EXAMPLE-name-Value")
									.objectStatus(826)
									.description("EXAMPLE-description-Value").build())
								.parameterName("EXAMPLE-parameterName-Value")
								.description("EXAMPLE-description-Value")
								.defaultValue("EXAMPLE-defaultValue-Value")
								.classFieldName("EXAMPLE-classFieldName-Value")
								.isStatic(true)
								.isClassFieldValue(true).build());
								}
 							}).build())
					.key("EXAMPLE-key-Value")
					.modelVersion("EXAMPLE-modelVersion-Value")
					.parentRef(ParentReference.builder()
						.parent("EXAMPLE-parent-Value")
						.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
					.name("EXAMPLE-name-Value")
					.objectStatus(599)
					.description("EXAMPLE-description-Value").build())
				.arguments(new ArrayList<>(Arrays.asList(MacroField.builder()
						.expr(Expression.builder()
							.key("EXAMPLE-key-Value")
							.modelType("EXAMPLE-modelType-Value")
							.modelVersion("EXAMPLE-modelVersion-Value")
							.parentRef(ParentReference.builder()
								.parent("EXAMPLE-parent-Value")
								.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
							.exprString("EXAMPLE-exprString-Value")
							.configValues(ConfigValues.builder()
								.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
										{
											put("EXAMPLE_KEY_bADff",ConfigParameterValue.builder()
										.stringValue("EXAMPLE-stringValue-Value")
										.intValue(916)
										.objectValue("EXAMPLE-objectValue-Value")
										.refValue("EXAMPLE-refValue-Value")
										.parameterValue("EXAMPLE-parameterValue-Value")
										.rootObjectValue("EXAMPLE-rootObjectValue-Value").build());
										}
 									})
								.parentRef(ParentReference.builder()
									.parent("EXAMPLE-parent-Value")
									.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build()).build())
							.objectStatus(486).build())
						.type(DynamicType.builder()
							.typeHandler(FlattenTypeHandler.builder()
								.key("EXAMPLE-key-Value")
								.modelVersion("EXAMPLE-modelVersion-Value")
								.parentRef(ParentReference.builder()
									.parent("EXAMPLE-parent-Value")
									.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
								.scope("EXAMPLE-scope-Value")
								.flattenDetails("EXAMPLE-flattenDetails-Value")
								.configValues(ConfigValues.builder()
									.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
											{
												put("EXAMPLE_KEY_YJ2XL",ConfigParameterValue.builder()
											.stringValue("EXAMPLE-stringValue-Value")
											.intValue(67)
											.objectValue("EXAMPLE-objectValue-Value")
											.refValue("EXAMPLE-refValue-Value")
											.parameterValue("EXAMPLE-parameterValue-Value")
											.rootObjectValue("EXAMPLE-rootObjectValue-Value").build());
											}
 										})
									.parentRef(ParentReference.builder()
										.parent("EXAMPLE-parent-Value")
										.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build()).build())
								.objectStatus(401).build())
							.configDefinition(ConfigDefinition.builder()
								.key("EXAMPLE-key-Value")
								.modelType("EXAMPLE-modelType-Value")
								.modelVersion("EXAMPLE-modelVersion-Value")
								.parentRef(ParentReference.builder()
									.parent("EXAMPLE-parent-Value")
									.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
								.name("EXAMPLE-name-Value")
								.isContained(false)
								.objectStatus(290)
								.configParameterDefinitions(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterDefinition>() {
										{
											put("EXAMPLE_KEY_Cps7l",ConfigParameterDefinition.builder()
										.parameterName("EXAMPLE-parameterName-Value")
										.description("EXAMPLE-description-Value")
										.defaultValue("EXAMPLE-defaultValue-Value")
										.classFieldName("EXAMPLE-classFieldName-Value")
										.isStatic(false)
										.isClassFieldValue(true).build());
										}
 									}).build())
							.key("EXAMPLE-key-Value")
							.modelVersion("EXAMPLE-modelVersion-Value")
							.parentRef(ParentReference.builder()
								.parent("EXAMPLE-parent-Value")
								.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
							.name("EXAMPLE-name-Value")
							.objectStatus(849)
							.description("EXAMPLE-description-Value").build())
						.isUseSourceType(false)
						.useType(ConfiguredType.builder()
							.wrappedType("EXAMPLE-wrappedType-Value")
							.configValues(ConfigValues.builder()
								.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
										{
											put("EXAMPLE_KEY_Gcubj",ConfigParameterValue.builder()
										.stringValue("EXAMPLE-stringValue-Value")
										.intValue(198)
										.objectValue("EXAMPLE-objectValue-Value")
										.refValue("EXAMPLE-refValue-Value")
										.parameterValue("EXAMPLE-parameterValue-Value")
										.rootObjectValue("EXAMPLE-rootObjectValue-Value").build());
										}
 									})
								.parentRef(ParentReference.builder()
									.parent("EXAMPLE-parent-Value")
									.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build()).build())
							.configDefinition(ConfigDefinition.builder()
								.key("EXAMPLE-key-Value")
								.modelType("EXAMPLE-modelType-Value")
								.modelVersion("EXAMPLE-modelVersion-Value")
								.parentRef(ParentReference.builder()
									.parent("EXAMPLE-parent-Value")
									.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
								.name("EXAMPLE-name-Value")
								.isContained(true)
								.objectStatus(515)
								.configParameterDefinitions(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterDefinition>() {
										{
											put("EXAMPLE_KEY_HqhgI",ConfigParameterDefinition.builder()
										.parameterName("EXAMPLE-parameterName-Value")
										.description("EXAMPLE-description-Value")
										.defaultValue("EXAMPLE-defaultValue-Value")
										.classFieldName("EXAMPLE-classFieldName-Value")
										.isStatic(true)
										.isClassFieldValue(true).build());
										}
 									}).build())
							.key("EXAMPLE-key-Value")
							.modelVersion("EXAMPLE-modelVersion-Value")
							.parentRef(ParentReference.builder()
								.parent("EXAMPLE-parent-Value")
								.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
							.name("EXAMPLE-name-Value")
							.objectStatus(91)
							.description("EXAMPLE-description-Value").build())
						.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
						.key("EXAMPLE-key-Value")
						.modelVersion("EXAMPLE-modelVersion-Value")
						.parentRef(ParentReference.builder()
							.parent("EXAMPLE-parent-Value")
							.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
						.configValues(ConfigValues.builder()
							.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
									{
										put("EXAMPLE_KEY_LJOkm",ConfigParameterValue.builder()
									.stringValue("EXAMPLE-stringValue-Value")
									.intValue(458)
									.objectValue("EXAMPLE-objectValue-Value")
									.refValue("EXAMPLE-refValue-Value")
									.parameterValue("EXAMPLE-parameterValue-Value")
									.rootObjectValue("EXAMPLE-rootObjectValue-Value").build());
									}
 								})
							.parentRef(ParentReference.builder()
								.parent("EXAMPLE-parent-Value")
								.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build()).build())
						.objectStatus(539)
						.name("EXAMPLE-name-Value")
						.description("EXAMPLE-description-Value").build())))
				.description("EXAMPLE-description-Value")
				.objectStatus(311).build())))
		.expr(Expression.builder()
			.key("EXAMPLE-key-Value")
			.modelType("EXAMPLE-modelType-Value")
			.modelVersion("EXAMPLE-modelVersion-Value")
			.parentRef(ParentReference.builder()
				.parent("EXAMPLE-parent-Value")
				.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
			.exprString("EXAMPLE-exprString-Value")
			.configValues(ConfigValues.builder()
				.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
						{
							put("EXAMPLE_KEY_BiQQt",ConfigParameterValue.builder()
						.stringValue("EXAMPLE-stringValue-Value")
						.intValue(879)
						.objectValue("EXAMPLE-objectValue-Value")
						.refValue("EXAMPLE-refValue-Value")
						.parameterValue("EXAMPLE-parameterValue-Value")
						.rootObjectValue("EXAMPLE-rootObjectValue-Value").build());
						}
 					})
				.parentRef(ParentReference.builder()
					.parent("EXAMPLE-parent-Value")
					.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build()).build())
			.objectStatus(966).build())
		.description("EXAMPLE-description-Value")
		.objectStatus(424)
		.metadata(ObjectMetadata.builder()
			.createdBy("EXAMPLE-createdBy-Value")
			.createdByName("EXAMPLE-createdByName-Value")
			.updatedBy("EXAMPLE-updatedBy-Value")
			.updatedByName("EXAMPLE-updatedByName-Value")
			.timeCreated(new Date("Wed Mar 14 20:51:25 UTC 2040"))
			.timeUpdated(new Date("Thu Dec 15 04:47:56 UTC 2039"))
			.aggregatorKey("EXAMPLE-aggregatorKey-Value")
			.aggregator(AggregatorSummary.builder()
				.type("EXAMPLE-type-Value")
				.key("EXAMPLE-key-Value")
				.name("EXAMPLE-name-Value")
				.identifier("EXAMPLE-identifier-Value")
				.description("EXAMPLE-description-Value").build())
			.identifierPath("EXAMPLE-identifierPath-Value")
			.infoFields(new HashMap<java.lang.String, java.lang.String>() {
					{
						put("EXAMPLE_KEY_vlcnw","EXAMPLE_VALUE_0vYDKS5L0LuW3eyfLCFa");
					}
 				})
			.registryVersion(194)
			.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
			.isFavorite(true)
			.countStatistics(CountStatistic.builder()
				.objectTypeCountList(new ArrayList<>(Arrays.asList(CountStatisticSummary.builder()
						.objectType(CountStatisticSummary.ObjectType.Project)
						.objectCount(175L).build()))).build()).build())
		.keyMap(new HashMap<java.lang.String, java.lang.String>() {
				{
					put("EXAMPLE_KEY_OlSnk","EXAMPLE_VALUE_CYOg5CSZinUbIL5j01FY");
				}
 			}).build();

	CreateUserDefinedFunctionValidationRequest createUserDefinedFunctionValidationRequest = CreateUserDefinedFunctionValidationRequest.builder()
		.workspaceId("ocid1.test.oc1..<unique_ID>EXAMPLE-workspaceId-Value")
		.createUserDefinedFunctionValidationDetails(createUserDefinedFunctionValidationDetails)
		.opcRequestId("AMFC4LUSAGFT2UYRZ6HO<unique_ID>")
		.opcRetryToken("EXAMPLE-opcRetryToken-Value").build();

        /* Send request to the Client */
        CreateUserDefinedFunctionValidationResponse response = client.createUserDefinedFunctionValidation(createUserDefinedFunctionValidationRequest);
    }

    
}