"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WorkspaceTask = void 0;
const pulumi = __importStar(require("@pulumi/pulumi"));
const utilities = __importStar(require("../utilities"));
/**
 * This resource provides the Workspace Task resource in Oracle Cloud Infrastructure Data Integration service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-integration/latest/WorkspaceTask
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/dataintegration
 *
 * Creates a new task ready for performing data integrations. There are specialized types of tasks that include data loader and integration tasks.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testWorkspaceTask = new oci.dataintegration.WorkspaceTask("test_workspace_task", {
 *     identifier: workspaceTaskIdentifier,
 *     modelType: workspaceTaskModelType,
 *     name: workspaceTaskName,
 *     registryMetadata: {
 *         aggregatorKey: workspaceTaskRegistryMetadataAggregatorKey,
 *         isFavorite: workspaceTaskRegistryMetadataIsFavorite === "true",
 *         key: workspaceTaskRegistryMetadataKey,
 *         labels: workspaceTaskRegistryMetadataLabels,
 *         registryVersion: Number(workspaceTaskRegistryMetadataRegistryVersion),
 *     },
 *     workspaceId: testWorkspace.id,
 *     apiCallMode: workspaceTaskApiCallMode,
 *     authConfig: {
 *         key: workspaceTaskAuthConfigKey,
 *         modelType: workspaceTaskAuthConfigModelType,
 *         modelVersion: workspaceTaskAuthConfigModelVersion,
 *         parentRef: {
 *             parent: workspaceTaskAuthConfigParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         },
 *         resourcePrincipalSource: workspaceTaskAuthConfigResourcePrincipalSource,
 *     },
 *     authDetails: [{
 *         key: workspaceTaskAuthDetailsKey,
 *         modelType: workspaceTaskAuthDetailsModelType,
 *         modelVersion: workspaceTaskAuthDetailsModelVersion,
 *         parentRef: [{
 *             parent: workspaceTaskAuthDetailsParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         }],
 *     }],
 *     cancelEndpoint: [{
 *         configValues: [{
 *             configParamValues: [{
 *                 intValue: workspaceTaskCancelEndpointConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskCancelEndpointConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskCancelEndpointConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskCancelEndpointConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskCancelEndpointConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskCancelEndpointConfigValuesConfigParamValuesStringValue,
 *             }],
 *             parentRef: [{
 *                 parent: workspaceTaskCancelEndpointConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *         }],
 *         exprString: workspaceTaskCancelEndpointExprString,
 *         key: workspaceTaskCancelEndpointKey,
 *         modelType: workspaceTaskCancelEndpointModelType,
 *         modelVersion: workspaceTaskCancelEndpointModelVersion,
 *         objectStatus: workspaceTaskCancelEndpointObjectStatus,
 *         parentRef: [{
 *             parent: workspaceTaskCancelEndpointParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         }],
 *     }],
 *     cancelMethodType: workspaceTaskCancelMethodType,
 *     cancelRestCallConfig: {
 *         configValues: {
 *             configParamValues: {
 *                 intValue: workspaceTaskCancelRestCallConfigConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskCancelRestCallConfigConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskCancelRestCallConfigConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskCancelRestCallConfigConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskCancelRestCallConfigConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskCancelRestCallConfigConfigValuesConfigParamValuesStringValue,
 *             },
 *             parentRef: {
 *                 parent: workspaceTaskCancelRestCallConfigConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             },
 *         },
 *         methodType: workspaceTaskCancelRestCallConfigMethodType,
 *         requestHeaders: workspaceTaskCancelRestCallConfigRequestHeaders,
 *     },
 *     conditionalCompositeFieldMap: [{
 *         configValues: [{
 *             configParamValues: [{
 *                 intValue: workspaceTaskConditionalCompositeFieldMapConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskConditionalCompositeFieldMapConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskConditionalCompositeFieldMapConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskConditionalCompositeFieldMapConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskConditionalCompositeFieldMapConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskConditionalCompositeFieldMapConfigValuesConfigParamValuesStringValue,
 *             }],
 *             parentRef: [{
 *                 parent: workspaceTaskConditionalCompositeFieldMapConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *         }],
 *         description: workspaceTaskConditionalCompositeFieldMapDescription,
 *         fieldMapScope: [{
 *             modelType: workspaceTaskConditionalCompositeFieldMapFieldMapScopeModelType,
 *             configValues: [{
 *                 configParamValues: [{
 *                     intValue: workspaceTaskConditionalCompositeFieldMapFieldMapScopeConfigValuesConfigParamValuesIntValue,
 *                     objectValue: workspaceTaskConditionalCompositeFieldMapFieldMapScopeConfigValuesConfigParamValuesObjectValue,
 *                     parameterValue: workspaceTaskConditionalCompositeFieldMapFieldMapScopeConfigValuesConfigParamValuesParameterValue,
 *                     refValue: workspaceTaskConditionalCompositeFieldMapFieldMapScopeConfigValuesConfigParamValuesRefValue,
 *                     rootObjectValue: workspaceTaskConditionalCompositeFieldMapFieldMapScopeConfigValuesConfigParamValuesRootObjectValue,
 *                     stringValue: workspaceTaskConditionalCompositeFieldMapFieldMapScopeConfigValuesConfigParamValuesStringValue,
 *                 }],
 *                 parentRef: [{
 *                     parent: workspaceTaskConditionalCompositeFieldMapFieldMapScopeConfigValuesParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *             }],
 *             description: workspaceTaskConditionalCompositeFieldMapFieldMapScopeDescription,
 *             fromName: workspaceTaskConditionalCompositeFieldMapFieldMapScopeFromName,
 *             isCascade: workspaceTaskConditionalCompositeFieldMapFieldMapScopeIsCascade,
 *             isCaseSensitive: workspaceTaskConditionalCompositeFieldMapFieldMapScopeIsCaseSensitive,
 *             isJavaRegexSyntax: workspaceTaskConditionalCompositeFieldMapFieldMapScopeIsJavaRegexSyntax,
 *             isSkipRemainingRulesOnMatch: workspaceTaskConditionalCompositeFieldMapFieldMapScopeIsSkipRemainingRulesOnMatch,
 *             key: workspaceTaskConditionalCompositeFieldMapFieldMapScopeKey,
 *             matchingStrategy: workspaceTaskConditionalCompositeFieldMapFieldMapScopeMatchingStrategy,
 *             modelVersion: workspaceTaskConditionalCompositeFieldMapFieldMapScopeModelVersion,
 *             name: workspaceTaskConditionalCompositeFieldMapFieldMapScopeName,
 *             names: workspaceTaskConditionalCompositeFieldMapFieldMapScopeNames,
 *             objectStatus: workspaceTaskConditionalCompositeFieldMapFieldMapScopeObjectStatus,
 *             parentRef: [{
 *                 parent: workspaceTaskConditionalCompositeFieldMapFieldMapScopeParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *             pattern: workspaceTaskConditionalCompositeFieldMapFieldMapScopePattern,
 *             ruleType: workspaceTaskConditionalCompositeFieldMapFieldMapScopeRuleType,
 *             scope: workspaceTaskConditionalCompositeFieldMapFieldMapScopeScope,
 *             toName: workspaceTaskConditionalCompositeFieldMapFieldMapScopeToName,
 *             types: workspaceTaskConditionalCompositeFieldMapFieldMapScopeTypes,
 *         }],
 *         fieldMaps: workspaceTaskConditionalCompositeFieldMapFieldMaps,
 *         key: workspaceTaskConditionalCompositeFieldMapKey,
 *         modelType: workspaceTaskConditionalCompositeFieldMapModelType,
 *         modelVersion: workspaceTaskConditionalCompositeFieldMapModelVersion,
 *         objectStatus: workspaceTaskConditionalCompositeFieldMapObjectStatus,
 *         parentRef: [{
 *             parent: workspaceTaskConditionalCompositeFieldMapParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         }],
 *     }],
 *     configProviderDelegate: {
 *         bindings: [{
 *             rootObjectValue: workspaceTaskConfigProviderDelegateBindingsRootObjectValue,
 *             simpleValue: workspaceTaskConfigProviderDelegateBindingsSimpleValue,
 *         }],
 *     },
 *     dataFlow: [{
 *         description: workspaceTaskDataFlowDescription,
 *         flowConfigValues: [{
 *             configParamValues: [{
 *                 intValue: workspaceTaskDataFlowFlowConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskDataFlowFlowConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskDataFlowFlowConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskDataFlowFlowConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskDataFlowFlowConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskDataFlowFlowConfigValuesConfigParamValuesStringValue,
 *             }],
 *             parentRef: [{
 *                 parent: workspaceTaskDataFlowFlowConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *         }],
 *         identifier: workspaceTaskDataFlowIdentifier,
 *         key: workspaceTaskDataFlowKey,
 *         keyMap: workspaceTaskDataFlowKeyMap,
 *         metadata: [{
 *             aggregator: [{
 *                 description: workspaceTaskDataFlowMetadataAggregatorDescription,
 *                 identifier: workspaceTaskDataFlowMetadataAggregatorIdentifier,
 *                 key: workspaceTaskDataFlowMetadataAggregatorKey,
 *                 name: workspaceTaskDataFlowMetadataAggregatorName,
 *                 type: workspaceTaskDataFlowMetadataAggregatorType,
 *             }],
 *             aggregatorKey: workspaceTaskDataFlowMetadataAggregatorKey,
 *             countStatistics: [{
 *                 objectTypeCountList: [{
 *                     objectCount: workspaceTaskDataFlowMetadataCountStatisticsObjectTypeCountListObjectCount,
 *                     objectType: workspaceTaskDataFlowMetadataCountStatisticsObjectTypeCountListObjectType,
 *                 }],
 *             }],
 *             createdBy: workspaceTaskDataFlowMetadataCreatedBy,
 *             createdByName: workspaceTaskDataFlowMetadataCreatedByName,
 *             identifierPath: workspaceTaskDataFlowMetadataIdentifierPath,
 *             infoFields: workspaceTaskDataFlowMetadataInfoFields,
 *             isFavorite: workspaceTaskDataFlowMetadataIsFavorite,
 *             labels: workspaceTaskDataFlowMetadataLabels,
 *             registryVersion: workspaceTaskDataFlowMetadataRegistryVersion,
 *             timeCreated: workspaceTaskDataFlowMetadataTimeCreated,
 *             timeUpdated: workspaceTaskDataFlowMetadataTimeUpdated,
 *             updatedBy: workspaceTaskDataFlowMetadataUpdatedBy,
 *             updatedByName: workspaceTaskDataFlowMetadataUpdatedByName,
 *         }],
 *         modelType: workspaceTaskDataFlowModelType,
 *         modelVersion: workspaceTaskDataFlowModelVersion,
 *         name: workspaceTaskDataFlowName,
 *         nodes: [{
 *             configProviderDelegate: workspaceTaskDataFlowNodesConfigProviderDelegate,
 *             description: workspaceTaskDataFlowNodesDescription,
 *             inputLinks: [{
 *                 description: workspaceTaskDataFlowNodesInputLinksDescription,
 *                 fieldMap: workspaceTaskDataFlowNodesInputLinksFieldMap,
 *                 fromLink: workspaceTaskDataFlowNodesInputLinksFromLink,
 *                 key: workspaceTaskDataFlowNodesInputLinksKey,
 *                 modelType: workspaceTaskDataFlowNodesInputLinksModelType,
 *                 modelVersion: workspaceTaskDataFlowNodesInputLinksModelVersion,
 *                 objectStatus: workspaceTaskDataFlowNodesInputLinksObjectStatus,
 *                 parentRef: [{
 *                     parent: workspaceTaskDataFlowNodesInputLinksParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *                 port: workspaceTaskDataFlowNodesInputLinksPort,
 *             }],
 *             key: workspaceTaskDataFlowNodesKey,
 *             modelType: workspaceTaskDataFlowNodesModelType,
 *             modelVersion: workspaceTaskDataFlowNodesModelVersion,
 *             name: workspaceTaskDataFlowNodesName,
 *             objectStatus: workspaceTaskDataFlowNodesObjectStatus,
 *             operator: workspaceTaskDataFlowNodesOperator,
 *             outputLinks: [{
 *                 description: workspaceTaskDataFlowNodesOutputLinksDescription,
 *                 key: workspaceTaskDataFlowNodesOutputLinksKey,
 *                 modelType: workspaceTaskDataFlowNodesOutputLinksModelType,
 *                 modelVersion: workspaceTaskDataFlowNodesOutputLinksModelVersion,
 *                 objectStatus: workspaceTaskDataFlowNodesOutputLinksObjectStatus,
 *                 parentRef: [{
 *                     parent: workspaceTaskDataFlowNodesOutputLinksParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *                 port: workspaceTaskDataFlowNodesOutputLinksPort,
 *                 toLinks: workspaceTaskDataFlowNodesOutputLinksToLinks,
 *             }],
 *             parentRef: [{
 *                 parent: workspaceTaskDataFlowNodesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *             uiProperties: [{
 *                 coordinateX: workspaceTaskDataFlowNodesUiPropertiesCoordinateX,
 *                 coordinateY: workspaceTaskDataFlowNodesUiPropertiesCoordinateY,
 *             }],
 *         }],
 *         objectStatus: workspaceTaskDataFlowObjectStatus,
 *         objectVersion: workspaceTaskDataFlowObjectVersion,
 *         parameters: [{
 *             configValues: [{
 *                 configParamValues: [{
 *                     intValue: workspaceTaskDataFlowParametersConfigValuesConfigParamValuesIntValue,
 *                     objectValue: workspaceTaskDataFlowParametersConfigValuesConfigParamValuesObjectValue,
 *                     parameterValue: workspaceTaskDataFlowParametersConfigValuesConfigParamValuesParameterValue,
 *                     refValue: workspaceTaskDataFlowParametersConfigValuesConfigParamValuesRefValue,
 *                     rootObjectValue: workspaceTaskDataFlowParametersConfigValuesConfigParamValuesRootObjectValue,
 *                     stringValue: workspaceTaskDataFlowParametersConfigValuesConfigParamValuesStringValue,
 *                 }],
 *                 parentRef: [{
 *                     parent: workspaceTaskDataFlowParametersConfigValuesParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *             }],
 *             defaultValue: workspaceTaskDataFlowParametersDefaultValue,
 *             description: workspaceTaskDataFlowParametersDescription,
 *             isInput: workspaceTaskDataFlowParametersIsInput,
 *             isOutput: workspaceTaskDataFlowParametersIsOutput,
 *             key: workspaceTaskDataFlowParametersKey,
 *             modelType: workspaceTaskDataFlowParametersModelType,
 *             modelVersion: workspaceTaskDataFlowParametersModelVersion,
 *             name: workspaceTaskDataFlowParametersName,
 *             objectStatus: workspaceTaskDataFlowParametersObjectStatus,
 *             outputAggregationType: workspaceTaskDataFlowParametersOutputAggregationType,
 *             parentRef: [{
 *                 parent: workspaceTaskDataFlowParametersParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *             rootObjectDefaultValue: workspaceTaskDataFlowParametersRootObjectDefaultValue,
 *             type: workspaceTaskDataFlowParametersType,
 *             typeName: workspaceTaskDataFlowParametersTypeName,
 *             usedFor: workspaceTaskDataFlowParametersUsedFor,
 *         }],
 *         parentRef: [{
 *             parent: workspaceTaskDataFlowParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         }],
 *         targetFieldMapSummary: [{
 *             fieldMap: workspaceTaskDataFlowTargetFieldMapSummaryFieldMap,
 *         }],
 *         typedObjectMap: [{
 *             typedObject: workspaceTaskDataFlowTypedObjectMapTypedObject,
 *         }],
 *     }],
 *     dataflowApplication: [{
 *         applicationId: testApplication.id,
 *         compartmentId: compartmentId,
 *         configValues: [{
 *             configParamValues: [{
 *                 intValue: workspaceTaskDataflowApplicationConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskDataflowApplicationConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskDataflowApplicationConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskDataflowApplicationConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskDataflowApplicationConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskDataflowApplicationConfigValuesConfigParamValuesStringValue,
 *             }],
 *             parentRef: [{
 *                 parent: workspaceTaskDataflowApplicationConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *         }],
 *     }],
 *     description: workspaceTaskDescription,
 *     endpoint: [{
 *         configValues: [{
 *             configParamValues: [{
 *                 intValue: workspaceTaskEndpointConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskEndpointConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskEndpointConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskEndpointConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskEndpointConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskEndpointConfigValuesConfigParamValuesStringValue,
 *             }],
 *             parentRef: [{
 *                 parent: workspaceTaskEndpointConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *         }],
 *         exprString: workspaceTaskEndpointExprString,
 *         key: workspaceTaskEndpointKey,
 *         modelType: workspaceTaskEndpointModelType,
 *         modelVersion: workspaceTaskEndpointModelVersion,
 *         objectStatus: workspaceTaskEndpointObjectStatus,
 *         parentRef: [{
 *             parent: workspaceTaskEndpointParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         }],
 *     }],
 *     executeRestCallConfig: {
 *         configValues: {
 *             configParamValues: {
 *                 intValue: workspaceTaskExecuteRestCallConfigConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskExecuteRestCallConfigConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskExecuteRestCallConfigConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskExecuteRestCallConfigConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskExecuteRestCallConfigConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskExecuteRestCallConfigConfigValuesConfigParamValuesStringValue,
 *             },
 *             parentRef: {
 *                 parent: workspaceTaskExecuteRestCallConfigConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             },
 *         },
 *         methodType: workspaceTaskExecuteRestCallConfigMethodType,
 *         requestHeaders: workspaceTaskExecuteRestCallConfigRequestHeaders,
 *     },
 *     headers: workspaceTaskHeaders,
 *     inputPorts: [{
 *         modelType: workspaceTaskInputPortsModelType,
 *         configValues: {
 *             configParamValues: {
 *                 intValue: Number(workspaceTaskInputPortsConfigValuesConfigParamValuesIntValue),
 *                 objectValue: workspaceTaskInputPortsConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskInputPortsConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskInputPortsConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskInputPortsConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskInputPortsConfigValuesConfigParamValuesStringValue,
 *             },
 *             parentRef: {
 *                 parent: workspaceTaskInputPortsConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             },
 *         },
 *         description: workspaceTaskInputPortsDescription,
 *         fields: workspaceTaskInputPortsFields,
 *         key: workspaceTaskInputPortsKey,
 *         modelVersion: workspaceTaskInputPortsModelVersion,
 *         name: workspaceTaskInputPortsName,
 *         objectStatus: Number(workspaceTaskInputPortsObjectStatus),
 *         parentRef: {
 *             parent: workspaceTaskInputPortsParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         },
 *         portType: workspaceTaskInputPortsPortType,
 *     }],
 *     isSingleLoad: workspaceTaskIsSingleLoad === "true",
 *     jsonData: workspaceTaskJsonData,
 *     key: workspaceTaskKey,
 *     methodType: workspaceTaskMethodType,
 *     modelVersion: workspaceTaskModelVersion,
 *     objectStatus: Number(workspaceTaskObjectStatus),
 *     opConfigValues: {
 *         configParamValues: {
 *             intValue: workspaceTaskOpConfigValuesConfigParamValuesIntValue,
 *             objectValue: workspaceTaskOpConfigValuesConfigParamValuesObjectValue,
 *             parameterValue: workspaceTaskOpConfigValuesConfigParamValuesParameterValue,
 *             refValue: workspaceTaskOpConfigValuesConfigParamValuesRefValue,
 *             rootObjectValue: workspaceTaskOpConfigValuesConfigParamValuesRootObjectValue,
 *             stringValue: workspaceTaskOpConfigValuesConfigParamValuesStringValue,
 *         },
 *         parentRef: {
 *             parent: workspaceTaskOpConfigValuesParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         },
 *     },
 *     operation: workspaceTaskOperation,
 *     outputPorts: [{
 *         modelType: workspaceTaskOutputPortsModelType,
 *         configValues: {
 *             configParamValues: {
 *                 intValue: Number(workspaceTaskOutputPortsConfigValuesConfigParamValuesIntValue),
 *                 objectValue: workspaceTaskOutputPortsConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskOutputPortsConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskOutputPortsConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskOutputPortsConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskOutputPortsConfigValuesConfigParamValuesStringValue,
 *             },
 *             parentRef: {
 *                 parent: workspaceTaskOutputPortsConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             },
 *         },
 *         description: workspaceTaskOutputPortsDescription,
 *         fields: workspaceTaskOutputPortsFields,
 *         key: workspaceTaskOutputPortsKey,
 *         modelVersion: workspaceTaskOutputPortsModelVersion,
 *         name: workspaceTaskOutputPortsName,
 *         objectStatus: Number(workspaceTaskOutputPortsObjectStatus),
 *         parentRef: {
 *             parent: workspaceTaskOutputPortsParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         },
 *         portType: workspaceTaskOutputPortsPortType,
 *     }],
 *     parallelLoadLimit: Number(workspaceTaskParallelLoadLimit),
 *     parameters: [{
 *         modelType: workspaceTaskParametersModelType,
 *         configValues: {
 *             configParamValues: {
 *                 intValue: workspaceTaskParametersConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskParametersConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskParametersConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskParametersConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskParametersConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskParametersConfigValuesConfigParamValuesStringValue,
 *             },
 *             parentRef: {
 *                 parent: workspaceTaskParametersConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             },
 *         },
 *         defaultValue: workspaceTaskParametersDefaultValue,
 *         description: workspaceTaskParametersDescription,
 *         isInput: workspaceTaskParametersIsInput === "true",
 *         isOutput: workspaceTaskParametersIsOutput === "true",
 *         key: workspaceTaskParametersKey,
 *         modelVersion: workspaceTaskParametersModelVersion,
 *         name: workspaceTaskParametersName,
 *         objectStatus: Number(workspaceTaskParametersObjectStatus),
 *         outputAggregationType: workspaceTaskParametersOutputAggregationType,
 *         parentRef: {
 *             parent: workspaceTaskParametersParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         },
 *         rootObjectDefaultValue: workspaceTaskParametersRootObjectDefaultValue,
 *         type: workspaceTaskParametersType,
 *         typeName: workspaceTaskParametersTypeName,
 *         usedFor: workspaceTaskParametersUsedFor,
 *     }],
 *     parentRef: {
 *         parent: workspaceTaskParentRefParent,
 *         rootDocId: testRootDoc.id,
 *     },
 *     pipeline: [{
 *         description: workspaceTaskPipelineDescription,
 *         flowConfigValues: [{
 *             configParamValues: [{
 *                 intValue: workspaceTaskPipelineFlowConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskPipelineFlowConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskPipelineFlowConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskPipelineFlowConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskPipelineFlowConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskPipelineFlowConfigValuesConfigParamValuesStringValue,
 *             }],
 *             parentRef: [{
 *                 parent: workspaceTaskPipelineFlowConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *         }],
 *         identifier: workspaceTaskPipelineIdentifier,
 *         key: workspaceTaskPipelineKey,
 *         metadata: [{
 *             aggregator: [{
 *                 description: workspaceTaskPipelineMetadataAggregatorDescription,
 *                 identifier: workspaceTaskPipelineMetadataAggregatorIdentifier,
 *                 key: workspaceTaskPipelineMetadataAggregatorKey,
 *                 name: workspaceTaskPipelineMetadataAggregatorName,
 *                 type: workspaceTaskPipelineMetadataAggregatorType,
 *             }],
 *             aggregatorKey: workspaceTaskPipelineMetadataAggregatorKey,
 *             countStatistics: [{
 *                 objectTypeCountList: [{
 *                     objectCount: workspaceTaskPipelineMetadataCountStatisticsObjectTypeCountListObjectCount,
 *                     objectType: workspaceTaskPipelineMetadataCountStatisticsObjectTypeCountListObjectType,
 *                 }],
 *             }],
 *             createdBy: workspaceTaskPipelineMetadataCreatedBy,
 *             createdByName: workspaceTaskPipelineMetadataCreatedByName,
 *             identifierPath: workspaceTaskPipelineMetadataIdentifierPath,
 *             infoFields: workspaceTaskPipelineMetadataInfoFields,
 *             isFavorite: workspaceTaskPipelineMetadataIsFavorite,
 *             labels: workspaceTaskPipelineMetadataLabels,
 *             registryVersion: workspaceTaskPipelineMetadataRegistryVersion,
 *             timeCreated: workspaceTaskPipelineMetadataTimeCreated,
 *             timeUpdated: workspaceTaskPipelineMetadataTimeUpdated,
 *             updatedBy: workspaceTaskPipelineMetadataUpdatedBy,
 *             updatedByName: workspaceTaskPipelineMetadataUpdatedByName,
 *         }],
 *         modelType: workspaceTaskPipelineModelType,
 *         modelVersion: workspaceTaskPipelineModelVersion,
 *         name: workspaceTaskPipelineName,
 *         nodes: [{
 *             configProviderDelegate: workspaceTaskPipelineNodesConfigProviderDelegate,
 *             description: workspaceTaskPipelineNodesDescription,
 *             inputLinks: [{
 *                 description: workspaceTaskPipelineNodesInputLinksDescription,
 *                 fieldMap: workspaceTaskPipelineNodesInputLinksFieldMap,
 *                 fromLink: workspaceTaskPipelineNodesInputLinksFromLink,
 *                 key: workspaceTaskPipelineNodesInputLinksKey,
 *                 modelType: workspaceTaskPipelineNodesInputLinksModelType,
 *                 modelVersion: workspaceTaskPipelineNodesInputLinksModelVersion,
 *                 objectStatus: workspaceTaskPipelineNodesInputLinksObjectStatus,
 *                 parentRef: [{
 *                     parent: workspaceTaskPipelineNodesInputLinksParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *                 port: workspaceTaskPipelineNodesInputLinksPort,
 *             }],
 *             key: workspaceTaskPipelineNodesKey,
 *             modelType: workspaceTaskPipelineNodesModelType,
 *             modelVersion: workspaceTaskPipelineNodesModelVersion,
 *             name: workspaceTaskPipelineNodesName,
 *             objectStatus: workspaceTaskPipelineNodesObjectStatus,
 *             operator: workspaceTaskPipelineNodesOperator,
 *             outputLinks: [{
 *                 description: workspaceTaskPipelineNodesOutputLinksDescription,
 *                 key: workspaceTaskPipelineNodesOutputLinksKey,
 *                 modelType: workspaceTaskPipelineNodesOutputLinksModelType,
 *                 modelVersion: workspaceTaskPipelineNodesOutputLinksModelVersion,
 *                 objectStatus: workspaceTaskPipelineNodesOutputLinksObjectStatus,
 *                 parentRef: [{
 *                     parent: workspaceTaskPipelineNodesOutputLinksParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *                 port: workspaceTaskPipelineNodesOutputLinksPort,
 *                 toLinks: workspaceTaskPipelineNodesOutputLinksToLinks,
 *             }],
 *             parentRef: [{
 *                 parent: workspaceTaskPipelineNodesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *             uiProperties: [{
 *                 coordinateX: workspaceTaskPipelineNodesUiPropertiesCoordinateX,
 *                 coordinateY: workspaceTaskPipelineNodesUiPropertiesCoordinateY,
 *             }],
 *         }],
 *         objectStatus: workspaceTaskPipelineObjectStatus,
 *         objectVersion: workspaceTaskPipelineObjectVersion,
 *         parameters: [{
 *             configValues: [{
 *                 configParamValues: [{
 *                     intValue: workspaceTaskPipelineParametersConfigValuesConfigParamValuesIntValue,
 *                     objectValue: workspaceTaskPipelineParametersConfigValuesConfigParamValuesObjectValue,
 *                     parameterValue: workspaceTaskPipelineParametersConfigValuesConfigParamValuesParameterValue,
 *                     refValue: workspaceTaskPipelineParametersConfigValuesConfigParamValuesRefValue,
 *                     rootObjectValue: workspaceTaskPipelineParametersConfigValuesConfigParamValuesRootObjectValue,
 *                     stringValue: workspaceTaskPipelineParametersConfigValuesConfigParamValuesStringValue,
 *                 }],
 *                 parentRef: [{
 *                     parent: workspaceTaskPipelineParametersConfigValuesParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *             }],
 *             defaultValue: workspaceTaskPipelineParametersDefaultValue,
 *             description: workspaceTaskPipelineParametersDescription,
 *             isInput: workspaceTaskPipelineParametersIsInput,
 *             isOutput: workspaceTaskPipelineParametersIsOutput,
 *             key: workspaceTaskPipelineParametersKey,
 *             modelType: workspaceTaskPipelineParametersModelType,
 *             modelVersion: workspaceTaskPipelineParametersModelVersion,
 *             name: workspaceTaskPipelineParametersName,
 *             objectStatus: workspaceTaskPipelineParametersObjectStatus,
 *             outputAggregationType: workspaceTaskPipelineParametersOutputAggregationType,
 *             parentRef: [{
 *                 parent: workspaceTaskPipelineParametersParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *             rootObjectDefaultValue: workspaceTaskPipelineParametersRootObjectDefaultValue,
 *             type: workspaceTaskPipelineParametersType,
 *             typeName: workspaceTaskPipelineParametersTypeName,
 *             usedFor: workspaceTaskPipelineParametersUsedFor,
 *         }],
 *         parentRef: [{
 *             parent: workspaceTaskPipelineParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         }],
 *         variables: [{
 *             configValues: [{
 *                 configParamValues: [{
 *                     intValue: workspaceTaskPipelineVariablesConfigValuesConfigParamValuesIntValue,
 *                     objectValue: workspaceTaskPipelineVariablesConfigValuesConfigParamValuesObjectValue,
 *                     parameterValue: workspaceTaskPipelineVariablesConfigValuesConfigParamValuesParameterValue,
 *                     refValue: workspaceTaskPipelineVariablesConfigValuesConfigParamValuesRefValue,
 *                     rootObjectValue: workspaceTaskPipelineVariablesConfigValuesConfigParamValuesRootObjectValue,
 *                     stringValue: workspaceTaskPipelineVariablesConfigValuesConfigParamValuesStringValue,
 *                 }],
 *                 parentRef: [{
 *                     parent: workspaceTaskPipelineVariablesConfigValuesParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *             }],
 *             defaultValue: workspaceTaskPipelineVariablesDefaultValue,
 *             description: workspaceTaskPipelineVariablesDescription,
 *             identifier: workspaceTaskPipelineVariablesIdentifier,
 *             key: workspaceTaskPipelineVariablesKey,
 *             modelType: workspaceTaskPipelineVariablesModelType,
 *             modelVersion: workspaceTaskPipelineVariablesModelVersion,
 *             name: workspaceTaskPipelineVariablesName,
 *             objectStatus: workspaceTaskPipelineVariablesObjectStatus,
 *             objectVersion: workspaceTaskPipelineVariablesObjectVersion,
 *             parentRef: [{
 *                 parent: workspaceTaskPipelineVariablesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             }],
 *             rootObjectDefaultValue: [{
 *                 key: workspaceTaskPipelineVariablesRootObjectDefaultValueKey,
 *                 modelType: workspaceTaskPipelineVariablesRootObjectDefaultValueModelType,
 *                 modelVersion: workspaceTaskPipelineVariablesRootObjectDefaultValueModelVersion,
 *                 objectStatus: workspaceTaskPipelineVariablesRootObjectDefaultValueObjectStatus,
 *                 parentRef: [{
 *                     parent: workspaceTaskPipelineVariablesRootObjectDefaultValueParentRefParent,
 *                     rootDocId: testRootDoc.id,
 *                 }],
 *             }],
 *             type: workspaceTaskPipelineVariablesType,
 *         }],
 *     }],
 *     pollRestCallConfig: {
 *         configValues: {
 *             configParamValues: {
 *                 intValue: workspaceTaskPollRestCallConfigConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskPollRestCallConfigConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskPollRestCallConfigConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskPollRestCallConfigConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskPollRestCallConfigConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskPollRestCallConfigConfigValuesConfigParamValuesStringValue,
 *             },
 *             parentRef: {
 *                 parent: workspaceTaskPollRestCallConfigConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             },
 *         },
 *         methodType: workspaceTaskPollRestCallConfigMethodType,
 *         requestHeaders: workspaceTaskPollRestCallConfigRequestHeaders,
 *     },
 *     script: [{
 *         key: workspaceTaskScriptKey,
 *         modelType: workspaceTaskScriptModelType,
 *         modelVersion: workspaceTaskScriptModelVersion,
 *         objectStatus: workspaceTaskScriptObjectStatus,
 *         parentRef: [{
 *             parent: workspaceTaskScriptParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         }],
 *     }],
 *     sqlScriptType: workspaceTaskSqlScriptType,
 *     typedExpressions: [{
 *         configValues: {
 *             configParamValues: {
 *                 intValue: workspaceTaskTypedExpressionsConfigValuesConfigParamValuesIntValue,
 *                 objectValue: workspaceTaskTypedExpressionsConfigValuesConfigParamValuesObjectValue,
 *                 parameterValue: workspaceTaskTypedExpressionsConfigValuesConfigParamValuesParameterValue,
 *                 refValue: workspaceTaskTypedExpressionsConfigValuesConfigParamValuesRefValue,
 *                 rootObjectValue: workspaceTaskTypedExpressionsConfigValuesConfigParamValuesRootObjectValue,
 *                 stringValue: workspaceTaskTypedExpressionsConfigValuesConfigParamValuesStringValue,
 *             },
 *             parentRef: {
 *                 parent: workspaceTaskTypedExpressionsConfigValuesParentRefParent,
 *                 rootDocId: testRootDoc.id,
 *             },
 *         },
 *         description: workspaceTaskTypedExpressionsDescription,
 *         expression: workspaceTaskTypedExpressionsExpression,
 *         key: workspaceTaskTypedExpressionsKey,
 *         modelType: workspaceTaskTypedExpressionsModelType,
 *         modelVersion: workspaceTaskTypedExpressionsModelVersion,
 *         name: workspaceTaskTypedExpressionsName,
 *         objectStatus: Number(workspaceTaskTypedExpressionsObjectStatus),
 *         parentRef: {
 *             parent: workspaceTaskTypedExpressionsParentRefParent,
 *             rootDocId: testRootDoc.id,
 *         },
 *         type: workspaceTaskTypedExpressionsType,
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * WorkspaceTasks can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataIntegration/workspaceTask:WorkspaceTask test_workspace_task "workspaces/{workspaceId}/tasks/{taskKey}"
 * ```
 */
