/** 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 CreateDataAssetExample {
    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). */
	CreateDataAssetDetails createDataAssetDetails = CreateDataAssetFromAtp.builder()
		.serviceName("EXAMPLE-serviceName-Value")
		.driverClass("EXAMPLE-driverClass-Value")
		.credentialFileContent("EXAMPLE-credentialFileContent-Value")
		.walletSecret(SensitiveAttribute.builder()
			.secretConfig(OciVaultSecretConfig.builder()
				.secretId("ocid1.test.oc1..<unique_ID>EXAMPLE-secretId-Value").build())
			.value("EXAMPLE-value-Value").build())
		.walletPasswordSecret(SensitiveAttribute.builder()
			.secretConfig(OciVaultSecretConfig.builder()
				.secretId("ocid1.test.oc1..<unique_ID>EXAMPLE-secretId-Value").build())
			.value("EXAMPLE-value-Value").build())
		.regionId("ocid1.test.oc1..<unique_ID>EXAMPLE-regionId-Value")
		.tenancyId("ocid1.test.oc1..<unique_ID>EXAMPLE-tenancyId-Value")
		.compartmentId("ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value")
		.autonomousDbId("ocid1.test.oc1..<unique_ID>EXAMPLE-autonomousDbId-Value")
		.defaultConnection(CreateConnectionFromAtp.builder()
			.tnsAlias("EXAMPLE-tnsAlias-Value")
			.tnsNames(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
			.username("EXAMPLE-username-Value")
			.password("EXAMPLE-password-Value")
			.passwordSecret(SensitiveAttribute.builder()
				.secretConfig(OciVaultSecretConfig.builder()
					.secretId("ocid1.test.oc1..<unique_ID>EXAMPLE-secretId-Value").build())
				.value("EXAMPLE-value-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")
			.description("EXAMPLE-description-Value")
			.objectStatus(476)
			.identifier("EXAMPLE-identifier-Value")
			.connectionProperties(new ArrayList<>(Arrays.asList(ConnectionProperty.builder()
					.name("EXAMPLE-name-Value")
					.value("EXAMPLE-value-Value").build())))
			.registryMetadata(RegistryMetadata.builder()
				.aggregatorKey("EXAMPLE-aggregatorKey-Value")
				.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
				.registryVersion(606)
				.key("EXAMPLE-key-Value")
				.isFavorite(false).build()).build())
		.stagingDataAsset(DataAssetFromOraclePeopleSoftDetails.builder()
			.host("EXAMPLE-host-Value")
			.port("EXAMPLE-port-Value")
			.serviceName("EXAMPLE-serviceName-Value")
			.driverClass("EXAMPLE-driverClass-Value")
			.sid("EXAMPLE-sid-Value")
			.walletSecret(SensitiveAttribute.builder()
				.secretConfig(OciVaultSecretConfig.builder()
					.secretId("ocid1.test.oc1..<unique_ID>EXAMPLE-secretId-Value").build())
				.value("EXAMPLE-value-Value").build())
			.walletPasswordSecret(SensitiveAttribute.builder()
				.secretConfig(OciVaultSecretConfig.builder()
					.secretId("ocid1.test.oc1..<unique_ID>EXAMPLE-secretId-Value").build())
				.value("EXAMPLE-value-Value").build())
			.defaultConnection(ConnectionFromOraclePeopleSoftDetails.builder()
				.username("EXAMPLE-username-Value")
				.password("EXAMPLE-password-Value")
				.passwordSecret(SensitiveAttribute.builder()
					.secretConfig(OciVaultSecretConfig.builder()
						.secretId("ocid1.test.oc1..<unique_ID>EXAMPLE-secretId-Value").build())
					.value("EXAMPLE-value-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")
				.description("EXAMPLE-description-Value")
				.objectVersion(323)
				.objectStatus(786)
				.identifier("EXAMPLE-identifier-Value")
				.primarySchema(Schema.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")
					.resourceName("EXAMPLE-resourceName-Value")
					.description("EXAMPLE-description-Value")
					.objectVersion(729)
					.externalKey("EXAMPLE-externalKey-Value")
					.isHasContainers(true)
					.defaultConnection("EXAMPLE-defaultConnection-Value")
					.objectStatus(739)
					.identifier("EXAMPLE-identifier-Value")
					.metadata(ObjectMetadata.builder()
						.createdBy("EXAMPLE-createdBy-Value")
						.createdByName("EXAMPLE-createdByName-Value")
						.updatedBy("EXAMPLE-updatedBy-Value")
						.updatedByName("EXAMPLE-updatedByName-Value")
						.timeCreated(new Date("Sat Jun 09 19:31:56 UTC 2035"))
						.timeUpdated(new Date("Tue Sep 24 01:58:36 UTC 2013"))
						.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_fq269","EXAMPLE_VALUE_M85tbknTcpPgoJCj39hl");
								}
 							})
						.registryVersion(151)
						.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
						.isFavorite(false)
						.countStatistics(CountStatistic.builder()
							.objectTypeCountList(new ArrayList<>(Arrays.asList(CountStatisticSummary.builder()
									.objectType(CountStatisticSummary.ObjectType.Connection)
									.objectCount(439L).build()))).build()).build()).build())
				.connectionProperties(new ArrayList<>(Arrays.asList(ConnectionProperty.builder()
						.name("EXAMPLE-name-Value")
						.value("EXAMPLE-value-Value").build())))
				.isDefault(true)
				.metadata(ObjectMetadata.builder()
					.createdBy("EXAMPLE-createdBy-Value")
					.createdByName("EXAMPLE-createdByName-Value")
					.updatedBy("EXAMPLE-updatedBy-Value")
					.updatedByName("EXAMPLE-updatedByName-Value")
					.timeCreated(new Date("Wed Jun 10 23:30:56 UTC 2020"))
					.timeUpdated(new Date("Fri Jan 13 23:48:13 UTC 2006"))
					.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_7rvo5","EXAMPLE_VALUE_Lr19hMBL4HpstoCMFqXx");
							}
 						})
					.registryVersion(707)
					.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
					.isFavorite(true)
					.countStatistics(CountStatistic.builder()
						.objectTypeCountList(new ArrayList<>(Arrays.asList(CountStatisticSummary.builder()
								.objectType(CountStatisticSummary.ObjectType.Folder)
								.objectCount(981L).build()))).build()).build()).build())
			.key("EXAMPLE-key-Value")
			.modelVersion("EXAMPLE-modelVersion-Value")
			.name("EXAMPLE-name-Value")
			.description("EXAMPLE-description-Value")
			.objectStatus(650)
			.identifier("EXAMPLE-identifier-Value")
			.externalKey("EXAMPLE-externalKey-Value")
			.assetProperties(new HashMap<java.lang.String, java.lang.String>() {
					{
						put("EXAMPLE_KEY_u7GwV","EXAMPLE_VALUE_toXd3DQ51qTuV4Tuix5R");
					}
 				})
			.nativeTypeSystem(TypeSystem.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")
				.description("EXAMPLE-description-Value")
				.objectVersion(555)
				.typeMappingTo(new HashMap<java.lang.String, java.lang.String>() {
						{
							put("EXAMPLE_KEY_WKPdO","EXAMPLE_VALUE_w84T6qhn0abt87jqgvgX");
						}
 					})
				.typeMappingFrom(new HashMap<java.lang.String, java.lang.String>() {
						{
							put("EXAMPLE_KEY_R7Ccr","EXAMPLE_VALUE_4vJ8GNJXzLRzfpwhYbd5");
						}
 					})
				.objectStatus(51)
				.identifier("EXAMPLE-identifier-Value")
				.types(new ArrayList<>(Arrays.asList(DataType.builder()
						.dtType(DataType.DtType.Primitive)
						.typeSystemName("EXAMPLE-typeSystemName-Value")
						.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(634)
							.configParameterDefinitions(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterDefinition>() {
									{
										put("EXAMPLE_KEY_K6bJU",ConfigParameterDefinition.builder()
									.parameterType(ArrayType.builder()
										.elementType("EXAMPLE-elementType-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())
										.name("EXAMPLE-name-Value")
										.objectStatus(82)
										.description("EXAMPLE-description-Value").build())
									.parameterName("EXAMPLE-parameterName-Value")
									.description("EXAMPLE-description-Value")
									.defaultValue("EXAMPLE-defaultValue-Value")
									.classFieldName("EXAMPLE-classFieldName-Value")
									.isStatic(false)
									.isClassFieldValue(false).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(16)
						.description("EXAMPLE-description-Value").build()))).build())
			.objectVersion(298)
			.parentRef(ParentReference.builder()
				.parent("EXAMPLE-parent-Value")
				.rootDocId("ocid1.test.oc1..<unique_ID>EXAMPLE-rootDocId-Value").build())
			.metadata(ObjectMetadata.builder()
				.createdBy("EXAMPLE-createdBy-Value")
				.createdByName("EXAMPLE-createdByName-Value")
				.updatedBy("EXAMPLE-updatedBy-Value")
				.updatedByName("EXAMPLE-updatedByName-Value")
				.timeCreated(new Date("Wed May 06 03:28:09 UTC 2043"))
				.timeUpdated(new Date("Sat Jul 21 11:56:17 UTC 2001"))
				.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_PArPL","EXAMPLE_VALUE_VSseuhMuhaL9LXEWsEB8");
						}
 					})
				.registryVersion(387)
				.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
				.isFavorite(false)
				.countStatistics(CountStatistic.builder()
					.objectTypeCountList(new ArrayList<>(Arrays.asList(CountStatisticSummary.builder()
							.objectType(CountStatisticSummary.ObjectType.Connection)
							.objectCount(775L).build()))).build()).build())
			.keyMap(new HashMap<java.lang.String, java.lang.String>() {
					{
						put("EXAMPLE_KEY_6UdeT","EXAMPLE_VALUE_XqLhtdr4pn3dAj5LmMrY");
					}
 				}).build())
		.stagingConnection(ConnectionFromJdbc.builder()
			.username("EXAMPLE-username-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())
			.name("EXAMPLE-name-Value")
			.description("EXAMPLE-description-Value")
			.objectVersion(491)
			.objectStatus(486)
			.identifier("EXAMPLE-identifier-Value")
			.primarySchema(Schema.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")
				.resourceName("EXAMPLE-resourceName-Value")
				.description("EXAMPLE-description-Value")
				.objectVersion(306)
				.externalKey("EXAMPLE-externalKey-Value")
				.isHasContainers(false)
				.defaultConnection("EXAMPLE-defaultConnection-Value")
				.objectStatus(855)
				.identifier("EXAMPLE-identifier-Value")
				.metadata(ObjectMetadata.builder()
					.createdBy("EXAMPLE-createdBy-Value")
					.createdByName("EXAMPLE-createdByName-Value")
					.updatedBy("EXAMPLE-updatedBy-Value")
					.updatedByName("EXAMPLE-updatedByName-Value")
					.timeCreated(new Date("Tue Apr 11 20:57:03 UTC 2034"))
					.timeUpdated(new Date("Sun Jul 14 03:16:42 UTC 2047"))
					.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_qjBGu","EXAMPLE_VALUE_xPiR50co7uZACcvMXuw1");
							}
 						})
					.registryVersion(464)
					.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
					.isFavorite(false)
					.countStatistics(CountStatistic.builder()
						.objectTypeCountList(new ArrayList<>(Arrays.asList(CountStatisticSummary.builder()
								.objectType(CountStatisticSummary.ObjectType.Task)
								.objectCount(527L).build()))).build()).build()).build())
			.connectionProperties(new ArrayList<>(Arrays.asList(ConnectionProperty.builder()
					.name("EXAMPLE-name-Value")
					.value("EXAMPLE-value-Value").build())))
			.isDefault(false)
			.metadata(ObjectMetadata.builder()
				.createdBy("EXAMPLE-createdBy-Value")
				.createdByName("EXAMPLE-createdByName-Value")
				.updatedBy("EXAMPLE-updatedBy-Value")
				.updatedByName("EXAMPLE-updatedByName-Value")
				.timeCreated(new Date("Sun Jun 30 19:03:06 UTC 2002"))
				.timeUpdated(new Date("Sun Mar 16 06:22:34 UTC 2042"))
				.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_qUQC8","EXAMPLE_VALUE_tp20ykDf8vxFB9DzQT7a");
						}
 					})
				.registryVersion(60)
				.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
				.isFavorite(false)
				.countStatistics(CountStatistic.builder()
					.objectTypeCountList(new ArrayList<>(Arrays.asList(CountStatisticSummary.builder()
							.objectType(CountStatisticSummary.ObjectType.DataAsset)
							.objectCount(735L).build()))).build()).build())
			.keyMap(new HashMap<java.lang.String, java.lang.String>() {
					{
						put("EXAMPLE_KEY_ZKl36","EXAMPLE_VALUE_SMv4V0a9dKVA0IMnxCbE");
					}
 				}).build())
		.bucketSchema(Schema.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")
			.resourceName("EXAMPLE-resourceName-Value")
			.description("EXAMPLE-description-Value")
			.objectVersion(415)
			.externalKey("EXAMPLE-externalKey-Value")
			.isHasContainers(false)
			.defaultConnection("EXAMPLE-defaultConnection-Value")
			.objectStatus(802)
			.identifier("EXAMPLE-identifier-Value")
			.metadata(ObjectMetadata.builder()
				.createdBy("EXAMPLE-createdBy-Value")
				.createdByName("EXAMPLE-createdByName-Value")
				.updatedBy("EXAMPLE-updatedBy-Value")
				.updatedByName("EXAMPLE-updatedByName-Value")
				.timeCreated(new Date("Wed Sep 19 05:24:59 UTC 2040"))
				.timeUpdated(new Date("Wed Aug 09 00:55:14 UTC 2006"))
				.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_VyAoM","EXAMPLE_VALUE_QFnlrQXCYzP5jGOc45tH");
						}
 					})
				.registryVersion(513)
				.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
				.isFavorite(false)
				.countStatistics(CountStatistic.builder()
					.objectTypeCountList(new ArrayList<>(Arrays.asList(CountStatisticSummary.builder()
							.objectType(CountStatisticSummary.ObjectType.Connection)
							.objectCount(297L).build()))).build()).build()).build())
		.key("EXAMPLE-key-Value")
		.modelVersion("EXAMPLE-modelVersion-Value")
		.name("EXAMPLE-name-Value")
		.description("EXAMPLE-description-Value")
		.objectStatus(613)
		.identifier("EXAMPLE-identifier-Value")
		.externalKey("EXAMPLE-externalKey-Value")
		.assetProperties(new HashMap<java.lang.String, java.lang.String>() {
				{
					put("EXAMPLE_KEY_y6KYZ","EXAMPLE_VALUE_VYap74oR14PdRQxEAjZW");
				}
 			})
		.registryMetadata(RegistryMetadata.builder()
			.aggregatorKey("EXAMPLE-aggregatorKey-Value")
			.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
			.registryVersion(701)
			.key("EXAMPLE-key-Value")
			.isFavorite(true).build()).build();

	CreateDataAssetRequest createDataAssetRequest = CreateDataAssetRequest.builder()
		.workspaceId("ocid1.test.oc1..<unique_ID>EXAMPLE-workspaceId-Value")
		.createDataAssetDetails(createDataAssetDetails)
		.opcRequestId("5DST9OVNCLPFPEDSR9R2<unique_ID>")
		.opcRetryToken("EXAMPLE-opcRetryToken-Value").build();

        /* Send request to the Client */
        CreateDataAssetResponse response = client.createDataAsset(createDataAssetRequest);
    }

    
}