/** 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 UpdateTaskExample {
    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). */
	UpdateTaskDetails updateTaskDetails = UpdateTaskFromRestTask.builder()
		.authDetails(AuthDetails.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())
			.modelType(AuthDetails.ModelType.NoAuthDetails).build())
		.authConfig(ResourcePrincipalAuthConfig.builder()
			.resourcePrincipalSource(ResourcePrincipalAuthConfig.ResourcePrincipalSource.Application)
			.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()).build())
		.endpoint(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_Iqbtw",ConfigParameterValue.builder()
						.stringValue("EXAMPLE-stringValue-Value")
						.intValue(420)
						.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(218).build())
		.methodType(UpdateTaskFromRestTask.MethodType.Patch)
		.headers("EXAMPLE-headers-Value")
		.additionalProperties("EXAMPLE-additionalProperties-Value")
		.jsonData("EXAMPLE-jsonData-Value")
		.apiCallMode(UpdateTaskFromRestTask.ApiCallMode.AsyncOciWorkrequest)
		.cancelEndpoint(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_DfviB",ConfigParameterValue.builder()
						.stringValue("EXAMPLE-stringValue-Value")
						.intValue(827)
						.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(609).build())
		.cancelMethodType(UpdateTaskFromRestTask.CancelMethodType.Delete)
		.executeRestCallConfig(ExecuteRestCallConfig.builder()
			.methodType(ExecuteRestCallConfig.MethodType.Post)
			.requestHeaders(new HashMap<java.lang.String, java.lang.String>() {
					{
						put("EXAMPLE_KEY_ot0w0","EXAMPLE_VALUE_GpRl13ERPNShihXo4PIX");
					}
 				})
			.configValues(ConfigValues.builder()
				.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
						{
							put("EXAMPLE_KEY_4NccP",ConfigParameterValue.builder()
						.stringValue("EXAMPLE-stringValue-Value")
						.intValue(771)
						.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()).build())
		.cancelRestCallConfig(CancelRestCallConfig.builder()
			.methodType(CancelRestCallConfig.MethodType.Put)
			.requestHeaders(new HashMap<java.lang.String, java.lang.String>() {
					{
						put("EXAMPLE_KEY_0VQs1","EXAMPLE_VALUE_rztS0c9y1m31Gn1mFsQG");
					}
 				})
			.configValues(ConfigValues.builder()
				.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
						{
							put("EXAMPLE_KEY_HcgqJ",ConfigParameterValue.builder()
						.stringValue("EXAMPLE-stringValue-Value")
						.intValue(587)
						.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()).build())
		.pollRestCallConfig(PollRestCallConfig.builder()
			.methodType(PollRestCallConfig.MethodType.Delete)
			.requestHeaders(new HashMap<java.lang.String, java.lang.String>() {
					{
						put("EXAMPLE_KEY_sAvli","EXAMPLE_VALUE_PEgHzMIfIiI98bYt00sr");
					}
 				})
			.configValues(ConfigValues.builder()
				.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
						{
							put("EXAMPLE_KEY_CbCoJ",ConfigParameterValue.builder()
						.stringValue("EXAMPLE-stringValue-Value")
						.intValue(972)
						.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()).build())
		.typedExpressions(new ArrayList<>(Arrays.asList(TypedExpression.builder()
				.expression("EXAMPLE-expression-Value")
				.type("EXAMPLE-type-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_6ZhH8",ConfigParameterValue.builder()
							.stringValue("EXAMPLE-stringValue-Value")
							.intValue(83)
							.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(308)
				.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")
		.description("EXAMPLE-description-Value")
		.objectStatus(844)
		.objectVersion(293)
		.identifier("EXAMPLE-identifier-Value")
		.inputPorts(new ArrayList<>(Arrays.asList(InputPort.builder()
				.portType(InputPort.PortType.Control)
				.fields(new ArrayList<>(Arrays.asList(DynamicInputField.builder()
						.type(DerivedType.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())
							.name("EXAMPLE-name-Value")
							.objectStatus(645)
							.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_EaJps",ConfigParameterValue.builder()
									.stringValue("EXAMPLE-stringValue-Value")
									.intValue(851)
									.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(567)
						.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())
				.configValues(ConfigValues.builder()
					.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
							{
								put("EXAMPLE_KEY_J1Bkd",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(663)
				.name("EXAMPLE-name-Value")
				.description("EXAMPLE-description-Value").build())))
		.outputPorts(new ArrayList<>(Arrays.asList(OutputPort.builder()
				.portType(OutputPort.PortType.Model)
				.fields(new ArrayList<>(Arrays.asList(DynamicProxyField.builder()
						.type(DataType.builder()
							.dtType(DataType.DtType.Structured)
							.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(197)
								.configParameterDefinitions(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterDefinition>() {
										{
											put("EXAMPLE_KEY_KhiKV",ConfigParameterDefinition.builder()
										.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(406)
							.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_WO6hz",ConfigParameterValue.builder()
									.stringValue("EXAMPLE-stringValue-Value")
									.intValue(993)
									.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(386)
						.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())
				.configValues(ConfigValues.builder()
					.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
							{
								put("EXAMPLE_KEY_IMpXy",ConfigParameterValue.builder()
							.stringValue("EXAMPLE-stringValue-Value")
							.intValue(336)
							.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(759)
				.name("EXAMPLE-name-Value")
				.description("EXAMPLE-description-Value").build())))
		.parameters(new ArrayList<>(Arrays.asList(Parameter.builder()
				.type("EXAMPLE-type-Value")
				.defaultValue("EXAMPLE-defaultValue-Value")
				.rootObjectDefaultValue("EXAMPLE-rootObjectDefaultValue-Value")
				.isInput(false)
				.isOutput(true)
				.outputAggregationType(Parameter.OutputAggregationType.Sum)
				.typeName("EXAMPLE-typeName-Value")
				.usedFor("EXAMPLE-usedFor-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_d7iCp",ConfigParameterValue.builder()
							.stringValue("EXAMPLE-stringValue-Value")
							.intValue(419)
							.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(208)
				.name("EXAMPLE-name-Value")
				.description("EXAMPLE-description-Value").build())))
		.opConfigValues(ConfigValues.builder()
			.configParamValues(new HashMap<java.lang.String, com.oracle.bmc.dataintegration.model.ConfigParameterValue>() {
					{
						put("EXAMPLE_KEY_KvYIw",ConfigParameterValue.builder()
					.stringValue("EXAMPLE-stringValue-Value")
					.intValue(360)
					.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())
		.isConcurrentAllowed(false)
		.registryMetadata(RegistryMetadata.builder()
			.aggregatorKey("EXAMPLE-aggregatorKey-Value")
			.labels(new ArrayList<>(Arrays.asList("EXAMPLE--Value")))
			.registryVersion(349)
			.key("EXAMPLE-key-Value")
			.isFavorite(true).build()).build();

	UpdateTaskRequest updateTaskRequest = UpdateTaskRequest.builder()
		.workspaceId("ocid1.test.oc1..<unique_ID>EXAMPLE-workspaceId-Value")
		.taskKey("EXAMPLE-taskKey-Value")
		.updateTaskDetails(updateTaskDetails)
		.opcRequestId("44ADNMETY2B21NT0DNRB<unique_ID>")
		.ifMatch("EXAMPLE-ifMatch-Value").build();

        /* Send request to the Client */
        UpdateTaskResponse response = client.updateTask(updateTaskRequest);
    }

    
}