class WorkspaceTask extends pulumi.CustomResource {
    /**
     * Get an existing WorkspaceTask resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name, id, state, opts) {
        return new WorkspaceTask(name, state, { ...opts, id: id });
    }
    /** @internal */
    static __pulumiType = 'oci:DataIntegration/workspaceTask:WorkspaceTask';
    /**
     * Returns true if the given object is an instance of WorkspaceTask.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj) {
        if (obj === undefined || obj === null) {
            return false;
        }
        return obj['__pulumiType'] === WorkspaceTask.__pulumiType;
    }
    constructor(name, argsOrState, opts) {
        let resourceInputs = {};
        opts = opts || {};
        if (opts.id) {
            const state = argsOrState;
            resourceInputs["apiCallMode"] = state?.apiCallMode;
            resourceInputs["authConfig"] = state?.authConfig;
            resourceInputs["cancelRestCallConfig"] = state?.cancelRestCallConfig;
            resourceInputs["configProviderDelegate"] = state?.configProviderDelegate;
            resourceInputs["description"] = state?.description;
            resourceInputs["executeRestCallConfig"] = state?.executeRestCallConfig;
            resourceInputs["identifier"] = state?.identifier;
            resourceInputs["inputPorts"] = state?.inputPorts;
            resourceInputs["isSingleLoad"] = state?.isSingleLoad;
            resourceInputs["key"] = state?.key;
            resourceInputs["keyMap"] = state?.keyMap;
            resourceInputs["metadatas"] = state?.metadatas;
            resourceInputs["modelType"] = state?.modelType;
            resourceInputs["modelVersion"] = state?.modelVersion;
            resourceInputs["name"] = state?.name;
            resourceInputs["objectStatus"] = state?.objectStatus;
            resourceInputs["objectVersion"] = state?.objectVersion;
            resourceInputs["opConfigValues"] = state?.opConfigValues;
            resourceInputs["operation"] = state?.operation;
            resourceInputs["outputPorts"] = state?.outputPorts;
            resourceInputs["parallelLoadLimit"] = state?.parallelLoadLimit;
            resourceInputs["parameters"] = state?.parameters;
            resourceInputs["parentRef"] = state?.parentRef;
            resourceInputs["pollRestCallConfig"] = state?.pollRestCallConfig;
            resourceInputs["registryMetadata"] = state?.registryMetadata;
            resourceInputs["typedExpressions"] = state?.typedExpressions;
            resourceInputs["workspaceId"] = state?.workspaceId;
        }
        else {
            const args = argsOrState;
            if (args?.identifier === undefined && !opts.urn) {
                throw new Error("Missing required property 'identifier'");
            }
            if (args?.modelType === undefined && !opts.urn) {
                throw new Error("Missing required property 'modelType'");
            }
            if (args?.registryMetadata === undefined && !opts.urn) {
                throw new Error("Missing required property 'registryMetadata'");
            }
            if (args?.workspaceId === undefined && !opts.urn) {
                throw new Error("Missing required property 'workspaceId'");
            }
            resourceInputs["apiCallMode"] = args?.apiCallMode;
            resourceInputs["authConfig"] = args?.authConfig;
            resourceInputs["cancelRestCallConfig"] = args?.cancelRestCallConfig;
            resourceInputs["configProviderDelegate"] = args?.configProviderDelegate;
            resourceInputs["description"] = args?.description;
            resourceInputs["executeRestCallConfig"] = args?.executeRestCallConfig;
            resourceInputs["identifier"] = args?.identifier;
            resourceInputs["inputPorts"] = args?.inputPorts;
            resourceInputs["isSingleLoad"] = args?.isSingleLoad;
            resourceInputs["key"] = args?.key;
            resourceInputs["modelType"] = args?.modelType;
            resourceInputs["modelVersion"] = args?.modelVersion;
            resourceInputs["name"] = args?.name;
            resourceInputs["objectStatus"] = args?.objectStatus;
            resourceInputs["opConfigValues"] = args?.opConfigValues;
            resourceInputs["operation"] = args?.operation;
            resourceInputs["outputPorts"] = args?.outputPorts;
            resourceInputs["parallelLoadLimit"] = args?.parallelLoadLimit;
            resourceInputs["parameters"] = args?.parameters;
            resourceInputs["parentRef"] = args?.parentRef;
            resourceInputs["pollRestCallConfig"] = args?.pollRestCallConfig;
            resourceInputs["registryMetadata"] = args?.registryMetadata;
            resourceInputs["typedExpressions"] = args?.typedExpressions;
            resourceInputs["workspaceId"] = args?.workspaceId;
            resourceInputs["keyMap"] = undefined /*out*/;
            resourceInputs["metadatas"] = undefined /*out*/;
            resourceInputs["objectVersion"] = undefined /*out*/;
        }
        opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
        super(WorkspaceTask.__pulumiType, name, resourceInputs, opts);
    }
}
exports.WorkspaceTask = WorkspaceTask;
//# sourceMappingURL=workspaceTask.js.map