{
"openapi" : "3.0.1",
"info" : {
"title" : "eccenca DataIntegration API",
"description" : "\r\neccenca DataIntegration API.\r\n\r\n\r\n Security scheme \r\n\r\nThe default security scheme is OAuth 2.0.\r\nHowever, this can be changed in the configuration.\r\n\r\nIf a user is not authenticated, endpoints will return HTTP error code 401.\r\n\r\nIf a user is not authorized to use eccenca DataIntegration, HTTP error code 403 will be returned.\r\n\r\n \r\n\r\n\r\n Media types \r\n\r\nThe default [media type](https://en.wikipedia.org/wiki/Media_type) of most responses is `application/json`.\r\nOther possible response media types can be reached by changing the `Accept` header of the request.\r\n\r\nPossible values of this HTTP header field are API dependent and listed as part of the specific HTTP method.\r\n\r\nDependent on the specific API, eccenca DataIntegration works with the following application media types which correspond to the following specification documents:\r\n\r\nMedia Type | Specification Document\r\n------------------------------------|-----------------------------------------------------------------------\r\n`application/x-www-form-urlencoded` | [HTML 4.01 Specification, Forms](https://www.w3.org/TR/html401/interact/forms.html)\r\n`application/json` | [The JavaScript Object Notation (JSON) Data Interchange Format](https://tools.ietf.org/html/rfc8259)\r\n`application/xml` | [XML Media Types](https://tools.ietf.org/html/rfc7303)\r\n`application/n-triples` | [RDF 1.1 N-Triples - A line-based syntax for an RDF graph](https://www.w3.org/TR/n-triples/)\r\n`application/problem+json` | [Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807)\r\n\r\n \r\n\r\n\r\n Error responses \r\n\r\nUnless otherwise specified, errors will be returned in the [Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807) format.\r\n\r\nExample:\r\n\r\n {\r\n \"title\": \"The error type\"\r\n \"detail\": \"Human-readable error message\"\r\n }\r\n\r\nIn addition, endpoints may include a detailed list of issues:\r\n\r\n {\r\n \"title\": \"The error type\",\r\n \"message\": \"Human-readable error message\",\r\n \"issues\": [\r\n {\r\n \"type\": \"One of: Error|Warning|Info\",\r\n \"message\": \"Description of this error\",\r\n \"id\": \"The id of the element that is affected, such as a specific operator.\"\r\n },\r\n ...\r\n ]\r\n }\r\n\r\n \r\n",
"contact" : {
"name" : "eccenca GmbH",
"url" : "https://eccenca.com/",
"email" : "info@eccenca.com"
},
"version" : "v24.1.0"
},
"servers" : [ {
"url" : "http://localhost:9000/"
} ],
"tags" : [ {
"name" : "Activities",
"description" : "Manage activities. An activity is a unit of work that can be executed in the background. The are global activities as well as activities that belong to a task or project."
}, {
"name" : "DataPlatform",
"description" : "Access eccenca DataPlatform APIs."
}, {
"name" : "Datasets",
"description" : "Dataset-specific REST endpoint."
}, {
"name" : "Dataset preview",
"description" : "Generate content previews for datasets and resources."
}, {
"name" : "Dataset profiling",
"description" : "Profile datasets. Data profiling detects relevant properties in datasets and generates a summary from it. "
}, {
"name" : "Execution reports",
"description" : "List and retrieve workflow execution reports."
}, {
"name" : "Linking",
"description" : "Linking specific operations, such as evaluating rules and managing reference links."
}, {
"name" : "Linking - Active learning",
"description" : "Active learning API."
}, {
"name" : "Ontology Matching",
"description" : "Ontology matching between datasets and vocabularies and vice versa. "
}, {
"name" : "OpenAPI",
"description" : "Retrieve this OpenAPI specification."
}, {
"name" : "Plugins",
"description" : "Provides information about all installed plugins."
}, {
"name" : "Projects",
"description" : "Access to all projects in the workspace."
}, {
"name" : "Project import/export",
"description" : "Import and export projects."
}, {
"name" : "Project resources",
"description" : "Manage file resources in a project."
}, {
"name" : "Project tasks",
"description" : "Access to all tasks in a project."
}, {
"name" : "Python",
"description" : "Manage Python plugins."
}, {
"name" : "Scripts",
"description" : "Provides functions for scripts that can be executed as part of a workflow."
}, {
"name" : "Search",
"description" : "Search for tasks in the workspace"
}, {
"name" : "Transform",
"description" : "Endpoints related to transformation tasks and mapping rules."
}, {
"name" : "Transform autocompletion",
"description" : "Autocomplete types and paths in transformations."
}, {
"name" : "Transform target vocabulary",
"description" : "Provides access to the target vocabulary."
}, {
"name" : "Validation",
"description" : "Validate paths."
}, {
"name" : "Variable Templates",
"description" : "Provides endpoints for variable template handling."
}, {
"name" : "Workbench",
"description" : "General operations on the workbench."
}, {
"name" : "Workflows",
"description" : "Workflow specific operations, such as execution of workflows with payloads."
} ],
"paths" : {
"/api/core/datasets/resourceBased" : {
"get" : {
"tags" : [ "Plugins" ],
"summary" : "Resource based dataset plugin IDs",
"description" : "Returns a list of plugin IDs of all resource based datasets.",
"operationId" : "resourceBasedDatasetIds",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ "file", "csv", "xml" ]
}
}
}
}
}
},
"/core/plugins" : {
"get" : {
"tags" : [ "Plugins" ],
"summary" : "All plugins",
"description" : "Lists all available plugins. The returned JSON format stays as close to JSON Schema as possible.",
"operationId" : "plugins",
"parameters" : [ {
"name" : "addMarkdownDocumentation",
"in" : "query",
"description" : "Add markdown documentation to the result.",
"schema" : {
"type" : "boolean",
"example" : false
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"pluginId1" : {
"title" : "human-readable plugin label",
"description" : "human-readable plugin description.",
"markdownDocumentation" : "Documentation:\n\n* Optional\n* more detailed\n* Markdown documentation",
"type" : "object",
"properties" : {
"parameterName1" : {
"title" : "parameter label",
"description" : "parameter description",
"type" : "string",
"value" : "",
"advanced" : false,
"autoCompletion" : {
"allowOnlyAutoCompletedValues" : true,
"autoCompleteValueWithLabels" : true,
"autoCompletionDependsOnParameters" : [ "otherParamName" ]
}
}
},
"required" : [ ]
},
"pluginId2" : {
"title" : "human-readable plugin label",
"description" : "human-readable plugin description.",
"type" : "object",
"properties" : { },
"required" : [ ]
}
}
}
}
}
}
}
},
"/api/core/plugins/{pluginId}" : {
"get" : {
"tags" : [ "Plugins" ],
"summary" : "Plugin description",
"description" : "The plugin description of a specific plugin, including meta data and JSON schema.",
"operationId" : "plugin",
"parameters" : [ {
"name" : "pluginId",
"in" : "path",
"description" : "The plugin identifier.",
"required" : true,
"schema" : {
"type" : "string",
"example" : "csv"
}
}, {
"name" : "addMarkdownDocumentation",
"in" : "query",
"description" : "Add markdown documentation to the result.",
"schema" : {
"type" : "boolean",
"example" : false
}
}, {
"name" : "pretty",
"in" : "query",
"description" : "If true, JSON output will be pretty printed.",
"schema" : {
"type" : "boolean",
"example" : true
}
}, {
"name" : "withLabels",
"in" : "query",
"description" : "If true, all plugin parameter values will be reified in a new object that has an optional label property. A label is added for all auto-completable parameters that have the 'autoCompleteValueWithLabels' property set to true. This guarantees that a user always sees the label of such values.",
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "\r\nContains the typical meta data of a plugin like title, categories and description.\r\nThe 'taskType' property is optional and specifies the task type a task related plugin, e.g. workflow, dataset etc., belongs to.\r\nThe task type must be specified when creating tasks via the generic /tasks endpoint.\r\nThe JSON schema part of the plugin parameters is described in the 'properties' object. Besides title\r\nand description each parameter has the JSON type, which can only be \"string\" or \"object\" at the moment.\r\nThe 'parameterType' specifies the internal data type. For \"object\" types this can be ignored, for \"string\"\r\nparameter types this gives a hint at what kind of UI widget is appropriate and what kind of validation could be applied.\r\nThe 'value' property gives the default value when this parameter is not specified.\r\nThe 'advanced' property marks the parameter as advanced and acts as a hint that this parameter should\r\nbe somehow handled differently by the UI.\r\nIf the 'visibleInDialog' property is set to false, then this parameter should not be set from a creation\r\nor update dialog. Usually this parameter is complex and is modified in special editors, e.g. the mapping editor.\r\nThe pluginId property specifies the ID of the plugin and is also set for all plugin parameters that\r\nare plugins themselves. The plugin ID is needed, e.g. for the auto-completion of parameter values.\r\nA parameter can have an autoCompletion property that specifies how a parameter value can or should be auto-completed.\r\nIf allowOnlyAutoCompletedValues is set to true then the UI must make sure that only values from the auto-completion\r\nare considered as valid.\r\nIf autoCompleteValueWithLabels is set to true, then the auto-completion values might have a label in addition\r\nto the actual value. Only the label should be presented to the user then.\r\nThe autoCompletionDependsOnParameters array specifies the values of parameters from the same object,\r\na specific parameter depends on. These must be send in the auto-completion request in the same order.\r\n",
"content" : {
"application/json" : {
"example" : {
"title" : "Transform",
"categories" : [ "Transform" ],
"description" : "A transform task defines a mapping from a source structure to a target structure.",
"taskType" : "Transform",
"type" : "object",
"pluginId" : "transform",
"properties" : {
"selection" : {
"title" : "Input task",
"description" : "The source from which data will be transformed when executed as a single task outside of a workflow.",
"type" : "object",
"parameterType" : "objectParameter",
"value" : null,
"advanced" : false,
"visibleInDialog" : true,
"pluginId" : "datasetSelectionParameter",
"properties" : {
"inputId" : {
"title" : "Dataset",
"description" : "The dataset to select.",
"type" : "string",
"parameterType" : "identifier",
"value" : null,
"advanced" : false,
"visibleInDialog" : true,
"autoCompletion" : {
"allowOnlyAutoCompletedValues" : true,
"autoCompleteValueWithLabels" : true,
"autoCompletionDependsOnParameters" : [ ]
}
},
"typeUri" : {
"title" : "Type",
"description" : "The type of the dataset. If left empty, the default type will be selected.",
"type" : "string",
"parameterType" : "uri",
"value" : null,
"advanced" : false,
"visibleInDialog" : true,
"autoCompletion" : {
"allowOnlyAutoCompletedValues" : false,
"autoCompleteValueWithLabels" : false,
"autoCompletionDependsOnParameters" : [ ]
}
},
"restriction" : {
"title" : "Restriction",
"description" : "Additional restrictions on the enumerated entities. If this is an RDF source, use SPARQL patterns that include the variable ?a to identify the enumerated entities, e.g. ?a foaf:knows ",
"type" : "string",
"parameterType" : "restriction",
"value" : "",
"advanced" : false,
"visibleInDialog" : true
}
}
},
"mappingRule" : {
"title" : "mapping rule",
"description" : "",
"type" : "object",
"parameterType" : "objectParameter",
"value" : {
"type" : "root",
"id" : "root",
"rules" : {
"uriRule" : null,
"typeRules" : [ ],
"propertyRules" : [ ]
},
"metadata" : {
"label" : "Root Mapping"
}
},
"advanced" : false,
"visibleInDialog" : false
},
"output" : {
"title" : "Output dataset",
"description" : "An optional dataset where the transformation results should be written to when executed as single task outside of a workflow.",
"type" : "string",
"parameterType" : "option[identifier]",
"value" : "",
"advanced" : false,
"visibleInDialog" : true,
"autoCompletion" : {
"allowOnlyAutoCompletedValues" : true,
"autoCompleteValueWithLabels" : true,
"autoCompletionDependsOnParameters" : [ ]
}
}
},
"required" : [ "selection" ]
}
}
}
}
}
}
},
"/core/plugins/{pluginType}" : {
"get" : {
"tags" : [ "Plugins" ],
"summary" : "All plugins",
"description" : "Lists all available plugins that implement the given plugin type. The returned JSON format stays as close to JSON Schema as possible.",
"operationId" : "pluginsForTypes",
"parameters" : [ {
"name" : "pluginType",
"in" : "path",
"description" : "Full class name of the plugin.",
"required" : true,
"schema" : {
"type" : "string",
"example" : "org.silkframework.dataset.Dataset"
}
}, {
"name" : "addMarkdownDocumentation",
"in" : "query",
"description" : "Add markdown documentation to the result.",
"schema" : {
"type" : "boolean",
"example" : false
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"pluginId1" : {
"title" : "human-readable plugin label",
"description" : "human-readable plugin description.",
"markdownDocumentation" : "Documentation:\n\n* Optional\n* more detailed\n* Markdown documentation",
"type" : "object",
"properties" : {
"parameterName1" : {
"title" : "parameter label",
"description" : "parameter description",
"type" : "string",
"value" : "",
"advanced" : false,
"autoCompletion" : {
"allowOnlyAutoCompletedValues" : true,
"autoCompleteValueWithLabels" : true,
"autoCompletionDependsOnParameters" : [ "otherParamName" ]
}
}
},
"required" : [ ]
},
"pluginId2" : {
"title" : "human-readable plugin label",
"description" : "human-readable plugin description.",
"type" : "object",
"properties" : { },
"required" : [ ]
}
}
}
}
}
}
}
},
"/api/core/ruleOperatorPlugins" : {
"get" : {
"tags" : [ "Plugins" ],
"summary" : "Rule operator plugins",
"description" : "A list of plugins that can be used in rule editors. Contains meta data of the plugin, i.e. title, description and categories and parameter information.",
"operationId" : "ruleOperatorPlugins",
"parameters" : [ {
"name" : "addMarkdownDocumentation",
"in" : "query",
"description" : "Add markdown documentation to the result.",
"schema" : {
"type" : "boolean",
"default" : false
}
}, {
"name" : "textQuery",
"in" : "query",
"description" : "An optional (multi word) text query to filter the list of plugins.",
"schema" : {
"type" : "string",
"example" : "csv"
}
}, {
"name" : "category",
"in" : "query",
"description" : "An optional category. This will only return plugins from the same category.",
"schema" : {
"type" : "string",
"example" : "file"
}
}, {
"name" : "overviewOnly",
"in" : "query",
"description" : "If false the whole plugin specification will be returned, else only the high-level meta data is returned, e.g. label and category.",
"schema" : {
"type" : "boolean",
"default" : false
}
}, {
"name" : "inputOperatorsOnly",
"in" : "query",
"description" : "If set to true then only input rule operators will be returned, i.e. transformation operators.",
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : "\r\n{\r\n ...\r\n \"concat\": {\r\n \"categories\": [\r\n \"Combine\"\r\n ],\r\n \"description\": \"Concatenates strings from multiple inputs.\",\r\n \"pluginId\": \"concat\",\r\n \"pluginType\": \"TransformOperator\",\r\n \"properties\": {\r\n \"glue\": {\r\n \"advanced\": false,\r\n \"description\": \"Separator to be inserted between two concatenated strings.\",\r\n \"parameterType\": \"string\",\r\n \"title\": \"Glue\",\r\n \"type\": \"string\",\r\n \"value\": \"\",\r\n \"visibleInDialog\": true\r\n },\r\n \"missingValuesAsEmptyStrings\": {\r\n \"advanced\": false,\r\n \"description\": \"Handle missing values as empty strings.\",\r\n \"parameterType\": \"boolean\",\r\n \"title\": \"Missing values as empty strings\",\r\n \"type\": \"string\",\r\n \"value\": \"false\",\r\n \"visibleInDialog\": true\r\n }\r\n },\r\n \"required\": [],\r\n \"title\": \"Concatenate\",\r\n \"type\": \"object\"\r\n }\r\n ...\r\n}\r\n "
}
}
}
}
}
},
"/api/core/ruleOperatorPlugins/{pluginId}" : {
"get" : {
"tags" : [ "Plugins" ],
"summary" : "Rule operator plugin description",
"description" : "The plugin description of a specific rule operator plugin, including meta data and JSON schema.",
"operationId" : "ruleOperatorPlugin",
"parameters" : [ {
"name" : "pluginId",
"in" : "path",
"description" : "The rule operator plugin identifier.",
"required" : true,
"schema" : {
"type" : "string",
"example" : "csv"
}
}, {
"name" : "addMarkdownDocumentation",
"in" : "query",
"description" : "Add markdown documentation to the result.",
"schema" : {
"type" : "boolean",
"example" : false
}
}, {
"name" : "pretty",
"in" : "query",
"description" : "If true, JSON output will be pretty printed.",
"schema" : {
"type" : "boolean",
"example" : true
}
}, {
"name" : "withLabels",
"in" : "query",
"description" : "If true, all plugin parameter values will be reified in a new object that has an optional label property. A label is added for all auto-completable parameters that have the 'autoCompleteValueWithLabels' property set to true. This guarantees that a user always sees the label of such values.",
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "\r\nContains the typical meta data of a plugin like title, categories and description.\r\nThe 'taskType' property is optional and specifies the task type a task related plugin, e.g. workflow, dataset etc., belongs to.\r\nThe task type must be specified when creating tasks via the generic /tasks endpoint.\r\nThe JSON schema part of the plugin parameters is described in the 'properties' object. Besides title\r\nand description each parameter has the JSON type, which can only be \"string\" or \"object\" at the moment.\r\nThe 'parameterType' specifies the internal data type. For \"object\" types this can be ignored, for \"string\"\r\nparameter types this gives a hint at what kind of UI widget is appropriate and what kind of validation could be applied.\r\nThe 'value' property gives the default value when this parameter is not specified.\r\nThe 'advanced' property marks the parameter as advanced and acts as a hint that this parameter should\r\nbe somehow handled differently by the UI.\r\nIf the 'visibleInDialog' property is set to false, then this parameter should not be set from a creation\r\nor update dialog. Usually this parameter is complex and is modified in special editors, e.g. the mapping editor.\r\nThe pluginId property specifies the ID of the plugin and is also set for all plugin parameters that\r\nare plugins themselves. The plugin ID is needed, e.g. for the auto-completion of parameter values.\r\nA parameter can have an autoCompletion property that specifies how a parameter value can or should be auto-completed.\r\nIf allowOnlyAutoCompletedValues is set to true then the UI must make sure that only values from the auto-completion\r\nare considered as valid.\r\nIf autoCompleteValueWithLabels is set to true, then the auto-completion values might have a label in addition\r\nto the actual value. Only the label should be presented to the user then.\r\nThe autoCompletionDependsOnParameters array specifies the values of parameters from the same object,\r\na specific parameter depends on. These must be send in the auto-completion request in the same order.\r\n",
"content" : {
"application/json" : {
"example" : {
"title" : "Excel map",
"categories" : [ "Replace" ],
"description" : "Replaces values based on a map of values read from a file in Open XML format (XLSX).\nThe XLSX file may contain several sheets of the form:\n\nmapFrom,mapTo\n,\n... and more\n\nAn empty string can be created in Excel and alternatives by inserting =\"\" in the input line of a cell.\n\nIf there are multiple values for a single key, all values will be returned for the given key.\n\nNote that the mapping table will be cached in memory. If the Excel file is updated (even while transforming), the map will be reloaded within seconds.\n ",
"type" : "object",
"properties" : {
"excelFile" : {
"title" : "Excel file",
"description" : "Excel file inside the resources directory containing one or more sheets with mapping tables.",
"type" : "string",
"parameterType" : "resource",
"value" : null,
"advanced" : false,
"visibleInDialog" : true,
"autoCompletion" : {
"allowOnlyAutoCompletedValues" : true,
"autoCompleteValueWithLabels" : false,
"autoCompletionDependsOnParameters" : [ ]
}
},
"sheetName" : {
"title" : "Sheet name",
"description" : "The sheet that contains the mapping table or empty if the first sheet should be taken.",
"type" : "string",
"parameterType" : "string",
"value" : "",
"advanced" : false,
"visibleInDialog" : true
},
"skipLines" : {
"title" : "Skip lines",
"description" : "How many rows to skip before reading the mapping table. By default the expected header row is skipped.",
"type" : "string",
"parameterType" : "int",
"value" : "1",
"advanced" : false,
"visibleInDialog" : true
},
"strict" : {
"title" : "Strict",
"description" : "If set to true, the operator throws validation errors for values it cannot map. If set to false, the chosen conflict strategy will be applied for missing values.",
"type" : "string",
"parameterType" : "boolean",
"value" : "true",
"advanced" : false,
"visibleInDialog" : true
},
"conflictStrategy" : {
"title" : "Conflict strategy",
"description" : "Determines how values that cannot be found in the mapping table are treated. Only has an effect if 'strict' is set to false. If 'retain' is chosen, the original value will be forwarded. If 'remove' is chosen, no value will be output.",
"type" : "string",
"parameterType" : "enumeration",
"value" : {
"value" : "retain",
"label" : "Retain Value"
},
"advanced" : false,
"visibleInDialog" : true,
"autoCompletion" : {
"allowOnlyAutoCompletedValues" : true,
"autoCompleteValueWithLabels" : true,
"autoCompletionDependsOnParameters" : [ ]
}
}
},
"required" : [ "excelFile" ],
"pluginId" : "excelMap"
}
}
}
}
}
}
},
"/api/core/system/threadDump" : {
"get" : {
"tags" : [ "Workbench" ],
"summary" : "Request thread dump",
"description" : "Requests a thread dump for all live threads.",
"operationId" : "threadDump",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"text/plain" : { }
}
}
}
}
},
"/api/core/taskPlugins" : {
"get" : {
"tags" : [ "Plugins" ],
"summary" : "Task plugins",
"description" : "A list of plugins that can be created as workspace tasks, e.g. datasets, transform tasks etc. The result of this endpoint only contains meta data of the plugin, i.e. title, description and categories. To fetch the schema details of a specific plugin use the /plugin endpoint.",
"operationId" : "taskPlugins",
"parameters" : [ {
"name" : "addMarkdownDocumentation",
"in" : "query",
"description" : "Add markdown documentation to the result.",
"schema" : {
"type" : "boolean",
"default" : false
}
}, {
"name" : "textQuery",
"in" : "query",
"description" : "An optional (multi word) text query to filter the list of plugins.",
"schema" : {
"type" : "string",
"example" : "csv"
}
}, {
"name" : "category",
"in" : "query",
"description" : "An optional category. This will only return plugins from the same category.",
"schema" : {
"type" : "string",
"example" : "file"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"multiCsv" : {
"title" : "Multi CSV ZIP",
"categories" : [ "file" ],
"description" : "Reads from or writes to multiple CSV files from/to a single ZIP file.",
"markdownDocumentation" : "# Some markdown documentations"
},
"csv" : {
"title" : "CSV",
"categories" : [ "file" ],
"description" : "Read from or write to an CSV file."
}
}
}
}
}
}
}
},
"/api/core/usages/plugins/{pluginId}" : {
"get" : {
"tags" : [ "Plugins" ],
"summary" : "Plugin usages",
"description" : "Returns a list of all usages of a given plugin. Currently lists usages in projects as tasks and as within linking and transform rules.",
"operationId" : "pluginUsages",
"parameters" : [ {
"name" : "pluginId",
"in" : "path",
"description" : "The plugin identifier.",
"required" : true,
"schema" : {
"type" : "string",
"example" : "csv"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"project" : "projectId",
"task" : "taskId",
"link" : "{editor URL}"
} ]
}
}
}
}
}
},
"/api/core/variableTemplate/completion" : {
"post" : {
"tags" : [ "Variable Templates" ],
"summary" : "Auto-complete variable template",
"description" : "Returns auto=completion suggestions for the variable template.",
"operationId" : "autoCompleteTemplate",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"inputString" : "{{",
"cursorPosition" : 2,
"maxSuggestions" : 50,
"project" : "movies"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"inputString" : "endpointXYZ{# some comment #}",
"cursorPosition" : 19,
"replacementResults" : [ {
"replacementInterval" : {
"from" : 19,
"length" : 0
},
"extractedQuery" : "",
"replacements" : [ {
"value" : "test"
}, {
"value" : "testInt"
} ]
} ]
}
}
}
}
}
}
},
"/api/core/variableTemplate/reorderVariables" : {
"post" : {
"tags" : [ "Variable Templates" ],
"summary" : "Reorder variables",
"description" : "Reorders all variables.",
"operationId" : "reorderVariables",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "An array containing the variable names in the desired order.",
"content" : {
"application/json" : {
"schema" : {
"type" : "string"
},
"example" : [ "variable1", "variable2" ]
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the update has been successful."
},
"400" : {
"description" : "If the variables could not be reordered.",
"content" : {
"application/json" : { }
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/core/variableTemplate/validation" : {
"post" : {
"tags" : [ "Variable Templates" ],
"summary" : "Validate variable template",
"description" : "Validate a template based on Jinja syntax that may contain global variables.",
"operationId" : "validateTemplate",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"templateString" : "{{var}}",
"project" : "movies"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"valid" : false,
"parseError" : {
"message" : "Error parsing '#{does not exist}': syntax error at position 7, encountered 'not', expected '}'",
"start" : 0,
"end" : 18
}
}
}
}
}
}
}
},
"/api/core/variableTemplate/variables" : {
"get" : {
"tags" : [ "Variable Templates" ],
"summary" : "Retrieve variables",
"description" : "Retrieves all variables at a specific scope.",
"operationId" : "getVariables",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The variables.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/TemplateVariablesFormat"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
},
"post" : {
"tags" : [ "Variable Templates" ],
"summary" : "Put variables",
"description" : "Updates all variables at a specific scope.",
"operationId" : "putVariables",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/TemplateVariablesFormat"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the update has been successful."
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/core/variableTemplate/variables/{name}" : {
"get" : {
"tags" : [ "Variable Templates" ],
"summary" : "Get variable",
"description" : "Retrieves a single variable by name.",
"operationId" : "getVariable",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The variable name",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Requested variable",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/TemplateVariableFormat"
}
}
}
},
"404" : {
"description" : "If the project or variable does not exist."
}
}
},
"put" : {
"tags" : [ "Variable Templates" ],
"summary" : "Put variable",
"description" : "Adds or updates a single variable.",
"operationId" : "putVariable",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The variable name",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/TemplateVariableFormat"
}
}
},
"required" : true
},
"responses" : {
"404" : {
"description" : "If the project does not exist."
}
}
},
"delete" : {
"tags" : [ "Variable Templates" ],
"summary" : "Remove variable",
"description" : "Removes a single variable by name.",
"operationId" : "deleteVariable",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The variable name",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the variable has been removed successfully"
},
"400" : {
"description" : "If the variable could not be removed because another variable depends on it.",
"content" : {
"application/json" : {
"example" : {
"title" : "Cannot delete used variable",
"detail" : "The variable 'year' cannot be deleted because it's used in the following other variables: 'movie1', 'movie2'",
"cause" : null,
"variable" : "year",
"dependentVariables" : [ "movie1", "movie2" ]
}
}
}
},
"404" : {
"description" : "If the project or variable does not exist."
}
}
}
},
"/api/core/variableTemplate/variables/{name}/dependencies" : {
"get" : {
"tags" : [ "Variable Templates" ],
"summary" : "Variable dependencies",
"description" : "Returns a list of variables and tasks that a to-be-removed variable depends on.",
"operationId" : "variableDependencies",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The variable name",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The dependencies"
},
"404" : {
"description" : "If the project or variable does not exist."
}
}
}
},
"/datasets/preview" : {
"post" : {
"tags" : [ "Dataset preview" ],
"summary" : "Dataset preview",
"description" : "Get a content preview of a given dataset. The dataset must be already registered.\r\nIf a preview of unregistered data is needed, the Resource Preview endpoint can be used. The main difference to the Resource\r\nPreview is the simpler usage with only the dataset name and project name as input.\r\nAs opposed to the Resource Preview, the only type of preview is a structured preview, since the datasets were already registered and\r\ntheir parameters and parsing instructions are known. Returns 404 for non registered datasets and an empty previewContent for datasets\r\nthat are registered but not available for reading or empty.\r\n ",
"operationId" : "getPreview_1",
"requestBody" : {
"description" : "The previewContent.attributes property for\r\nstructured resources has an array of the following form: Usually they are either absolute IRIs with the form ''\r\nor attribute names like 'first_name'. For data sources that also return backward paths, e.g. RDF, it can also be\r\nthat a '\\' is prepended to the URI or attribute name, e.g. '\\'.\r\n ",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/DatasetRequest"
},
"example" : {
"project" : "project name",
"dataset" : "dataset name",
"typeUri" : "type URI (optional)"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Content preview of the specified dataset.",
"content" : {
"application/json" : {
"example" : {
"datasetInfo" : {
"id" : "task-identifier",
"type" : "csv",
"parameters" : {
"arraySeparator" : "",
"separator" : ",",
"prefix" : "",
"uri" : "",
"ignoreBadLines" : "false",
"quote" : "\"",
"properties" : "URI,date,state,unemployRate,volume",
"regexFilter" : "",
"charset" : "UTF-8",
"file" : "test.csv",
"linesToSkip" : "1",
"maxCharsPerColumn" : "4096"
}
},
"previewType" : "structured",
"previewContent" : {
"attributes" : [ "attribute1", "type", "label", "xxx" ],
"values" : [ [ "v", "z", "x", "y" ], [ "1", "2", "3", "4" ] ]
}
}
}
}
}
}
}
},
"/api/dp/graphs" : {
"post" : {
"tags" : [ "DataPlatform" ],
"summary" : "Fetch existing graphs",
"description" : "Fetches existing graphs from the DataPlatform.",
"operationId" : "fetchGraphs",
"requestBody" : {
"description" : "Graph search request",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/GraphSearchRequest"
},
"example" : {
"textQuery" : "multi word query"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/GraphResponse"
},
"example" : [ {
"uri" : "urn:some:graphUri",
"label" : "Graph A"
} ]
}
}
}
}
}
},
"/health" : {
"get" : {
"tags" : [ "Workbench" ],
"summary" : "Health",
"description" : "Returns config and health information about components DataIntegration depends on like DataPlatform and Spark.\r\nThe status property values are either 'UP' or 'DOWN'. If any sub-component ist down, then the parent\r\ncomponent is also marked down. Not configured components are hidden.\r\n ",
"operationId" : "healthCheck",
"responses" : {
"200" : {
"description" : "If the system is healthy",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/DataIntegrationHealthIndicator"
},
"example" : {
"details" : {
"sparkHealthIndicator" : {
"details" : {
"appName" : "eccenca DataIntegration Spark executor",
"sparkContextStarts" : true,
"startTime" : 1529565769538
},
"status" : "UP"
}
},
"status" : "UP"
}
}
}
},
"503" : {
"description" : "If the system is unhealthy",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/DataIntegrationHealthIndicator"
},
"example" : {
"status" : "DOWN",
"details" : {
"dataPlatformHealthIndicator" : {
"details" : {
"authorizationUrl" : "http://docker.local/dataplatform/oauth/authorize",
"dataPlatformHealthCheck" : {
"errorMessage" : "Could not connect to the DataPlatform: Connection refused: docker.local/127.0.0.1:80",
"healthEndpoint" : "http://docker.local/dataplatform/actuator/health"
},
"dataPlatformUrl" : "http://docker.local/dataplatform",
"oAuthEnabled" : true,
"tokenUrl" : "http://docker.local/dataplatform/oauth/token"
},
"status" : "DOWN"
},
"sparkHealthIndicator" : {
"details" : {
"appName" : "eccenca DataIntegration Spark executor",
"sparkContextStarts" : true,
"startTime" : 1529565583387
},
"status" : "UP"
}
}
}
}
}
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/bestRule" : {
"get" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Best linkage rule",
"description" : "Retrieves the best linkage rule from the population.",
"operationId" : "bestRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "withLabels",
"in" : "query",
"description" : "If true, all rule parameter values will be reified in a new object that has an optional label property. A label is added for all auto-completable parameters that have the 'autoCompleteValueWithLabels' property set to true. This guarantees that a user always sees the label of such values.",
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "Success"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/comparisonPairs" : {
"get" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Comparison pairs",
"description" : "Retrieves all comparison pairs. The suggested comparison pairs need to be generated first by running the 'ActiveLearning-ComparisonPairs' activity.",
"operationId" : "comparisonPairs",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/comparisonPairs/addSelected" : {
"post" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Add a comparison pair",
"description" : "Adds a comparison pair to the list of selected pairs.",
"operationId" : "addComparisonPair",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ComparisonPairFormat"
}
}
},
"required" : true
},
"responses" : {
"204" : {
"description" : "Success"
},
"404" : {
"description" : "If the specified project or task has not been found."
},
"409" : {
"description" : "If the provided comparison pair is already selected."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/comparisonPairs/removeSelected" : {
"post" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Remove a comparison pair",
"description" : "Removes a comparison pair from the list of selected pairs.",
"operationId" : "removeComparisonPair",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ComparisonPairFormat"
}
}
},
"required" : true
},
"responses" : {
"204" : {
"description" : "Success"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/info" : {
"get" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Status information",
"description" : "General status information about the active learning session.",
"operationId" : "info",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ActiveLearningInfo"
}
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/nextLinkCandidate" : {
"get" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Next link candidate",
"description" : "Retrieves the next link candidate.",
"operationId" : "nextLinkCandidate",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ReferenceLinkFormat"
}
}
}
},
"404" : {
"description" : "If there are no more link candidates or if the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/pathExampleValues" : {
"post" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Linking input path example values",
"description" : "Fetch example values for a specific schema path of a data source of a linking task.",
"operationId" : "exampleValues",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ActiveLearningExampleValuesResult"
}
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/referenceLinks" : {
"get" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Evaluate reference links",
"description" : "The current reference links, evaluated on the top performing linkage rule.",
"operationId" : "referenceLinks",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "includePositiveLinks",
"in" : "query",
"description" : "If true, positive reference links are included in the result",
"schema" : {
"type" : "boolean",
"default" : true
}
}, {
"name" : "includeNegativeLinks",
"in" : "query",
"description" : "If true, negative reference links are included in the result",
"schema" : {
"type" : "boolean",
"default" : true
}
}, {
"name" : "includeUnlabeledLinks",
"in" : "query",
"description" : "If true, unlabeled link candidates are included in the result",
"schema" : {
"type" : "boolean",
"default" : false
}
}, {
"name" : "offset",
"in" : "query",
"description" : "Result offset",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 0
}
}, {
"name" : "limit",
"in" : "query",
"description" : "Maximum number of results",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 100
}
}, {
"name" : "withComparisons",
"in" : "query",
"description" : "If set to true each link contains the evaluated comparisons",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ReferenceLinksFormat"
}
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/referenceLinks/add" : {
"post" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Add a new reference link",
"description" : "Adds a new reference link.",
"operationId" : "addReferenceLink",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "linkSource",
"in" : "query",
"description" : "The URI of the link source.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "linkTarget",
"in" : "query",
"description" : "The URI of the link target.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "decision",
"in" : "query",
"description" : "The new label of the link.",
"required" : true,
"schema" : {
"type" : "string",
"enum" : [ "positive", "negative", "unlabeled" ]
}
}, {
"name" : "synchronous",
"in" : "query",
"description" : "If true, the endpoint will block until a new iteration has been finished that considers the added reference link.",
"required" : true,
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"responses" : {
"204" : {
"description" : "Success"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/reset" : {
"post" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Reset active learning",
"description" : "Wipes the current active learning session.",
"operationId" : "reset",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"204" : {
"description" : "Success"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/api/learning/tasks/{project}/{task}/activeLearning/saveResult" : {
"post" : {
"tags" : [ "Linking - Active learning" ],
"summary" : "Save result",
"description" : "Saves the result of the current active learning session.",
"operationId" : "saveResult",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "saveRule",
"in" : "query",
"description" : "If true, the current linkage rule will be updated to the best learned rule.",
"required" : true,
"schema" : {
"type" : "boolean"
}
}, {
"name" : "saveReferenceLinks",
"in" : "query",
"description" : "If true, the current reference rules will be updated.",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"204" : {
"description" : "Success"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{linkingTaskId}/referenceLinksEvaluated" : {
"post" : {
"tags" : [ "Linking" ],
"summary" : "Evaluate linkage rule against reference links",
"description" : "Evaluates a linkage rule send with the requests on all reference links of the linking task.",
"operationId" : "referenceLinksEvaluateLinkageRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "linkingTaskId",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "linkLimit",
"in" : "query",
"description" : "The max. number of unique links that should be returned for each link categorty, i.e. psitive, negative.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 1000
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"positive" : [ {
"source" : "http://dbpedia.org/resource/The_River_%281938_film%29",
"target" : "http://data.linkedmdb.org/resource/film/208",
"confidence" : 1,
"ruleValues" : {
"operatorId" : "compareTitles",
"score" : 1,
"sourceValue" : {
"operatorId" : "movieTitle1",
"values" : [ "The River" ],
"error" : null
},
"targetValue" : {
"operatorId" : "movieTitle2",
"values" : [ "The River" ],
"error" : null
}
}
} ],
"negative" : [ ],
"evaluationScore" : {
"fMeasure" : "0.33",
"precision" : "0.88",
"recall" : "0.20",
"falseNegatives" : 88,
"falsePositives" : 3,
"trueNegatives" : 98,
"truePositives" : 22
}
}
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{linkingTaskName}/evaluate" : {
"post" : {
"tags" : [ "Linking" ],
"summary" : "Evaluate current linking rule",
"description" : "Evaluate a linking task based on its current linkage rule.",
"operationId" : "evaluateCurrentLinkageRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "linkingTaskName",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"filters" : [ "positiveLinks" ],
"limit" : 10,
"offset" : 0,
"query" : "multi word search query",
"sortBy" : [ "scoreAsc" ],
"includeReferenceLinks" : true
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : "\r\n{\r\n \"linkRule\": {\r\n \"operator\": {\r\n \"id\": \"equality\",\r\n \"type\": \"Comparison\",\r\n \"weight\": 1,\r\n \"threshold\": 0,\r\n \"indexing\": true,\r\n \"metric\": \"equality\",\r\n \"parameters\": {},\r\n \"sourceInput\": {\r\n \"type\": \"pathInput\",\r\n \"id\": \"sourcePathInput_2\",\r\n \"path\": \"foaf:name\"\r\n },\r\n \"targetInput\": {\r\n \"type\": \"pathInput\",\r\n \"id\": \"targetPathInput\",\r\n \"path\": \"rdfs:label\"\r\n }\r\n }\r\n },\r\n \"evaluationActivityStats\": {\r\n \"nrSourceEntities\": 195,\r\n \"nrTargetEntities\": 174,\r\n \"nrLinks\": 124\r\n },\r\n \"resultStats\": {\r\n \"overallLinkCount\": 100,\r\n \"filteredLinkCount\": 42\r\n },\r\n \"metaData\": {\r\n \"sourceInputLabel\": \"Dataset A\",\r\n \"targetInputLabel\": \"Transform task B\"\r\n },\r\n \"links\": [\r\n {\r\n \"source\": \"http://dbpedia.org/resource/The_Score_%28film%29\",\r\n \"target\": \"http://data.linkedmdb.org/resource/film/746\",\r\n \"confidence\": 1,\r\n \"ruleValues\": {\r\n \"operatorId\": \"equality\",\r\n \"score\": 1,\r\n \"sourceValue\": {\r\n \"operatorId\": \"sourcePathInput_2\",\r\n \"values\": [\r\n \"The Score\"\r\n ],\r\n \"error\": null\r\n },\r\n \"targetValue\": {\r\n \"operatorId\": \"targetPathInput\",\r\n \"values\": [\r\n \"The Score\"\r\n ],\r\n \"error\": null\r\n }\r\n },\r\n \"decision\": \"unlabeled\"\r\n }\r\n ...\r\n ]\r\n}\r\n "
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{linkingTaskName}/evaluateLinkageRule" : {
"post" : {
"tags" : [ "Linking" ],
"summary" : "Evaluate provided linking rule",
"description" : "Evaluate a linking task based on a linkage rule that is provided with the request. This endpoint can be used to test temporary, alternative linkage rules without having to persist them first.",
"operationId" : "evaluateLinkageRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "linkingTaskName",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "linkLimit",
"in" : "query",
"description" : "The max. number of unique links that should be returned from the evaluation.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 1000
}
}, {
"name" : "timeoutInMs",
"in" : "query",
"description" : "The max. time in milliseconds the matching stage of the linking execution is allowed to run. This timeout does not affect the loading stage.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 30000
}
}, {
"name" : "includeReferenceLinks",
"in" : "query",
"description" : "When true, this will return an evaluation of the reference links in addition to freshly matched links.",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"filter" : {
"limit" : null,
"unambiguous" : null
},
"linkType" : "http://www.w3.org/2002/07/owl#sameAs",
"operator" : {
"id" : "unnamed_3",
"indexing" : true,
"metric" : "equality",
"parameters" : { },
"required" : false,
"sourceInput" : {
"id" : "unnamed_1",
"path" : "group",
"type" : "pathInput"
},
"targetInput" : {
"id" : "unnamed_2",
"path" : "group",
"type" : "pathInput"
},
"threshold" : 0,
"type" : "Comparison",
"weight" : 1
}
}
},
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n "
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : [ {
"confidence" : 1,
"ruleValues" : {
"operatorId" : "unnamed_6",
"score" : 1,
"sourceValue" : {
"error" : null,
"operatorId" : "unnamed_4",
"values" : [ "group 1" ]
},
"targetValue" : {
"error" : null,
"operatorId" : "unnamed_5",
"values" : [ "group 1" ]
}
},
"source" : "urn:instance:simplecsv#1",
"target" : "urn:instance:simplecsv#1"
} ]
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{task}/completions/inputPaths" : {
"get" : {
"tags" : [ "Linking" ],
"summary" : "Linking task input paths completion",
"description" : "Given a search term, returns all possible completions for the source or target input paths.",
"operationId" : "linkingInputPaths",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "target",
"in" : "query",
"description" : "If defined and set to true auto-completions for the target input source are returned, else for the source input source.",
"required" : true,
"schema" : {
"type" : "boolean"
}
}, {
"name" : "term",
"in" : "query",
"description" : "The search term. Will also return non-exact matches (e.g., naMe == name) and matches from labels.",
"schema" : {
"type" : "string"
}
}, {
"name" : "maxResults",
"in" : "query",
"description" : "The maximum number of results.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 30
}
}, {
"name" : "langPref",
"in" : "query",
"description" : "The preferred language of meta data like labels.",
"schema" : {
"type" : "string",
"default" : "en"
}
} ],
"responses" : {
"200" : {
"description" : "Input paths that match the given term",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Completions"
},
"example" : [ {
"value" : "source:age (The value to be inserted into the textbox, if the user selects this suggestion)",
"label" : "age (Human-readable label. Never null, will be generated if not available)",
"description" : "May be null, if not available",
"category" : "Source Paths (Results should be grouped in categories)"
}, {
"value" : "source:name",
"label" : "name",
"description" : "Some description",
"category" : "Source Paths"
}, {
"value" : "foaf:",
"label" : "foaf:",
"description" : null,
"category" : "Prefixes"
} ]
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{task}/completions/partialSourcePaths" : {
"post" : {
"tags" : [ "Linking" ],
"summary" : "Linking rule partial source paths",
"description" : "Returns auto-completion suggestions based on a complex path expression (including backward paths and filters) and the cursor position. The results may only replace a part of the original input string.",
"operationId" : "partialSourcePath",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "target",
"in" : "query",
"description" : "If defined and set to true, auto-completions for the target input source are returned, else for the source input source.",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/PartialSourcePathAutoCompletionRequest"
},
"example" : {
"inputString" : "pathPart1/pathPart2[valueA < 5]/valueB",
"cursorPosition" : 33,
"maxSuggestions" : 50
}
}
}
},
"responses" : {
"200" : {
"description" : "\r\nThe response contains the original parameters of the request for the client to check to which request it\r\nbelongs if it fired multiple requests.\r\nThere can be multiple (or none) suggestion result sections under `replacementResults` that differ in what part\r\nof the original string gets replaced.\r\nThe `replacementInterval` specifies the sub-string\r\nof the input path string that can be replaced by the proposed partial path suggestions. It is defined\r\nby the start index and length of the substring that should be replaced.\r\nThe `extractedQuery` property is the query that was extracted from the original input to seed the auto-completion\r\nrequest. This can be empty if the result is not filtered.\r\nThe `replacements` contain the suggestions that should be displayed to the user that the specified\r\nsubstring can be replaced with. The `value` is the actual value of the suggestion and the optional `label`\r\nand `description` values can be used for a more human-readable version of the value.\r\n ",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AutoSuggestAutoCompletionResponse"
},
"example" : {
"inputString" : "pathPart1/pathPart2[valueA < 5]/valueB",
"cursorPosition" : 33,
"replacementResults" : [ {
"replacementInterval" : {
"from" : 32,
"length" : 6
},
"extractedQuery" : "valueB",
"replacements" : [ {
"value" : "valueX",
"label" : "Value X",
"description" : "Description of value X"
}, {
"value" : "valueY",
"label" : "Value Y",
"description" : "Description of value Y"
} ]
}, {
"extractedQuery" : "",
"replacementInterval" : {
"from" : 33,
"length" : 0
},
"replacements" : [ {
"description" : "Starts a forward path segment",
"value" : "/"
}, {
"description" : "Starts a backward path segment",
"value" : "\\"
}, {
"description" : "Starts a property filter expression",
"value" : "["
} ]
} ]
}
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/linking/tasks/{project}/{task}/postLinkDatasource" : {
"post" : {
"tags" : [ "Linking" ],
"summary" : "Linking task execution with payload",
"description" : "Execute a specific linking rule against input data from the POST body.",
"operationId" : "postLinkDatasource",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/xml" : {
"schema" : {
"type" : "string"
},
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n <https://www.example.com/resource/123456> <http://xmlns.com/foaf/0.1/name> \"John Doe\" .\r\n \r\n \r\n <https://www.example2.com/resource/abcdef> <http://xmlns.com/foaf/0.1/name> \"Doe, John\"\r\n \r\n \r\n "
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/n-triples" : {
"schema" : {
"type" : "string"
},
"example" : " ."
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{task}/referenceEntitiesCache/path" : {
"post" : {
"tags" : [ "Linking" ],
"summary" : "Add path to the reference entities cache",
"description" : "Adds a path to the reference entities cache.",
"operationId" : "addPathToReferenceEntitiesCache",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"204" : {
"description" : "Success"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{task}/referenceLink" : {
"put" : {
"tags" : [ "Linking" ],
"summary" : "Add reference link",
"description" : "Add a reference link to a specific linking task.",
"operationId" : "putReferenceLink",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "linkType",
"in" : "query",
"description" : "The link type, either \"negative\" or \"positive\".",
"required" : true,
"schema" : {
"type" : "string",
"enum" : [ "positive", "negative" ]
}
}, {
"name" : "source",
"in" : "query",
"description" : "The source entity URI.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "target",
"in" : "query",
"description" : "The target entity URI.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the reference link has been added successfully"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
},
"delete" : {
"tags" : [ "Linking" ],
"summary" : "Remove reference link",
"description" : "Remove a reference link from specific linking task.",
"operationId" : "deleteReferenceLink",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "source",
"in" : "query",
"description" : "The source entity URI.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "target",
"in" : "query",
"description" : "The target entity URI.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the reference link has been removed successfully"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{task}/referenceLinks" : {
"get" : {
"tags" : [ "Linking" ],
"summary" : "Retrieve reference links",
"description" : "Retrieve all reference links of a specified linking task.",
"operationId" : "getReferenceLinks",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n = \r\n 0.605 \r\n | \r\n \r\n \r\n \r\n "
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
},
"put" : {
"tags" : [ "Linking" ],
"summary" : "Update reference links",
"description" : "Update all reference links of a specified linking task.",
"operationId" : "putReferenceLinks",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "generateNegative",
"in" : "query",
"description" : "If true, negative reference links will be generated by interchanging the source and targets of the provided positive links. This will only produce correct results if the provided positive reference links are complete and model 1:1 relations.",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"requestBody" : {
"content" : {
"application/xml" : {
"schema" : {
"type" : "string"
},
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n = \r\n 0.605 \r\n | \r\n \r\n \r\n \r\n "
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the reference links have been updated successfully"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
},
"delete" : {
"tags" : [ "Linking" ],
"summary" : "Delete reference links",
"description" : "Removes reference links from a specified linking task.",
"operationId" : "deleteReferenceLinks",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "positive",
"in" : "query",
"description" : "If true, positive reference links will be deleted.",
"required" : true,
"schema" : {
"type" : "boolean"
}
}, {
"name" : "negative",
"in" : "query",
"description" : "If true, negative reference links will be deleted.",
"required" : true,
"schema" : {
"type" : "boolean"
}
}, {
"name" : "unlabeled",
"in" : "query",
"description" : "If true, unlabeled reference links will be deleted.",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "If the reference links have been deleted successfully"
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/linking/tasks/{project}/{task}/referenceLinksEvaluated" : {
"get" : {
"tags" : [ "Linking" ],
"summary" : "Evaluate on reference links",
"description" : "Evaluates the current linking rule on all reference links.",
"operationId" : "referenceLinksEvaluated",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "withEntitiesAndSchema",
"in" : "query",
"description" : "When set to true each link contains the entities and the schema",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"positive" : [ {
"source" : "http://dbpedia.org/resource/The_River_%281938_film%29",
"target" : "http://data.linkedmdb.org/resource/film/208",
"confidence" : 1,
"ruleValues" : {
"operatorId" : "compareTitles",
"score" : 1,
"sourceValue" : {
"operatorId" : "movieTitle1",
"values" : [ "The River" ],
"error" : null
},
"targetValue" : {
"operatorId" : "movieTitle2",
"values" : [ "The River" ],
"error" : null
}
}
} ],
"negative" : [ ],
"evaluationScore" : {
"fMeasure" : "0.33",
"precision" : "0.88",
"recall" : "0.20",
"falseNegatives" : 88,
"falsePositives" : 3,
"trueNegatives" : 98,
"truePositives" : 22
}
}
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/logout" : {
"get" : {
"tags" : [ "Workbench" ],
"summary" : "Logout",
"description" : "Log outs the user and redirects them to the configured logout page.",
"operationId" : "logout",
"responses" : {
"303" : {
"description" : "Redirects to the configured logout page."
}
}
}
},
"/ontologyMatching/generateMatchingLinkRule" : {
"post" : {
"tags" : [ "Ontology Matching" ],
"summary" : "Generate ontology matching link rule",
"description" : "Generates an ontology matching linking rule in the specified project with the specified linking task ID.\r\nThe inputs for the matching linking task are extracted from the specified transform task, i.e. the data source schema and the target vocabulary ontology.\r\n",
"operationId" : "generateOntologyMatchingLinkRule",
"requestBody" : {
"description" : "The request specifies the transform task from which the inputs to the matching linking task should be extracted\r\nvia the 'transformProjectId' and 'transformTaskId' properties.\r\nThe matching project and linking task are specified via the 'matchingLinkSpecProjectId' and 'matchingLinkSpecId' properties.\r\nThe matching project ID must not exist, else a 400 status will be returned.\r\nAn ontology will be extracted from the data source. If it is a non-RDF data source, class and property URIs will be generated.\r\nThe optional 'uriPrefix' property specifies the prefix of these generated URIs, else a default prefix will be used.\r\n",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MatchTargetClassToSourceDatasetRequest"
},
"example" : {
"transformProjectId" : "projectA",
"transformTaskId" : "transformA",
"matchingLinkSpecProjectId" : "projectB",
"matchingLinkSpecId" : "linkingB",
"uriPrefix" : "urn:custom:"
}
}
},
"required" : true
},
"responses" : {
"201" : {
"description" : "The matching project and linking task have been successfully created."
},
"404" : {
"description" : "Not found. The project ID or the transform task ID in the request did not exist."
},
"400" : {
"description" : "The target project ID already exists."
}
}
}
},
"/ontologyMatching/matchVocabularyClassDataset" : {
"post" : {
"tags" : [ "Ontology Matching" ],
"summary" : "Match Dataset to Vocabulary Class",
"description" : "Matches properties of classes from a target vocabulary of a transformation task to one or more property candidates\r\nfrom the source dataset schema. Thus this is a target vocabulary focused matching operation against the source dataset and\r\nwould for example be used if the caller wants to restrict the part of the vocabulary that should be matched and\r\nprovide several candidates for each target property. For the given class URIs, only these target properties are\r\nconsidered in the matching process that have one of the classes or one of its parent classes defined as domain.",
"operationId" : "matchTargetClassToSourceDataset",
"requestBody" : {
"description" : "The request payload contains the project name both the dataset and transformation task are located in.\r\nFurthermore there must be defined the target classes from one of the target vocabularies specified in the\r\ntransformation task. The number of candidates are the maximum number of property suggestions\r\nfrom the dataset made per vocabulary property. The dataTypePropertiesOnly parameter is optional and\r\ndefaults to true. It means that only properties that have no range of any of the classes from the vocabulary\r\nare returned. Note that this is not the same as being an owl:DatatypeProperty. The `uriPrefix` parameter\r\nis optional and is used during the schema extraction of the dataset to be matched. This is usually not important\r\nsince the source path is returned and not a source property URI. However, this may be important if additional\r\nschema data is attached to the extracted schema data. The `ruleId` parameter is optional and defaults\r\nto the root rule. This should be set if the matching should be run in the context of a nested mapping rule\r\nand thus a possibly changed source path/type. The `matchFromDataset` parameter specifies the source of the matching\r\ntask, i.e. for each source 0 to `nrCandidates` matches should be found. If set to `true` then the\r\ndataset is the source, else the vocabulary. The candidates returned in the response are always structured\r\nthat the source entity is the key and target entities are represented by an array of candidates.\r\nand thus a possibly changed source path/type. The 'schemaExtractionTimeLimit' specifies the maximum\r\namount of time in milli seconds to spend on the schema extraction. The 'schemaEntityLimit' ist the max.\r\nnumber of schema elements that will be extracted from the dataset for the matching.\r\nIf `addMetaData` is enabled, optional label and description from vocabulary elements are added to the result.\r\nThe optional `targetVocabularies` parameter allows to only match against specific vocabularies.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MatchTargetClassToSourceDatasetRequest"
},
"example" : {
"projectName" : "$project",
"transformTaskName" : "$sourceTransform",
"targetClassUris" : [ "https://vocab.eccenca.com/testTarget/SubLoan" ],
"dataTypePropertiesOnly" : true,
"nrCandidates" : 3,
"uriPrefix" : "http://eccenca.com/dataset1/prop/",
"ruleId" : "root",
"schemaExtractionTimeLimit" : 10000,
"schemaEntityLimit" : 100000,
"matchFromDataset" : true,
"addMetaData" : false,
"targetVocabularies" : [ "urn:someVocabA", "urn:someVocabB" ]
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "The matching has finished without errors. Per target property there are 1 to n Candidates candidates\r\nsorted by decreasing confidence. The 'type' property is a suggestion if this should become a\r\nvalue/data type mapping rule or an object rule. It can have values 'object' and 'value'.\r\nThese values are also used in the rule generator endpoint.\r\n'uri' is the source path of the data source and is only historically called URI. It's possible\r\nvalues are specified by the Silk path language.\r\nThe optional 'graph' property is added to vocabulary properties when `addMetaData = true`. It specifies from\r\nwhich graph the resource has been read, e.g. the actual vocabulary graph not the namespace.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MatchTargetClassToSourceDatasetResponse"
},
"example" : {
"matches" : [ {
"uri" : "birthdate",
"candidates" : [ {
"confidence" : 0.6398742703188145,
"description" : "The birthday of this Agent, represented in mm-dd string form, eg. '12-31'.",
"label" : "birthday",
"type" : "value",
"uri" : {
"uri" : "http://xmlns.com/foaf/0.1/birthday"
},
"graph" : "http://xmlns.com/foaf/0.1/"
} ]
}, {
"uri" : "name",
"candidates" : [ {
"confidence" : 0.31818181818181823,
"description" : "The surname of some person.",
"label" : "Surname",
"type" : "value",
"uri" : {
"uri" : "http://xmlns.com/foaf/0.1/surname"
}
}, {
"confidence" : 0.2499999999999999,
"description" : "A short informal nickname characterising an agent (includes login identifiers, IRC and other chat nicknames).",
"label" : "nickname",
"type" : "value",
"uri" : {
"uri" : "http://xmlns.com/foaf/0.1/nick"
}
}, {
"confidence" : 0.16666666666666663,
"description" : "The last name of a person.",
"label" : "lastName",
"type" : "value",
"uri" : {
"uri" : "http://xmlns.com/foaf/0.1/lastName"
}
} ]
} ]
}
}
}
},
"404" : {
"description" : "Not found."
}
}
}
},
"/ontologyMatching/replaceOntologyMatchingLinkSpec" : {
"post" : {
"tags" : [ "Ontology Matching" ],
"summary" : "Set the mapping suggestion linking task",
"description" : "Copies the given linking task to the configured matching linking task that will then be used for mapping suggestions.",
"operationId" : "replaceOntologyMatchingLinkSpec",
"requestBody" : {
"description" : "Project and linking task ID of the task that will be copied to the task specified by the matching.external.projectId and matching.external.linkSpecId config parameters.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ReplaceOntologyMatchingLinkSpecRequest"
},
"example" : {
"projectId" : "project-with-linkspec",
"linkingTaskId" : "matching-linking-task"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Linking task has been copied successfully to the configured matching linking task."
},
"404" : {
"description" : "Not found."
}
}
}
},
"/ontologyMatching/rulesGenerator/{projectName}/{transformTaskId}/rule/{parentRuleId}" : {
"post" : {
"tags" : [ "Ontology Matching" ],
"summary" : "Rule Generator",
"description" : "Given correspondences, e.g. from the matching endpoint, it generates transformation rules based on\r\non-the-fly generated schema and profiling information in the context of the parent rule. The rules\r\nare not added to the parent rule with this call by default, instead it returns the serialization of the rules.\r\nThese serialized rules can then be added via subsequent REST calls for appending or replacing a rule.",
"operationId" : "generateRuleBasedOnProfiling",
"parameters" : [ {
"name" : "projectName",
"in" : "path",
"description" : "The project identifier.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "transformTaskId",
"in" : "path",
"description" : "The transforn task identifier.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "parentRuleId",
"in" : "path",
"description" : "The parent rule id.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The samepleLimit parameter defines how many entities should be considered during the schema extraction\r\nand profiling. The sourcePath conforms to the Silk path language and thus compatible to the\r\ncorrepondences returned by the ontology matching endpoint. The target property is a URI. The optional uriPrefix\r\nparameter specifies the base URI that should be used to generate a URI if no target property has been\r\nspecified for the correspondence. The optional 'type' property defines if the generated rule should\r\nbe an object mapping rule or a value rule, i.e. direct or complex mapping rule. Possible values are\r\n'value' or 'object'. If 'addRules' is set to true, all generated rules are added to the parent rule.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/GenerateRuleBasedOnProfilingRequest"
},
"example" : {
"correspondences" : [ {
"sourcePath" : "Key",
"targetProperty" : "http://someNamespace.com/prop/key",
"type" : "value"
}, {
"sourcePath" : "Value",
"type" : "value"
} ],
"uriPrefix" : "http://www.eccenca.com/inst/xy/",
"sampleLimit" : 50,
"addRules" : false
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "The matching has finished without errors.",
"content" : {
"application/json" : {
"example" : [ {
"id" : "Key",
"mappingTarget" : {
"isBackwardProperty" : false,
"uri" : "",
"valueType" : {
"nodeType" : "IntegerValueType"
}
},
"metadata" : {
"description" : "",
"label" : ""
},
"operator" : {
"function" : "IntegerParser",
"id" : "normalize",
"inputs" : [ {
"id" : "Key",
"path" : "/Key",
"type" : "pathInput"
} ],
"parameters" : { },
"type" : "transformInput"
},
"sourcePaths" : [ "Key" ],
"type" : "complex"
}, {
"id" : "Value",
"mappingTarget" : {
"isBackwardProperty" : false,
"uri" : "",
"valueType" : {
"nodeType" : "AutoDetectValueType"
}
},
"metadata" : {
"description" : "",
"label" : ""
},
"sourcePath" : "/Value",
"type" : "direct"
} ]
}
}
},
"404" : {
"description" : "Not found."
},
"400" : {
"description" : "This happens when the parent rule cannot have children attached to it."
}
}
}
},
"/api/openapi/openapi.json" : {
"get" : {
"tags" : [ "OpenAPI" ],
"summary" : "Generate OpenAPI JSON",
"description" : "Generate OpenAPI specification as JSON",
"operationId" : "openApiJson",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { }
}
}
}
}
},
"/api/openapi/openapi.yml" : {
"get" : {
"tags" : [ "OpenAPI" ],
"summary" : "Generate OpenAPI YAML",
"description" : "Generate OpenAPI specification as YAML",
"operationId" : "openApiYaml",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"text/vnd.yaml" : { }
}
}
}
}
},
"/api/openapi/validate" : {
"get" : {
"tags" : [ "OpenAPI" ],
"summary" : "Validate OpenAPI",
"description" : "Validate OpenAPI specification",
"operationId" : "validate",
"parameters" : [ {
"name" : "url",
"in" : "query",
"description" : "The URL of the OpenAPI specification. Leave empty for validating the current OpenAPI spec.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ValidationResult"
}
}
}
}
}
}
},
"/api/profiling/profileType/{project}/{datasetTask}" : {
"post" : {
"tags" : [ "Dataset profiling" ],
"summary" : "Profile dataset type",
"description" : "Run data type detection and value profiling on a specific type of a dataset.Run data type detection and value profiling on a specific type of a dataset.",
"operationId" : "profileDatasetType",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "datasetTask",
"in" : "path",
"description" : "The dataset name.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The parameters are similar as in the call to the profiling activity. The optional dataset URI and URI prefix parameters should\r\n be the same as in the activity request, if set. The dataset URI specifies the dataset resource for the\r\n RDF serialization and the URI prefix is used for constructing RDF resources for the dataset schema\r\n classes and paths. If not set, proper values are generated.\r\n The source type specifies the type in Silk path syntax. The\r\n entity sample limit object must be defined, but the specific limits are optional. The default values\r\n are 200 and unlimited for profiling, but unless the profiling should run over the whole dataset it should\r\n be limited.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ProfileDataSetTypeRequest"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Profiling result.",
"content" : {
"application/json" : {
"example" : {
"idx" : 1,
"paths" : [ {
"dataTypeDiscoveryResult" : {
"confidence" : 1,
"parserPlugin" : {
"pluginId" : "IntegerParser",
"pluginParameters" : {
"commaAsDecimalPoint" : "false",
"thousandSeparator" : "false"
}
},
"schemaDatatype" : "IntegerDataType$"
},
"idx" : 0,
"path" : "id",
"profilingInfo" : {
"datatypeProfile" : {
"count" : 2,
"distribution" : [ 1, 1 ],
"max" : 1,
"mean" : 1,
"min" : 0,
"profileClassId" : "Long profile",
"samples" : [ 1, 1 ],
"uniqueCount" : 2
},
"entitiesSampled" : 2,
"entitySampleLimit" : 10000,
"profilingInfoUri" : "http://example.namespace.prefix/7khKJlIzIjLg/id/profilingInfo"
},
"uri" : "http://example.namespace.prefix/7khKJlIzIjLg/id"
}, {
"dataTypeDiscoveryResult" : {
"confidence" : 1,
"parserPlugin" : {
"pluginId" : "StringParser",
"pluginParameters" : { }
},
"schemaDatatype" : "StringDataType$"
},
"idx" : 1,
"path" : "name",
"profilingInfo" : {
"datatypeProfile" : {
"count" : 2,
"distribution" : [ 1, 1 ],
"max" : "Max",
"maxStrLength" : 4,
"meanStrLength" : 4,
"min" : "John",
"minStringLength" : 3,
"profileClassId" : "String profile",
"regexPatterns" : {
"^\\p{L}+$" : {
"count" : 2,
"regex" : "^\\p{L}{3,4}$"
}
},
"regexThreshold" : 10,
"samples" : [ "Max", "Max" ],
"uniqueCount" : 2
},
"entitiesSampled" : 2,
"entitySampleLimit" : 10000,
"profilingInfoUri" : "http://example.namespace.prefix/7khKJlIzIjLg/name/profilingInfo"
},
"uri" : "http://example.namespace.prefix/7khKJlIzIjLg/name"
} ],
"sourceType" : "persons",
"uri" : "http://example.namespace.prefix/EjNJqMl0Q7Mx/persons"
}
}
}
},
"404" : {
"description" : "Not found."
}
}
}
},
"/api/profiling/schemaClass/{projectId}/{datasetTask}" : {
"get" : {
"tags" : [ "Dataset profiling" ],
"summary" : "Schema classs info",
"description" : "The item types that a user can restrict the search to. The selected type will also influence the available facets.",
"operationId" : "schemaClassInfo",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "ID of the Project.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "datasetTask",
"in" : "path",
"description" : "The dataset identifier.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "typePath",
"in" : "query",
"description" : "The source type path the schema class information is requested for, in normalized form.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"uri" : "GbiDBWwHBn4k/test.csv",
"sourceType" : "test.csv",
"paths" : [ {
"uri" : "syttS1u3AtBe/id",
"path" : "id",
"idx" : 0,
"dataTypeDiscoveryResult" : {
"schemaDatatype" : "IntegerDataType$",
"confidence" : 1,
"parserPlugin" : {
"pluginId" : "IntegerParser",
"pluginParameters" : {
"commaAsDecimalPoint" : "false",
"thousandSeparator" : "false"
}
}
},
"profilingInfo" : {
"profilingInfoUri" : "syttS1u3AtBe/id/profilingInfo",
"entitiesSampled" : 3,
"entitySampleLimit" : 6,
"datatypeProfile" : {
"min" : 1,
"max" : 3,
"mean" : 2,
"count" : 3,
"uniqueCount" : 3,
"samples" : [ 2, 1, 3 ],
"distribution" : [ 1, 1, 1 ],
"profileClassId" : "Long profile"
}
}
}, {
"uri" : "syttS1u3AtBe/val",
"path" : "val",
"idx" : 1,
"dataTypeDiscoveryResult" : {
"schemaDatatype" : "StringDataType$",
"confidence" : 1,
"parserPlugin" : {
"pluginId" : "StringParser",
"pluginParameters" : { }
}
},
"profilingInfo" : {
"profilingInfoUri" : "syttS1u3AtBe/val/profilingInfo",
"entitiesSampled" : 3,
"entitySampleLimit" : 6,
"datatypeProfile" : {
"min" : "xxx",
"max" : "yyy",
"count" : 3,
"uniqueCount" : 2,
"minStringLength" : 3,
"maxStrLength" : 3,
"meanStrLength" : 3,
"samples" : [ "xxx", "yyy" ],
"distribution" : [ 2, 1 ],
"regexPatterns" : {
"^\\p{L}+$" : {
"count" : 3,
"regex" : "^\\p{L}{3}$"
}
},
"regexThreshold" : 10,
"profileClassId" : "String profile"
}
}
} ],
"idx" : 0,
"modified" : 1625426674770
}
}
}
},
"404" : {
"description" : "Not found."
}
}
}
},
"/api/profiling/schemaClass/{projectId}/{datasetTask}/exampleValues" : {
"get" : {
"tags" : [ "Dataset profiling" ],
"summary" : "Schema path example values",
"description" : "Returns example values for each source path of a specific source class.",
"operationId" : "schemaPathExampleValues",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "ID of the Project.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "datasetTask",
"in" : "path",
"description" : "The dataset identifier.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "typePath",
"in" : "query",
"description" : "The source type path the schema class information is requested for, in normalized form.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"id" : [ 1, 0 ],
"name" : [ "Max", "John" ],
"phoneNumbers" : [ "urn:instance:r271dcda6-bfd2-4be0-96fa-4fac0f9f3f9b#-1145177022", "urn:instance:r271dcda6-bfd2-4be0-96fa-4fac0f9f3f9b#-97873630", "urn:instance:r271dcda6-bfd2-4be0-96fa-4fac0f9f3f9b#-103599268" ]
}
}
}
}
}
}
},
"/api/profiling/schemaClass/{projectId}/{transformTask}/ruleExampleValues" : {
"get" : {
"tags" : [ "Dataset profiling" ],
"summary" : "Schema path rule example values",
"description" : "Returns example values for each source path of a specific transform rule.",
"operationId" : "ruleExampleValues",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "ID of the Project.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "transformTask",
"in" : "path",
"description" : "ID of the transform rule.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "ruleIdOpt",
"in" : "query",
"description" : "The ID of the transform rule that example values should be fetched for. This makes it unnecessary for\r\n the UI to know the full type path itself. It just needs to know the rule ID it currently operates on.\r\n If no rule ID is provided it will default to the base type.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"id" : [ 1, 0 ],
"name" : [ "Max", "John" ],
"phoneNumbers" : [ "urn:instance:r271dcda6-bfd2-4be0-96fa-4fac0f9f3f9b#-1145177022", "urn:instance:r271dcda6-bfd2-4be0-96fa-4fac0f9f3f9b#-97873630", "urn:instance:r271dcda6-bfd2-4be0-96fa-4fac0f9f3f9b#-103599268" ]
}
}
}
}
}
}
},
"/api/profiling/validateForeignKey" : {
"post" : {
"tags" : [ "Dataset profiling" ],
"summary" : "Validate foreign key",
"description" : "Validates if all foreign keys in a given column correspond to primary keys in another table. The path properties are in Silk path syntax.",
"operationId" : "validateForeignKey",
"requestBody" : {
"description" : "Validates if all foreign keys in a given column correspond to primary keys in another table. The path properties are in Silk path syntax.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ValidateForeignKeyRequest"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "The validation completed.",
"content" : {
"application/json" : {
"example" : {
"isValid" : false,
"message" : "Validation found 1 values that are not unique. Examples: DuplicatedValue",
"duplicateKeyCount" : 1,
"duplicateKeyExamples" : [ "DuplicatedValue" ]
}
}
}
},
"400" : {
"description" : "Invalid user input."
},
"500" : {
"description" : "An internal issue prevented the validation from completing."
}
}
}
},
"/api/profiling/validatePrimaryKey" : {
"post" : {
"tags" : [ "Dataset profiling" ],
"summary" : "Validate primary key",
"description" : "Validates if all values in a primary key column are unique. The path properties are in Silk path syntax.",
"operationId" : "validatePrimaryKey",
"requestBody" : {
"description" : "Validates if all values in a primary key column are unique. The path properties are in Silk path syntax.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ValidatePrimaryKeyRequest"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : " The validation completed.",
"content" : {
"application/json" : {
"example" : {
"isValid" : false,
"message" : "Validation found 1 values that are not unique. Examples: DuplicatedValue",
"duplicateKeyCount" : 1,
"duplicateKeyExamples" : [ "DuplicatedValue" ]
}
}
}
},
"400" : {
"description" : "Invalid user input."
},
"500" : {
"description" : "An internal issue prevented the validation from completing."
}
}
}
},
"/api/python/installPackage" : {
"post" : {
"tags" : [ "Python" ],
"summary" : "Install Python package",
"description" : "Installs a Python package, which is attached to the request. Note that /updatePlugins needs to be called afterwards to load the new plugins.",
"operationId" : "installPackage",
"requestBody" : {
"content" : {
"multipart/form-data" : {
"schema" : {
"$ref" : "#/components/schemas/ResourceMultiPartRequest"
}
}
}
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CommandResponse"
}
}
}
},
"400" : {
"description" : "If the package could not be installed"
}
}
}
},
"/api/python/installPackageByName" : {
"post" : {
"tags" : [ "Python" ],
"summary" : "Install Python package by name",
"description" : "Installs a Python package by name. Note that /updatePlugins needs to be called afterwards to load the new plugins.",
"operationId" : "installPackageByName",
"parameters" : [ {
"name" : "name",
"in" : "query",
"description" : "The name of the package to be installed.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CommandResponse"
}
}
}
},
"400" : {
"description" : "If the package could not be installed"
}
}
}
},
"/api/python/listPackages" : {
"get" : {
"tags" : [ "Python" ],
"summary" : "List Python packages",
"description" : "Lists all installed Python packages",
"operationId" : "listPackages",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/PythonPackage"
}
}
}
}
}
}
}
},
"/api/python/listPlugins" : {
"get" : {
"tags" : [ "Python" ],
"summary" : "List Python plugins",
"description" : "Lists all installed Python plugins",
"operationId" : "listPlugins",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/PythonPluginDiscoveryResult"
}
}
}
}
}
}
},
"/api/python/uninstallPackage" : {
"post" : {
"tags" : [ "Python" ],
"summary" : "Uninstall Python package",
"description" : "Uninstalls a Python package. Note that /updatePlugins needs to be called afterwards to unload the plugins.",
"operationId" : "uninstallPackage",
"parameters" : [ {
"name" : "name",
"in" : "query",
"description" : "The name of the package to be removed.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CommandResponse"
}
}
}
},
"400" : {
"description" : "If the package could not be uninstalled."
}
}
}
},
"/api/python/updatePlugins" : {
"get" : {
"tags" : [ "Python" ],
"summary" : "Update Python plugins",
"description" : "Reloads all Python plugins from the installed packages",
"operationId" : "updatePlugins",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/PythonPluginDiscoveryResult"
}
}
}
}
}
}
},
"/api/python/version" : {
"post" : {
"tags" : [ "Python" ],
"summary" : "Get Python version",
"description" : "Retrieve Python version",
"operationId" : "version_1",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/PythonVersion"
}
}
}
}
}
}
}
},
"/resources/preview" : {
"post" : {
"tags" : [ "Dataset preview" ],
"summary" : "Resource preview",
"description" : "Gets a content preview of a given resource. It serves 2 purposes.\r\nThe first is kind of a file browser backend. For a given project and resource the service searches in the defined resource\r\nrepository and tries to determine the type or content type of a resource to create a preview out of the first 1000 bytes\r\n(text ,xml, ...) or the first 100 records (orc, avro, csv, databases, ...).\r\nThe second purpose is the to provide content preview for already known resources (i.e. all registered data sets and not only files).\r\nIn this case the datasetInfo must be set in the preview request and is used to instantiate a Dataset subclass that is used\r\ndirectly to generate a preview.",
"operationId" : "getPreview",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"resource" : "resource name",
"project" : "project name",
"datasetInfo" : {
"id" : "task-identifier",
"type" : "csv",
"parameters" : {
"arraySeparator" : "",
"separator" : ",",
"prefix" : "",
"uri" : "",
"ignoreBadLines" : "false",
"quote" : "\"",
"properties" : "URI,date,state,unemployRate,volume",
"regexFilter" : "",
"charset" : "UTF-8",
"file" : "test.csv",
"linesToSkip" : "1",
"maxCharsPerColumn" : "4096"
}
}
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Content preview of a given resource.",
"content" : {
"application/json" : { }
}
}
}
}
},
"/scripts/projects/{project}/tasks/{task}/completions" : {
"post" : {
"tags" : [ "Scripts" ],
"summary" : "Script task auto-completion",
"description" : "Returns auto completions for a script.\r\nThe completions are based on the most recent script execution, i.e.,\r\nthe script needs to be executed in the workflow prior to requesting the completions.\r\n ",
"operationId" : "completions",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CompletionRequest"
},
"example" : {
"line" : "inputs.",
"column" : 7
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "The completions returned by the compiler.",
"content" : {
"application/json" : {
"example" : {
"candidates" : [ "apply", "applyOrElse", "head", "headOption" ],
"cursor" : 7
}
}
}
}
}
}
},
"/transform/tasks/{project}/{task}" : {
"get" : {
"tags" : [ "Transform" ],
"summary" : "Retrieve Transform Task",
"operationId" : "getTransformTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { },
"application/xml" : { }
}
}
}
},
"put" : {
"tags" : [ "Transform" ],
"summary" : "Update or create a transform task",
"operationId" : "putTransformTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "createOnly",
"in" : "query",
"description" : "Always create new transform",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"responses" : {
"default" : {
"description" : "default response",
"content" : {
"*/*" : {
"schema" : {
"$ref" : "#/components/schemas/ActionAnyContent"
}
}
}
}
}
},
"delete" : {
"tags" : [ "Transform" ],
"summary" : "Delete a transform task",
"operationId" : "deleteTransformTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "removeDependentTasks",
"in" : "query",
"description" : "If true, transform and linking tasks that directly reference this task are removed as well.",
"required" : true,
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"responses" : {
"default" : {
"description" : "default response",
"content" : {
"*/*" : {
"schema" : {
"$ref" : "#/components/schemas/ActionAnyContent"
}
}
}
}
}
}
},
"/transform/tasks/{project}/{task}/peak/{rule}" : {
"post" : {
"tags" : [ "Transform" ],
"summary" : "Mapping Rule Transformation Examples",
"description" : "Get transformation examples for the selected transformation rule. The input task of the transformation task has to be a Dataset task. Also the Dataset task must support this feature.",
"operationId" : "peak",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "limit",
"in" : "query",
"description" : "The maximum number of transformed example entities.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 3
}
}, {
"name" : "maxTryEntities",
"in" : "query",
"description" : "The maximum number of example entities to try to transform before giving up.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 553
}
} ],
"responses" : {
"200" : {
"description" : "The result JSON consists of the actual values, i.e. all source values and all transformed values for each\r\n example entity, the source paths of the mapping and a status object. There are as many string arrays in the\r\n sourceValues array as there are input paths. Besides 'success' there are 2 other status ids, first\r\n there is 'empty' and second 'empty with exceptions'. In both cases the status message gives more details.\r\n ",
"content" : {
"application/json" : {
"example" : {
"results" : [ {
"sourceValues" : [ [ "Olaf", "Ralf" ], [ "Müller", "Schmidt" ] ],
"transformedValues" : [ " Olaf M%C3%BCller", " Olaf Schmidt", " Ralf M%C3%BCller", " Ralf Schmidt" ]
} ],
"sourcePaths" : [ [ "/" ], [ "/" ] ],
"status" : {
"id" : "success",
"msg" : ""
}
}
}
}
}
}
}
},
"/transform/tasks/{project}/{task}/peak/{rule}/childRule" : {
"post" : {
"tags" : [ "Transform" ],
"summary" : "Mapping Rule from Request Transformation Examples",
"description" : "Get transformation examples for the transformation rule that is attached in the body of this request. The input task of the transformation task has to be a Dataset task. Also the Dataset task must support this feature.",
"operationId" : "peakChildRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "limit",
"in" : "query",
"description" : "The maximum number of transformed example entities.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 3
}
}, {
"name" : "maxTryEntities",
"in" : "query",
"description" : "The maximum number of example entities to try to transform before giving up.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 553
}
}, {
"name" : "objectPath",
"in" : "query",
"description" : "An additional object path this auto-completion should be the context of.",
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The rule to be used for retrieving example values.",
"content" : {
"application/json" : { },
"application/xml" : { }
},
"required" : true
},
"responses" : {
"200" : {
"description" : "The result JSON consists of the actual values, i.e. all source values and all transformed values for each\r\n example entity, the source paths of the mapping and a status object. There are as many string arrays in the\r\n sourceValues array as there are input paths. Besides 'success' there are 2 other status ids, first\r\n there is 'empty' and second 'empty with exceptions'. In both cases the status message gives more details.\r\n ",
"content" : {
"application/json" : {
"example" : {
"results" : [ {
"sourceValues" : [ [ "Olaf", "Ralf" ], [ "Müller", "Schmidt" ] ],
"transformedValues" : [ " Olaf M%C3%BCller", " Olaf Schmidt", " Ralf M%C3%BCller", " Ralf Schmidt" ]
} ],
"sourcePaths" : [ [ "/" ], [ "/" ] ],
"status" : {
"id" : "success",
"msg" : ""
}
}
}
}
}
}
}
},
"/transform/tasks/{project}/{task}/rules" : {
"get" : {
"tags" : [ "Transform" ],
"summary" : "Retrieve all mapping rules",
"description" : "Get all mapping rules of the transformation task. If no accept header is defined, XML is returned.",
"operationId" : "getRules",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"type" : "root",
"id" : "root",
"rules" : {
"uriRule" : {
"type" : "uri",
"id" : "uri",
"pattern" : "http://example.org/{PersonID}"
},
"typeRules" : [ {
"type" : "type",
"id" : "explicitlyDefinedId",
"typeUri" : "target:Person"
} ],
"propertyRules" : [ {
"type" : "direct",
"id" : "directRule",
"sourcePath" : "/source:name",
"mappingTarget" : {
"uri" : "target:name",
"valueType" : {
"nodeType" : "StringValueType"
},
"isBackwardProperty" : false
}
}, {
"type" : "object",
"id" : "objectRule",
"sourcePath" : "/source:address",
"mappingTarget" : {
"uri" : "target:address",
"valueType" : {
"nodeType" : "UriValueType"
},
"isBackwardProperty" : false
},
"rules" : {
"uriRule" : null,
"typeRules" : [ ],
"propertyRules" : [ ]
}
} ]
}
}
},
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n "
}
}
}
}
},
"put" : {
"tags" : [ "Transform" ],
"summary" : "Update all mapping rules",
"description" : "Update all rules of a transform specification. As for GET XML and JSON are supported. The format for PUT is exactly the same as the result that is returned by a GET request.",
"operationId" : "putRules",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : { },
"application/xml" : { }
}
},
"responses" : {
"200" : {
"description" : "The rules were successfully updated. There is no response body."
},
"400" : {
"description" : "If the provided rule serialization is invalid."
},
"404" : {
"description" : "If no rule with the given identifier could be found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}" : {
"get" : {
"tags" : [ "Transform" ],
"summary" : "Retrieve mapping rule",
"description" : "Retrieve a single mapping rule from a transform task.",
"operationId" : "getRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "convertToComplex",
"in" : "query",
"description" : "If set to true then value transform rules will always be converted to complex rules.",
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"type" : "object",
"id" : "objectRule",
"sourcePath" : "/source:address",
"mappingTarget" : {
"uri" : "target:address",
"valueType" : {
"nodeType" : "UriValueType"
},
"isBackwardProperty" : false
},
"rules" : {
"uriRule" : null,
"typeRules" : [ ],
"propertyRules" : [ ]
}
}
},
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n "
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
},
"put" : {
"tags" : [ "Transform" ],
"summary" : "Update mapping rule",
"description" : "Updates a rule or parts of a rule. The XML and JSON format is the same as returned by the corresponding GET endpoint. For json payloads, the caller may send a fragment that only specifies the parts of the rule that should be updated. The parts that are not sent in the request will remain unchanged.",
"operationId" : "putRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"rules" : {
"uriRule" : {
"type" : "uri",
"pattern" : "http://example.org/{PersonID}"
},
"typeRules" : [ {
"type" : "type",
"id" : "explicitlyDefinedId",
"typeUri" : "target:Person"
} ]
}
}
}
}
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"type" : "root",
"id" : "root",
"rules" : {
"uriRule" : {
"type" : "uri",
"id" : "uri",
"pattern" : "http://example.org/{PersonID}"
},
"typeRules" : [ {
"type" : "type",
"id" : "explicitlyDefinedId",
"typeUri" : "target:Person"
} ],
"propertyRules" : [ ]
}
}
}
}
},
"400" : {
"description" : "If the provided rule serialization is invalid."
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
},
"delete" : {
"tags" : [ "Transform" ],
"summary" : "Delete mapping rule",
"description" : "Delete the rule that is identified by the given id.",
"operationId" : "deleteRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { }
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/completions/partialSourcePaths" : {
"post" : {
"tags" : [ "Transform autocompletion" ],
"summary" : "Mapping rule partial source paths",
"description" : "Returns auto-completion suggestions based on a complex path expression (including backward paths and filters) and the cursor position. The results may only replace a part of the original input string.",
"operationId" : "partialSourcePath_1",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/PartialSourcePathAutoCompletionRequest"
},
"example" : {
"inputString" : "pathPart1/pathPart2[valueA < 5]/valueB",
"cursorPosition" : 33,
"maxSuggestions" : 50
}
}
}
},
"responses" : {
"200" : {
"description" : "\r\nThe response contains the original parameters of the request for the client to check to which request it\r\nbelongs if it fired multiple requests.\r\nThere can be multiple (or none) suggestion result sections under `replacementResults` that differ in what part\r\nof the original string gets replaced.\r\nThe `replacementInterval` specifies the sub-string\r\nof the input path string that can be replaced by the proposed partial path suggestions. It is defined\r\nby the start index and length of the substring that should be replaced.\r\nThe `extractedQuery` property is the query that was extracted from the original input to seed the auto-completion\r\nrequest. This can be empty if the result is not filtered.\r\nThe `replacements` contain the suggestions that should be displayed to the user that the specified\r\nsubstring can be replaced with. The `value` is the actual value of the suggestion and the optional `label`\r\nand `description` values can be used for a more human-readable version of the value.\r\n ",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AutoSuggestAutoCompletionResponse"
},
"example" : {
"inputString" : "pathPart1/pathPart2[valueA < 5]/valueB",
"cursorPosition" : 33,
"replacementResults" : [ {
"replacementInterval" : {
"from" : 32,
"length" : 6
},
"extractedQuery" : "valueB",
"replacements" : [ {
"value" : "valueX",
"label" : "Value X",
"description" : "Description of value X"
}, {
"value" : "valueY",
"label" : "Value Y",
"description" : "Description of value Y"
} ]
}, {
"extractedQuery" : "",
"replacementInterval" : {
"from" : 33,
"length" : 0
},
"replacements" : [ {
"description" : "Starts a forward path segment",
"value" : "/"
}, {
"description" : "Starts a backward path segment",
"value" : "\\"
}, {
"description" : "Starts a property filter expression",
"value" : "["
} ]
} ]
}
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/completions/sourcePaths" : {
"get" : {
"tags" : [ "Transform autocompletion" ],
"summary" : "Mapping rule source paths",
"description" : "Given a search term, returns all possible completions for source property paths.",
"operationId" : "sourcePathsGET",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "term",
"in" : "query",
"description" : "The search term. Will also return non-exact matches (e.g., naMe == name) and matches from labels.",
"schema" : {
"type" : "string"
}
}, {
"name" : "maxResults",
"in" : "query",
"description" : "The maximum number of results.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 30
}
} ],
"responses" : {
"200" : {
"description" : "Source paths that match the given term",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Completions"
},
"example" : [ {
"value" : "source:age (The value to be inserted into the textbox, if the user selects this suggestion)",
"label" : "age (Human-readable label. Never null, will be generated if not available)",
"description" : "May be null, if not available",
"category" : "Source Paths (Results should be grouped in categories)"
}, {
"value" : "source:name",
"label" : "name",
"description" : "Some description",
"category" : "Source Paths"
}, {
"value" : "foaf:",
"label" : "foaf:",
"description" : null,
"category" : "Prefixes"
} ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
},
"post" : {
"tags" : [ "Transform autocompletion" ],
"summary" : "Mapping rule source paths",
"description" : "Given a search term, returns all possible completions for source property paths.",
"operationId" : "sourcePathsPOST",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "term",
"in" : "query",
"description" : "The search term. Will also return non-exact matches (e.g., naMe == name) and matches from labels.",
"schema" : {
"type" : "string"
}
}, {
"name" : "maxResults",
"in" : "query",
"description" : "The maximum number of results.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 30
}
} ],
"responses" : {
"200" : {
"description" : "Source paths that match the given term",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Completions"
},
"example" : [ {
"value" : "source:age (The value to be inserted into the textbox, if the user selects this suggestion)",
"label" : "age (Human-readable label. Never null, will be generated if not available)",
"description" : "May be null, if not available",
"category" : "Source Paths (Results should be grouped in categories)"
}, {
"value" : "source:name",
"label" : "name",
"description" : "Some description",
"category" : "Source Paths"
}, {
"value" : "foaf:",
"label" : "foaf:",
"description" : null,
"category" : "Prefixes"
} ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/completions/targetProperties" : {
"get" : {
"tags" : [ "Transform autocompletion" ],
"summary" : "Mapping rule target properties",
"description" : "Given a search term, returns possible completions for target properties.",
"operationId" : "targetPropertiesGet",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "term",
"in" : "query",
"description" : "The search term. Will also return non-exact matches (e.g., naMe == name) and matches from labels.",
"schema" : {
"type" : "string"
}
}, {
"name" : "maxResults",
"in" : "query",
"description" : "The maximum number of results.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 30
}
}, {
"name" : "fullUris",
"in" : "query",
"description" : "Return full URIs instead of prefixed ones.",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"responses" : {
"200" : {
"description" : "All properties from the target vocabulary that match the given term.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Completions"
},
"example" : [ {
"value" : "source:age (The value to be inserted into the textbox, if the user selects this suggestion)",
"label" : "age (Human-readable label. Never null, will be generated if not available)",
"description" : "May be null, if not available",
"category" : "Source Paths (Results should be grouped in categories)"
}, {
"value" : "source:name",
"label" : "name",
"description" : "Some description",
"category" : "Source Paths"
}, {
"value" : "foaf:",
"label" : "foaf:",
"description" : null,
"category" : "Prefixes"
} ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
},
"post" : {
"tags" : [ "Transform autocompletion" ],
"summary" : "Mapping rule target properties",
"description" : "Given a search term, returns possible completions for target properties. In addition it allows to specify the vocabularies that should be used for auto-completion with the optional `vocabularies` parameter in the JSON body.",
"operationId" : "targetPropertiesPost",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "term",
"in" : "query",
"description" : "The search term. Will also return non-exact matches (e.g., naMe == name) and matches from labels.",
"schema" : {
"type" : "string"
}
}, {
"name" : "maxResults",
"in" : "query",
"description" : "The maximum number of results.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 30
}
}, {
"name" : "fullUris",
"in" : "query",
"description" : "Return full URIs instead of prefixed ones.",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/TargetPropertyAutoCompleteRequest"
},
"example" : {
"vocabularies" : [ "http://schema.org/", "http://xmlns.com/foaf/0.1/" ]
}
}
}
},
"responses" : {
"200" : {
"description" : "All properties from the target vocabulary that match the given term.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Completions"
},
"example" : [ {
"value" : "source:age (The value to be inserted into the textbox, if the user selects this suggestion)",
"label" : "age (Human-readable label. Never null, will be generated if not available)",
"description" : "May be null, if not available",
"category" : "Source Paths (Results should be grouped in categories)"
}, {
"value" : "source:name",
"label" : "name",
"description" : "Some description",
"category" : "Source Paths"
}, {
"value" : "foaf:",
"label" : "foaf:",
"description" : null,
"category" : "Prefixes"
} ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/completions/targetTypes" : {
"get" : {
"tags" : [ "Transform autocompletion" ],
"summary" : "Mapping rule target types",
"description" : "Given a search term, returns possible completions for target types.",
"operationId" : "targetTypes",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "term",
"in" : "query",
"description" : "The search term. Will also return non-exact matches (e.g., naMe == name) and matches from labels.",
"schema" : {
"type" : "string"
}
}, {
"name" : "maxResults",
"in" : "query",
"description" : "The maximum number of results.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 30
}
} ],
"responses" : {
"200" : {
"description" : "All types from the target vocabulary that match the given term.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Completions"
}
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/completions/uriPattern" : {
"post" : {
"tags" : [ "Transform autocompletion" ],
"summary" : "URI pattern auto-completion",
"description" : "Returns source path auto-completion suggestions when the cursor position is inside a path expression of a URI pattern. The results may only replace a part of the original input string.",
"operationId" : "uriPattern",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UriPatternAutoCompletionRequest"
},
"example" : {
"inputString" : "urn:uriPath1:{pathPart[valueA < 5]/valueB}-suffixA",
"cursorPosition" : 18,
"maxSuggestions" : 50
}
}
}
},
"responses" : {
"200" : {
"description" : "\r\nThe response contains the original parameters of the request for the client to check to which request it\r\nbelongs if it fired multiple requests.\r\nThere can be multiple (or none) suggestion result sections under `replacementResults` that differ in what part\r\nof the original string gets replaced.\r\nThe `replacementInterval` specifies the sub-string\r\nof the input path string that can be replaced by the proposed partial path suggestions. It is defined\r\nby the start index and length of the substring that should be replaced.\r\nThe `extractedQuery` property is the query that was extracted from the original input to seed the auto-completion\r\nrequest. This can be empty if the result is not filtered.\r\nThe `replacements` contain the suggestions that should be displayed to the user that the specified\r\nsubstring can be replaced with. The `value` is the actual value of the suggestion and the optional `label`\r\nand `description` values can be used for a more human-readable version of the value.\r\n ",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AutoSuggestAutoCompletionResponse"
},
"example" : {
"inputString" : "pathPart1/pathPart2[valueA < 5]/valueB",
"cursorPosition" : 33,
"replacementResults" : [ {
"replacementInterval" : {
"from" : 32,
"length" : 6
},
"extractedQuery" : "valueB",
"replacements" : [ {
"value" : "valueX",
"label" : "Value X",
"description" : "Description of value X"
}, {
"value" : "valueY",
"label" : "Value Y",
"description" : "Description of value Y"
} ]
}, {
"extractedQuery" : "",
"replacementInterval" : {
"from" : 33,
"length" : 0
},
"replacements" : [ {
"description" : "Starts a forward path segment",
"value" : "/"
}, {
"description" : "Starts a backward path segment",
"value" : "\\"
}, {
"description" : "Starts a property filter expression",
"value" : "["
} ]
} ]
}
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/completions/valueTypes" : {
"get" : {
"tags" : [ "Transform autocompletion" ],
"summary" : "Mapping rule value types",
"description" : "Given a search term, returns possible completions for value types.",
"operationId" : "valueTypes",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "term",
"in" : "query",
"description" : "The search term. Will also return non-exact matches (e.g., naMe == name) and matches from labels.",
"schema" : {
"type" : "string"
}
}, {
"name" : "maxResults",
"in" : "query",
"description" : "The maximum number of results.",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 30
}
} ],
"responses" : {
"200" : {
"description" : "All values types that match the given term.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Completions"
},
"example" : [ {
"value" : "FloatValueType",
"label" : "Float",
"description" : "Numeric values which can have a fractional value, represented as IEEE single-precision 32-bit floating point numbers. Examples for valid values are: '1.9'. Invalid values are: '1,9'.",
"category" : "Uncategorized",
"isCompletion" : true
}, {
"value" : "IntValueType",
"label" : "Int",
"description" : "Numeric values without a fractional component, represented as 32-bit signed integers. Numbers must be between -2147483648 and 2147483647. Examples for valid values are: '1'. Invalid values are: '1.0', '1234567890123456789012345678901234567890'.",
"category" : "Uncategorized",
"isCompletion" : true
}, "..." ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/evaluateRule" : {
"post" : {
"tags" : [ "Transform" ],
"summary" : "Evaluate transform rule",
"description" : "Evaluates a transform rule that is send with the requests.",
"operationId" : "evaluateRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The identifier of the parent rule or 'root' if there is no parent.",
"required" : true,
"schema" : {
"type" : "string",
"example" : "root"
}
}, {
"name" : "limit",
"in" : "query",
"description" : "The maximum number of results to be returned",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 3
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"type" : "complex",
"id" : "label",
"operator" : {
"type" : "transformInput",
"id" : "lowerCase",
"function" : "lowerCase",
"inputs" : [ {
"type" : "pathInput",
"id" : "label",
"path" : "loanState"
} ],
"parameters" : { }
},
"mappingTarget" : {
"uri" : "loanState",
"valueType" : {
"nodeType" : "StringValueType"
},
"isBackwardProperty" : false,
"isAttribute" : false
}
}
}
}
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"operatorId" : "lowerCase",
"values" : [ "arizona" ],
"error" : null,
"children" : [ {
"operatorId" : "label",
"values" : [ "Arizona" ],
"error" : null
} ]
}, {
"operatorId" : "lowerCase",
"values" : [ "georgia" ],
"error" : null,
"children" : [ {
"operatorId" : "label",
"values" : [ "Georgia" ],
"error" : null
} ]
} ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/evaluated" : {
"get" : {
"tags" : [ "Transform" ],
"summary" : "Evaluate transform rule by ID",
"description" : "Evaluates a transform rule with the given ID.",
"operationId" : "evaluateSpecificRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The identifier of the rule that should be evaluated.",
"required" : true,
"schema" : {
"type" : "string",
"example" : "root"
}
}, {
"name" : "limit",
"in" : "query",
"description" : "The maximum number of results to be returned",
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 50
}
}, {
"name" : "showOnlyEntitiesWithUris",
"in" : "query",
"description" : "If true, only entities are returned that generated a valid entity URI.",
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"rules" : [ {
"type" : "complex",
"id" : "uri",
"operator" : {
"type" : "transformInput",
"id" : "buildUri",
"function" : "concat",
"inputs" : [ {
"type" : "transformInput",
"id" : "constant0",
"function" : "constant",
"inputs" : [ ],
"parameters" : {
"value" : "http://domain.com/person/"
}
}, {
"type" : "transformInput",
"id" : "encode1",
"function" : "urlEncode",
"inputs" : [ {
"type" : "pathInput",
"id" : "path1",
"path" : "ID"
} ],
"parameters" : {
"encoding" : "UTF-8"
}
} ],
"parameters" : {
"glue" : "",
"missingValuesAsEmptyStrings" : "false"
}
},
"sourcePaths" : [ "ID" ]
}, {
"type" : "object",
"id" : "object",
"sourcePath" : "Properties/Property",
"mappingTarget" : {
"uri" : "",
"valueType" : {
"nodeType" : "UriValueType"
},
"isBackwardProperty" : false,
"isAttribute" : false
},
"rules" : {
"uriRule" : null,
"typeRules" : [ ],
"propertyRules" : [ {
"type" : "complex",
"id" : "URI",
"operator" : {
"type" : "transformInput",
"id" : "buildUri",
"function" : "concat",
"inputs" : [ {
"type" : "transformInput",
"id" : "fixUri0",
"function" : "uriFix",
"inputs" : [ {
"type" : "pathInput",
"id" : "path0",
"path" : ""
} ],
"parameters" : {
"uriPrefix" : "urn:url-encoded-value:"
}
}, {
"type" : "transformInput",
"id" : "constant1",
"function" : "constant",
"inputs" : [ ],
"parameters" : {
"value" : "/object"
}
} ],
"parameters" : {
"glue" : "",
"missingValuesAsEmptyStrings" : "false"
}
},
"sourcePaths" : [ ],
"metadata" : { },
"layout" : {
"nodePositions" : { }
},
"uiAnnotations" : {
"stickyNotes" : [ ]
}
} ]
},
"metadata" : { }
} ],
"evaluatedEntities" : [ {
"uris" : [ "http://domain.com/person/1" ],
"values" : [ {
"operatorId" : "buildUri",
"values" : [ "http://domain.com/person/1" ],
"error" : null,
"children" : [ {
"operatorId" : "constant0",
"values" : [ "http://domain.com/person/" ],
"error" : null,
"children" : [ ]
}, {
"operatorId" : "encode1",
"values" : [ "1" ],
"error" : null,
"children" : [ {
"operatorId" : "path1",
"values" : [ "1" ],
"error" : null
} ]
} ]
}, {
"operatorId" : "buildUri",
"values" : [ "urn:instance:Property#10-7/object", "urn:instance:Property#14-7/object", "urn:instance:Property#18-7/object" ],
"error" : null,
"children" : [ {
"operatorId" : "fixUri0",
"values" : [ "urn:instance:Property#10-7", "urn:instance:Property#14-7", "urn:instance:Property#18-7" ],
"error" : null,
"children" : [ {
"operatorId" : "path0",
"values" : [ "urn:instance:Property#10-7", "urn:instance:Property#14-7", "urn:instance:Property#18-7" ],
"error" : null
} ]
}, {
"operatorId" : "constant1",
"values" : [ "/object" ],
"error" : null,
"children" : [ ]
} ]
} ]
} ]
}
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/rules" : {
"post" : {
"tags" : [ "Transform" ],
"summary" : "Append mapping rule",
"description" : "Appends a new child rule to an object mapping rule.",
"operationId" : "appendRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "afterRuleId",
"in" : "query",
"description" : "Optional parameter that specified after which existing rule the new rule should be inserted.",
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"type" : "direct",
"sourcePath" : "/source:name",
"mappingTarget" : {
"uri" : "target:name",
"valueType" : {
"nodeType" : "StringValueType"
}
}
}
}
}
},
"responses" : {
"200" : {
"description" : "The rule has been updated successfully. The appended rule is returned. In case the caller did not specify an identifier for the appended rule, the result will contain the generated identifier.",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"type" : "direct",
"id" : "directRule",
"sourcePath" : "/source:name",
"mappingTarget" : {
"uri" : "target:name",
"valueType" : {
"nodeType" : "StringValueType"
}
}
}
}
}
},
"400" : {
"description" : "If the provided rule serialization is invalid."
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/rules/copyFrom" : {
"post" : {
"tags" : [ "Transform" ],
"summary" : "Copy mapping rule",
"description" : "Copy a rule from the source transformation task specified by the query parameters and inserts it into the given target transform task specified by the path parameters.",
"operationId" : "copyRule",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "sourceProject",
"in" : "query",
"description" : "The identifier of the source project from the workspace that contains the source transform task from which a rule should be copied from.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "sourceTask",
"in" : "query",
"description" : "The identifier of the source task the rule should be copied from.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "sourceRule",
"in" : "query",
"description" : "The identifier of the source rule that should be copied to the target transform task.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "afterRuleId",
"in" : "query",
"description" : "Optional parameter that specified after which existing rule the new rule should be inserted.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/rules/reorder" : {
"post" : {
"tags" : [ "Transform" ],
"summary" : "Reorder mapping rules",
"description" : "Reorder all child rules of an object mapping.",
"operationId" : "reorderRules",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : [ "objectRule", "directRule" ]
}
}
},
"responses" : {
"200" : {
"description" : "The rules have been successfully reordered. The new ordered list of rules is returned.",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : [ "objectRule", "directRule" ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/valueSourcePaths" : {
"get" : {
"tags" : [ "Transform" ],
"summary" : "Mapping Rule Value Source Paths",
"description" : "Returns an array of string representations of the available source paths.",
"operationId" : "valueSourcePaths",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "maxDepth",
"in" : "query",
"description" : "Limit the depth of the source paths. For example a value of 1 would only return value source paths with exactly one path operator.",
"schema" : {
"type" : "integer",
"format" : "int32"
}
}, {
"name" : "unusedOnly",
"in" : "query",
"description" : "If this is set to true, only source paths that are not used in any rule so far are returned. Considered rules for filtering are only value rules and complex mappings with a single source path.",
"schema" : {
"type" : "boolean",
"default" : false
}
}, {
"name" : "usedOnly",
"in" : "query",
"description" : "If this is set to true, only source paths that are already used in any rule so far are returned. Considered rules for filtering are only value rules and complex mappings with a single source path. This must not be true if `unusedOnly` is true.",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"responses" : {
"200" : {
"description" : "A list of source paths serialized with prefixed URIs.",
"content" : {
"application/json" : {
"example" : [ "ID", "Properties/Property", "Name", "Events/@count", "Events/Birth", "Events/Death", "Properties/Property/Key", "Properties/Property/Value" ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/rule/{rule}/valueSourcePathsInfo" : {
"get" : {
"tags" : [ "Transform" ],
"summary" : "Mapping Rule Value Source Paths Information",
"description" : "Fetch all value source paths relative to the corresponding rule. Besides the path string that is given in the Silk path language format, additional information about the source path is returned.",
"operationId" : "valueSourcePathsFullInfo",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "rule",
"in" : "path",
"description" : "The rule identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "maxDepth",
"in" : "query",
"description" : "Limit the depth of the source paths. For example a value of 1 would only return value source paths with exactly one path operator.",
"schema" : {
"type" : "integer",
"format" : "int32"
}
}, {
"name" : "objectInfo",
"in" : "query",
"description" : "If it should return additional information for object paths.",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"responses" : {
"200" : {
"description" : "A list of source paths with additional information.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ValueSourcePathInfo"
},
"example" : [ {
"alreadyMapped" : true,
"path" : "ID",
"pathType" : "value"
}, {
"alreadyMapped" : false,
"path" : "Name",
"pathType" : "value"
}, {
"alreadyMapped" : true,
"objectInfo" : {
"dataTypeSubPaths" : [ "@count", "Birth", "Death" ],
"objectSubPaths" : [ ]
},
"path" : "Events",
"pathType" : "object"
}, {
"alreadyMapped" : false,
"path" : "Events/@count",
"pathType" : "value"
} ]
}
}
},
"404" : {
"description" : "If the specified project, task or rule has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/targetVocabulary/propertiesByClass" : {
"get" : {
"tags" : [ "Transform target vocabulary" ],
"summary" : "Target vocabulary properties by class",
"description" : "Get all properties that the given class or any of its parent classes is the domain of in the corresponding target vocabulary.",
"operationId" : "propertiesByType",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "uri",
"in" : "query",
"description" : "The URI of the class.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"domain" : "https://vocab.eccenca.com/testTarget/Loan",
"genericInfo" : {
"URI" : "https://vocab.eccenca.com/testTarget/zipCode",
"label" : "zip code"
}
}, {
"domain" : "https://vocab.eccenca.com/testTarget/Loan",
"genericInfo" : {
"URI" : "https://vocab.eccenca.com/testTarget/volume",
"label" : "volume"
}
} ]
}
}
},
"404" : {
"description" : "If the specified project, task or class has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/targetVocabulary/property" : {
"get" : {
"tags" : [ "Transform target vocabulary" ],
"summary" : "Target vocabulary property",
"description" : "Retrieves information about a property from the target vocabularies.",
"operationId" : "getPropertyInfo",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "uri",
"in" : "query",
"description" : "The URI of the property. May be a prefixed name.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Target vocabulary property",
"content" : {
"application/json" : {
"example" : {
"genericInfo" : {
"uri" : "foaf:name",
"label" : "name",
"description" : "A name for some thing."
},
"domain" : "owl:Thing",
"range" : "rdfs:Literal"
}
}
}
},
"404" : {
"description" : "If the specified project, task or property has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/targetVocabulary/relationsOfClass" : {
"get" : {
"tags" : [ "Transform target vocabulary" ],
"summary" : "Target vocabulary object properties by class",
"description" : "Get all direct relations of a class or one of its parent classes to other classes from the vocabulary.",
"operationId" : "relationsOfType",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "uri",
"in" : "query",
"description" : "The URI of the class.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"backwardRelations" : [ {
"property" : {
"domain" : "https://vocab.eccenca.com/testTarget/Person",
"genericInfo" : {
"URI" : "https://vocab.eccenca.com/testTarget/hasLoan",
"label" : "hasLoan"
},
"range" : "https://vocab.eccenca.com/testTarget/Loan"
},
"targetClass" : {
"genericInfo" : {
"URI" : "https://vocab.eccenca.com/testTarget/Loan",
"description" : "Loans of customers",
"label" : "Loan"
},
"parentClasses" : [ ]
}
} ],
"forwardRelations" : [ {
"property" : {
"domain" : "https://vocab.eccenca.com/testTarget/Loan",
"genericInfo" : {
"URI" : "https://vocab.eccenca.com/testTarget/lendTo",
"label" : "lend to"
},
"range" : "https://vocab.eccenca.com/testTarget/Person"
},
"targetClass" : {
"genericInfo" : {
"URI" : "https://vocab.eccenca.com/testTarget/Loan",
"description" : "Loans of customers",
"label" : "Loan"
},
"parentClasses" : [ ]
}
} ]
}
}
}
},
"404" : {
"description" : "If the specified project, task or class has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/targetVocabulary/type" : {
"get" : {
"tags" : [ "Transform target vocabulary" ],
"summary" : "Target vocabulary type",
"description" : "Retrieves information about a type from the target vocabularies.",
"operationId" : "getTypeInfo",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "uri",
"in" : "query",
"description" : "The URI of the type. May be a prefixed name.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Target vocabulary type",
"content" : {
"application/json" : {
"example" : {
"genericInfo" : {
"uri" : "foaf:Person",
"label" : "Person",
"description" : "A person."
},
"parentClasses" : [ "http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing", "foaf:Agent" ]
}
}
}
},
"404" : {
"description" : "If the specified project, task or type has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/targetVocabulary/typeOrProperty" : {
"get" : {
"tags" : [ "Transform target vocabulary" ],
"summary" : "Target vocabulary type or property",
"description" : "Retrieves information about a type or a property from the target vocabularies. This endpoint can be used if it is not known whether the given URI represents a type or a property. Otherwise, the /type and /property endpoints should be prefered.",
"operationId" : "getTypeOrPropertyInfo",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "uri",
"in" : "query",
"description" : "The URI of the type or property. May be a prefixed name.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Target vocabulary type or property",
"content" : {
"application/json" : {
"example" : {
"genericInfo" : {
"uri" : "foaf:name",
"label" : "name",
"description" : "A name for some thing."
},
"domain" : "owl:Thing",
"range" : "rdfs:Literal"
}
}
}
},
"404" : {
"description" : "If the specified project, task has not been found or there is no type or property with the specified URI."
}
}
}
},
"/transform/tasks/{project}/{task}/targetVocabulary/vocabularies" : {
"get" : {
"tags" : [ "Transform target vocabulary" ],
"summary" : "Target vocabulary information",
"description" : "Returns high-level information, e.g. label, class/property statistics, about the accessible vocabularies for that transform task.",
"operationId" : "vocabularyInfos",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"vocabularies" : [ {
"nrClasses" : 0,
"nrProperties" : 61,
"uri" : "urn:foaf.owl"
} ]
}
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/transform/tasks/{project}/{task}/transformInput" : {
"post" : {
"tags" : [ "Transform" ],
"summary" : "Execute transform with payload",
"description" : "Execute a specific transformation task against input data from the POST body.",
"operationId" : "postTransformInput",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/xml" : {
"schema" : {
"type" : "string"
},
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n ...\r\n }\r\n \r\n \r\n "
}
}
},
"responses" : {
"200" : {
"description" : "If no sink is specified in the request then return results in N-Triples format with the response, else write triples to defined data sink.",
"content" : {
"application/n-triples" : {
"example" : " \"John Doe\"@en ."
}
}
},
"404" : {
"description" : "If the specified project or task has not been found."
}
}
}
},
"/version" : {
"get" : {
"tags" : [ "Workbench" ],
"summary" : "Version",
"description" : "The version of the eccenca DataIntegration application.",
"operationId" : "version",
"responses" : {
"200" : {
"description" : "The version as plain text.",
"content" : {
"text/plain" : {
"schema" : {
"type" : "string"
},
"example" : "1.0.0"
}
}
}
}
}
},
"/vocabulary" : {
"get" : {
"tags" : [ "Workbench" ],
"summary" : "Vocabulary",
"description" : "Generates a vocabulary for the RDF terms used by DataIntegration including all installed plugins.",
"operationId" : "vocabulary",
"responses" : {
"default" : {
"description" : "default response",
"content" : {
"*/*" : {
"schema" : {
"$ref" : "#/components/schemas/ActionAnyContent"
}
}
}
}
}
}
},
"/api/workflow/config/{projectId}/{workflowId}/ports" : {
"get" : {
"tags" : [ "Workflows" ],
"summary" : "Workflow nodes port config",
"description" : "Returns information about what port configuration nodes in a workflow can have.",
"operationId" : "workflowNodesConfig",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "workflowId",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "A workflow node port config can be configured on three different levels.\r\nThe most specific one is the config by node ID, i.e. of a specific node in the workflow graph.\r\nThe next level is the task level and contains the port config for a concrete project task that does not have\r\na port config that is determined by its item type.\r\nThe most general level is the item type level, where the item type itself defines the port config.\r\nFor a specific node in a workflow the most specific matching level should be taken, e.g. if a node has\r\na port config by node ID this should be used.\r\nEach port config specifies the min. number of ports and an optional max. number of ports.\r\nIf the max. number is missing, this basically means that an arbitrary number of inputs/ports are allowed.\r\n ",
"content" : {
"application/json" : {
"example" : {
"byItemType" : {
"dataset" : {
"minInputPorts" : 1
},
"linking" : {
"maxInputPorts" : 2,
"minInputPorts" : 2
},
"transform" : {
"minInputPorts" : 1
},
"workflow" : {
"minInputPorts" : 1
}
},
"byNodeId" : {
"node1" : {
"minInputPorts" : 1,
"maxInputPorts" : 2
}
},
"byTaskId" : {
"23586f0a-037d-4acd-91ad-669afe05a074_JSONparser" : {
"minInputPorts" : 1
},
"fourPort" : {
"maxInputPorts" : 4,
"minInputPorts" : 4
},
"noSchema" : {
"minInputPorts" : 1
},
"onePort" : {
"maxInputPorts" : 1,
"minInputPorts" : 1
}
}
}
}
}
},
"404" : {
"description" : "If the specified project or workflow has not been found."
}
}
}
},
"/api/workflow/executeAsync/{projectId}/{workflowId}" : {
"post" : {
"tags" : [ "Workflows" ],
"summary" : "Parameterized workflow execution result (asynchronous)",
"description" : "Executes a workflow with parameters from the request query string or form URL encoded body.\r\nThis endpoint will start the workflow execution, but not wait for its completion.\r\nIt will return the activity identifiers, which can be used to check the execution status using the Activity API.\r\nOnce the workflow execution completed, the result can be retrieved using the 'Parameterized workflow execution result (asynchronous)' endpoint.\r\nCompatible with all workflows that contain a single variable dataset that is used as input dataset and a single\r\nvariable dataset as output – each dataset can be used several times in the same workflow.\r\nThe output data type is specified via 'output:type' query parameter.\r\nA single entity is build from the provided request parameters and injected into the variable source dataset.\r\nThere must be at least one form or query parameter specified in the request. If empty entities as input\r\nmust be supported, a POST request with empty JSON or XML object/element should be used, see below.\r\nFor some data types (JSON, XML and CSV), the POST body can contain arbitrary content that the data source\r\nis expected to have. This goes beyond the simple query or form parameter input, where only exactly one input entity would be generated.\r\nThe corresponding content type must be specified in these cases.",
"operationId" : "executeVariableWorkflowAsync",
"parameters" : [ {
"name" : "output:type",
"in" : "query",
"description" : "The type of the output dataset",
"required" : true,
"schema" : {
"type" : "string",
"example" : "csv"
}
}, {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "workflowId",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The contents of the variable data source.",
"content" : {
"application/x-www-form-urlencoded" : {
"schema" : {
"type" : "string"
},
"example" : "param1=param1+value¶m2=param2+value¶m2=param2+second+value"
},
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"param1" : "param1 value",
"param2" : [ "param2 value", "param2 second value" ]
}
},
"application/xml" : {
"schema" : {
"type" : "string"
},
"example" : "\r\n \r\n param1 value \r\n param2 value \r\n param2 second value \r\n \r\n "
},
"text/comma-separated-values" : {
"schema" : {
"type" : "string"
},
"example" : "param1,param2\r\nparam1 value,param2 value"
},
"text/csv" : {
"schema" : {
"type" : "string"
},
"example" : "param1,param2\r\nparam1 value,param2 value"
}
}
},
"responses" : {
"201" : {
"description" : "If the workflow has been started successfully.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StartActivityResponse"
}
}
}
},
"400" : {
"description" : " Invalid request, e.g. no request parameters provided."
},
"404" : {
"description" : "If the specified project or workflow has not been found."
},
"406" : {
"description" : "If no response in any of the requested mime types could be produced."
},
"500" : {
"description" : "The workflow execution has failed."
},
"503" : {
"description" : "Workflow execution could not be started because concurrent execution limit is reached."
}
}
}
},
"/api/workflow/executionResult/{projectId}/{workflowId}" : {
"get" : {
"tags" : [ "Workflows" ],
"summary" : "Parameterized workflow execution result (asynchronous)",
"description" : "Returns the result of a workflow execution.",
"operationId" : "variableWorkflowAsyncResult",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "workflowId",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "instanceId",
"in" : "path",
"description" : "The activity instance identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the workflow was successful. The result of the variable output dataset is returned in the response."
},
"204" : {
"description" : "If the workflow was successful, but contains no variable output dataset."
},
"404" : {
"description" : "If the workflow is still running and did not produce a result yet."
},
"500" : {
"description" : "If the workflow has not completed successfully."
}
}
}
},
"/api/workflow/info" : {
"get" : {
"tags" : [ "Workflows" ],
"summary" : "Workflow information list",
"description" : "Get a list of all workflows of the workspace or a specific project, with information about how they can be executed via REST APIs.",
"operationId" : "workflowInfoList",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "If set then only workflows from this particular project are returned.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"id" : "0c338c22-c43e-4a1c-960d-da44b8176c56_Workflowmultipleofthesameinputandoutput",
"label" : "Workflow multiple of the same input and output",
"projectId" : "singleProject",
"projectLabel" : "Simple variable workflow project",
"variableInputs" : [ "1e80c0ed-9ca9-4d67-8868-65f7655aa416_Variableinputdataset" ],
"variableOutputs" : [ "3a41ee9d-1ee7-4abe-9a62-603015abdb20_VariableOutput" ]
}, {
"id" : "67fe02eb-43a7-4b74-a6a2-c65a5c097636_Workflowoutputonly",
"label" : "Workflow output only",
"projectId" : "singleProject",
"projectLabel" : "Simple variable workflow project",
"variableInputs" : [ ],
"variableOutputs" : [ "3a41ee9d-1ee7-4abe-9a62-603015abdb20_VariableOutput" ]
} ]
}
}
},
"404" : {
"description" : "If the specified project has not been found."
}
}
}
},
"/api/workflow/info/{projectId}/{workflowId}" : {
"get" : {
"tags" : [ "Workflows" ],
"summary" : "Workflow information",
"description" : "Get information about how a specific workflow can be executed via REST APIs.",
"operationId" : "workflowInfo",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "workflowId",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"id" : "0c338c22-c43e-4a1c-960d-da44b8176c56_Workflowmultipleofthesameinputandoutput",
"label" : "Workflow multiple of the same input and output",
"projectId" : "singleProject",
"projectLabel" : "Simple variable workflow project",
"variableInputs" : [ "1e80c0ed-9ca9-4d67-8868-65f7655aa416_Variableinputdataset" ],
"variableOutputs" : [ "3a41ee9d-1ee7-4abe-9a62-603015abdb20_VariableOutput" ]
}
}
}
},
"404" : {
"description" : "If the specified project or workflow has not been found."
}
}
}
},
"/api/workflow/result/{projectId}/{workflowId}" : {
"get" : {
"tags" : [ "Workflows" ],
"summary" : "Parameterized workflow execution result",
"description" : "For a GET request the parameter and values are provided via the query string of the URL.\r\nIn order to provide multiple values for an input property, the same query parameter should be used multiple times,\r\ne.g. `inputProp=value+1&inputProp=value+2`.\r\nThe responses are the same as for the POST request.",
"operationId" : "variableWorkflowResultGet",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "workflowId",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the workflow was successful. The result of the variable output dataset is returned in the response.",
"content" : {
"application/json" : { },
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n val 1 \r\n val 2 \r\n \r\n \r\n "
},
"application/n-triples" : {
"example" : " \"val 1\" .\r\n \"val 2\" ."
},
"text/csv" : {
"example" : "targetProp1,targetProp2\r\nval 1,val 2"
},
"text/comma-separated-values" : {
"example" : "targetProp1,targetProp2\r\nval 1,val 2"
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" : { }
}
},
"204" : {
"description" : "If the workflow was successful, but contains no variable output dataset."
},
"400" : {
"description" : " Invalid request, e.g. no request parameters provided."
},
"404" : {
"description" : "If the specified project or workflow has not been found."
},
"406" : {
"description" : "If no response in any of the requested mime types could be produced."
},
"500" : {
"description" : "The workflow execution has failed."
}
}
},
"post" : {
"tags" : [ "Workflows" ],
"summary" : "Parameterized workflow execution result",
"description" : "Executes a workflow with parameters from the request query string or form URL encoded body.\r\nCompatible with all workflows that contain a single variable dataset that is used as input dataset and a single\r\nvariable dataset as output – each dataset can be used several times in the same workflow.\r\nThe output data type is specified via the ACCEPT header. The result is returned as the requested mime type,\r\nthe content is the file content of the corresponding dataset, e.g. XML, CSV etc.\r\nA single entity is build from the provided request parameters and injected into the variable source dataset.\r\nThere must be at least one form or query parameter specified in the request. If empty entities as input\r\nmust be supported, a POST request with empty JSON or XML object/element should be used, see below.\r\nFor some data types (JSON, XML and CSV), the POST body can contain arbitrary content that the data source\r\nis expected to have. This goes beyond the simple query or form parameter input, where only exactly one input entity would be generated.\r\nThe corresponding content type must be specified in these cases.\r\nIt is possible to enable auto-configuration for the source dataset, e.g. if the source data does not adhere to the default dataset config (non-comma separator in CSV etc.).\r\nThe query parameter 'config-general-autoConfig' must be set to true to enable auto-config.",
"operationId" : "variableWorkflowResultPost",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "workflowId",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The contents of the variable data source.",
"content" : {
"application/x-www-form-urlencoded" : {
"schema" : {
"type" : "string"
},
"example" : "param1=param1+value¶m2=param2+value¶m2=param2+second+value"
},
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"param1" : "param1 value",
"param2" : [ "param2 value", "param2 second value" ]
}
},
"application/xml" : {
"schema" : {
"type" : "string"
},
"example" : "\r\n \r\n param1 value \r\n param2 value \r\n param2 second value \r\n \r\n "
},
"text/comma-separated-values" : {
"schema" : {
"type" : "string"
},
"example" : "param1,param2\r\nparam1 value,param2 value"
},
"text/csv" : {
"schema" : {
"type" : "string"
},
"example" : "param1,param2\r\nparam1 value,param2 value"
}
}
},
"responses" : {
"200" : {
"description" : "If the workflow was successful. The result of the variable output dataset is returned in the response.",
"content" : {
"application/json" : { },
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n val 1 \r\n val 2 \r\n \r\n \r\n "
},
"application/n-triples" : {
"example" : " \"val 1\" .\r\n \"val 2\" ."
},
"text/csv" : {
"example" : "targetProp1,targetProp2\r\nval 1,val 2"
},
"text/comma-separated-values" : {
"example" : "targetProp1,targetProp2\r\nval 1,val 2"
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" : { }
}
},
"204" : {
"description" : "If the workflow was successful, but contains no variable output dataset."
},
"400" : {
"description" : " Invalid request, e.g. no request parameters provided."
},
"404" : {
"description" : "If the specified project or workflow has not been found."
},
"406" : {
"description" : "If no response in any of the requested mime types could be produced."
},
"500" : {
"description" : "The workflow execution has failed."
},
"503" : {
"description" : "Workflow execution could not be started because concurrent execution limit is reached."
}
}
}
},
"/workflow/workflows/{project}/{task}/executeOnPayload" : {
"post" : {
"tags" : [ "Workflows" ],
"summary" : "Execute workflow with request payload",
"description" : "Execute a variable workflow that gets the inputs for variable data sources with the HTTP request and\r\nreturns all results of variable data sinks with the HTTP response.\r\nThis endpoint will block until the workflow execution finished. Use executeOnPayloadAsynchronous for non-blocking execution.",
"operationId" : "postVariableWorkflowInput",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "At the moment the file parameter follows the convention that the file name must be the dataset name\r\nplus the string \"_file_resource\", e.g. dataset name \"dOutput\" with file parameter value \"dOutput_file_resource\".\r\nThis convention is not needed for data sources.\r\nIt is possible to reference project resource files. In order to use existing resources and not provide\r\nthem via the REST request, no resource element with the same name should be in the XML payload. Then,\r\nif the project resource with the value given for the file parameter exists, this is used instead.\r\n ",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"DataSources" : [ {
"id" : "inputDataset",
"data" : {
"taskType" : "Dataset",
"type" : "json",
"parameters" : {
"file" : "test_file_resource"
}
}
} ],
"Sinks" : [ {
"id" : "outputDataset",
"data" : {
"taskType" : "Dataset",
"type" : "file",
"parameters" : {
"file" : "outputResource",
"format" : "N-Triples"
}
}
} ],
"Resources" : {
"test_file_resource" : [ {
"id" : "1"
}, {
"id" : "2"
} ]
}
}
},
"application/xml" : {
"schema" : {
"type" : "string"
},
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n <https://www.fuhsen.net/resource/xing/person/123456_abcdef> <http://www.w3.org/2000/01/rdf-schema#label>\r\n "Max Mustermann" .\r\n \r\n \r\n <https://www.fuhsen.net/resource/xing/person/654321_abcdef> <http://www.w3.org/2000/01/rdf-schema#label>\r\n "mustermann, max" .\r\n \r\n \r\n "
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"sinkId" : "outputDataset",
"textContent" : " \"1\"^^ .\n \"2\"^^ ."
} ]
},
"application/xml" : {
"example" : "\r\n \r\n \r\n <https://www.fuhsen.net/resource/xing/person/123456_abcdef> <http://www.w3.org/2002/07/owl#sameAs>\r\n <https://www.fuhsen.net/resource/xing/person/654321_abcdef> .\r\n \r\n \r\n "
}
}
},
"404" : {
"description" : "If the specified project or workflow has not been found."
},
"503" : {
"description" : "Workflow execution could not be started because concurrent execution limit is reached."
}
}
}
},
"/workflow/workflows/{project}/{task}/executeOnPayloadAsynchronous" : {
"post" : {
"tags" : [ "Workflows" ],
"summary" : "Execute workflow with request payload asynchronously",
"description" : "Execute a variable workflow that gets the inputs for variable data sources with the HTTP request and\r\nreturns all results of variable data sinks with the HTTP response.\r\nThis endpoint starts the workflow execution in the background and returns\r\nthe identifier of the started background activity.\r\nUse the activity API to query for its exection status and result, e.g.,\r\n`/workspace/projects/{projectId}/tasks/{taskId} /activities/{BackgroundActivityID}/{value or status}`.\r\nAfter having consumed the result value a well-behaving client should remove the execution instance via\r\nthe `/execution/{executionId}` endpoint.",
"operationId" : "postVariableWorkflowInputAsynchronous",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "At the moment the file parameter follows the convention that the file name must be the dataset name\r\nplus the string \"_file_resource\", e.g. dataset name \"dOutput\" with file parameter value \"dOutput_file_resource\".\r\nThis convention is not needed for data sources.\r\nIt is possible to reference project resource files. In order to use existing resources and not provide\r\nthem via the REST request, no resource element with the same name should be in the XML payload. Then,\r\nif the project resource with the value given for the file parameter exists, this is used instead.\r\n ",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"DataSources" : [ {
"id" : "inputDataset",
"data" : {
"taskType" : "Dataset",
"type" : "json",
"parameters" : {
"file" : "test_file_resource"
}
}
} ],
"Sinks" : [ {
"id" : "outputDataset",
"data" : {
"taskType" : "Dataset",
"type" : "file",
"parameters" : {
"file" : "outputResource",
"format" : "N-Triples"
}
}
} ],
"Resources" : {
"test_file_resource" : [ {
"id" : "1"
}, {
"id" : "2"
} ]
}
}
},
"application/xml" : {
"schema" : {
"type" : "string"
},
"example" : "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n <https://www.fuhsen.net/resource/xing/person/123456_abcdef> <http://www.w3.org/2000/01/rdf-schema#label>\r\n "Max Mustermann" .\r\n \r\n \r\n <https://www.fuhsen.net/resource/xing/person/654321_abcdef> <http://www.w3.org/2000/01/rdf-schema#label>\r\n "mustermann, max" .\r\n \r\n \r\n "
}
},
"required" : true
},
"responses" : {
"201" : {
"description" : "Workflow started.",
"headers" : {
"Location" : {
"style" : "simple",
"schema" : {
"example" : "/workflow/workflows/projectName/workflowName/execution/ExecuteWorkflowWithPayload14"
}
}
},
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StartActivityResponse"
}
}
}
},
"404" : {
"description" : "If the specified project or workflow has not been found."
},
"503" : {
"description" : "Workflow execution could not be started because concurrent execution limit is reached."
}
}
}
},
"/workflow/workflows/{project}/{task}/execution/{executionId}" : {
"delete" : {
"tags" : [ "Workflows" ],
"summary" : "Remove a workflow execution instance",
"description" : "Remove the workflow execution instance, which was started via the /executeOnPayloadAsynchronous endpoint.\r\nSince only a limited number of executions are kept at every moment,\r\na well behaving client should remove the execution if the client has consumed the result.\",\r\n ",
"operationId" : "removeVariableWorkflowExecution",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The workflow identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "executionId",
"in" : "path",
"description" : "The execution identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the execution instance has been removed."
},
"404" : {
"description" : "If the specified project, workflow or execution instance has not been found."
}
}
}
},
"/workspace/activities/cancel" : {
"post" : {
"tags" : [ "Activities" ],
"summary" : "Cancel activity",
"description" : "Requests cancellation of an activity. The call returns immediately and does not wait until the activity has been cancelled.",
"operationId" : "cancelActivity",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If not provided or empty, global activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If not provided or empty, project activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Activity name.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "instance",
"in" : "query",
"description" : "Optional activity instance identifier. Non-singleton activity types allow multiple concurrent instances that are identified by their instance id.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the cancellation has been requested successfully."
}
}
}
},
"/workspace/activities/errorReport" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "Activity error report",
"description" : "Get a detailed activity error report for a specific workspace, project or task activity.",
"operationId" : "activityErrorReport",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If empty or not provided, activities from all projects are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If empty or not provided, activities from all tasks are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Optional activity identifier. If empty or not provided, updates from all activities that match the task and project are returned.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"activityId" : "ExecuteDefaultWorkflow",
"errorMessage" : "Exception during execution of workflow operator 'Failing transform' (97477cbb-774a-4ad3-b7ef-3096521c7a58_Failingtransform). Cause: Unrecognized token 'name': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n at [Source: (BufferedInputStream); line: 1, column: 6]",
"errorSummary" : "Execution of activity 'ExecuteDefaultWorkflow' has failed.",
"projectId" : "02500aac-492e-45d0-ac3e-68a0da54f56d_Activityintegrationtestproject",
"projectLabel" : "Activity integration test project",
"stackTrace" : {
"cause" : {
"errorMessage" : "Unrecognized token 'name': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n at [Source: (BufferedInputStream); line: 1, column: 6]",
"lines" : [ "com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2337)", "com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:720)", "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:3593)", "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:3569)", "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._matchToken2(UTF8StreamJsonParser.java:2904)", "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._matchNull(UTF8StreamJsonParser.java:2875)", "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:849)", "com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:762)", "com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4684)", "com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:4561)", "com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2798)", "play.api.libs.json.jackson.JacksonJson$.parseJsValue(JacksonJson.scala:288)", "play.api.libs.json.StaticBinding$.parseJsValue(StaticBinding.scala:21)", "play.api.libs.json.Json$.parse(Json.scala:175)", "org.silkframework.plugins.dataset.json.JsonSource$.$anonfun$apply$1(JsonSource.scala:227)", "org.silkframework.runtime.resource.Resource.read(Resource.scala:59)", "org.silkframework.runtime.resource.Resource.read$(Resource.scala:56)", "org.silkframework.runtime.resource.FileResource.read(FileResource.scala:13)", "org.silkframework.plugins.dataset.json.JsonSource$.apply(JsonSource.scala:227)", "org.silkframework.plugins.dataset.json.JsonDataset.source(JsonDataset.scala:35)", "org.silkframework.dataset.DatasetSpec.source(DatasetSpec.scala:43)", "org.silkframework.execution.local.LocalDatasetExecutor.source$lzycompute$1(LocalDatasetExecutor.scala:29)", "org.silkframework.execution.local.LocalDatasetExecutor.source$1(LocalDatasetExecutor.scala:29)", "org.silkframework.execution.local.LocalDatasetExecutor.read(LocalDatasetExecutor.scala:40)", "org.silkframework.execution.local.LocalDatasetExecutor.read(LocalDatasetExecutor.scala:20)", "org.silkframework.execution.DatasetExecutor.$anonfun$execute$2(DatasetExecutor.scala:51)", "scala.Option.map(Option.scala:230)", "org.silkframework.execution.DatasetExecutor.execute(DatasetExecutor.scala:51)", "org.silkframework.execution.DatasetExecutor.execute$(DatasetExecutor.scala:39)", "org.silkframework.execution.local.LocalDatasetExecutor.execute(LocalDatasetExecutor.scala:20)", "org.silkframework.execution.ExecutorRegistry$.execute(ExecutorRegistry.scala:143)", "org.silkframework.workspace.activity.workflow.WorkflowExecutor.execute(WorkflowExecutor.scala:58)", "org.silkframework.workspace.activity.workflow.WorkflowExecutor.execute$(WorkflowExecutor.scala:49)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.execute(LocalWorkflowExecutor.scala:34)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.readFromDataset(LocalWorkflowExecutor.scala:271)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowDataset(LocalWorkflowExecutor.scala:230)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowNode(LocalWorkflowExecutor.scala:98)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowOperatorInput(LocalWorkflowExecutor.scala:111)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.$anonfun$executeWorkflowOperatorInputs$2(LocalWorkflowExecutor.scala:175)", "scala.collection.immutable.Stream$StreamWithFilter.map(Stream.scala:418)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowOperatorInputs(LocalWorkflowExecutor.scala:174)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowOperator(LocalWorkflowExecutor.scala:131)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowNode(LocalWorkflowExecutor.scala:100)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.$anonfun$runWorkflow$1(LocalWorkflowExecutor.scala:66)", "scala.collection.Iterator.foreach(Iterator.scala:943)", "scala.collection.Iterator.foreach$(Iterator.scala:943)", "scala.collection.AbstractIterator.foreach(Iterator.scala:1431)", "scala.collection.IterableLike.foreach(IterableLike.scala:74)", "scala.collection.IterableLike.foreach$(IterableLike.scala:73)", "scala.collection.AbstractIterable.foreach(Iterable.scala:56)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.runWorkflow(LocalWorkflowExecutor.scala:65)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.run(LocalWorkflowExecutor.scala:50)", "org.silkframework.runtime.activity.ActivityExecution.org$silkframework$runtime$activity$ActivityExecution$$runActivity(ActivityExecution.scala:159)", "org.silkframework.runtime.activity.ActivityExecution$ForkJoinRunner.exec(ActivityExecution.scala:218)", "java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)", "java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)", "java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)", "java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)", "java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)" ]
},
"errorMessage" : "Exception during execution of workflow operator 'Failing transform' (97477cbb-774a-4ad3-b7ef-3096521c7a58_Failingtransform). Cause: Unrecognized token 'name': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n at [Source: (BufferedInputStream); line: 1, column: 6]",
"lines" : [ "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowOperator(LocalWorkflowExecutor.scala:159)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowNode(LocalWorkflowExecutor.scala:100)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.$anonfun$runWorkflow$1(LocalWorkflowExecutor.scala:66)", "scala.collection.Iterator.foreach(Iterator.scala:943)", "scala.collection.Iterator.foreach$(Iterator.scala:943)", "scala.collection.AbstractIterator.foreach(Iterator.scala:1431)", "scala.collection.IterableLike.foreach(IterableLike.scala:74)", "scala.collection.IterableLike.foreach$(IterableLike.scala:73)", "scala.collection.AbstractIterable.foreach(Iterable.scala:56)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.runWorkflow(LocalWorkflowExecutor.scala:65)", "org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.run(LocalWorkflowExecutor.scala:50)", "org.silkframework.runtime.activity.ActivityExecution.org$silkframework$runtime$activity$ActivityExecution$$runActivity(ActivityExecution.scala:159)", "org.silkframework.runtime.activity.ActivityExecution$ForkJoinRunner.exec(ActivityExecution.scala:218)", "java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)", "java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)", "java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)", "java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)", "java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)" ]
},
"taskId" : "5c1b7553-5b3d-4533-9d0d-35f2e1fc506e_Failingworkflow",
"taskLabel" : "Failing workflow"
}
},
"text/markdown" : {
"example" : "\r\n# Activity execution error report\r\n\r\nExecution of activity 'ExecuteDefaultWorkflow' in project 'Activity integration test project' of task 'Failing workflow' has failed.\r\n\r\n## Details\r\n\r\n* Error summary: Execution of activity 'ExecuteDefaultWorkflow' has failed.\r\n* Project ID: 02500aac-492e-45d0-ac3e-68a0da54f56d_Activityintegrationtestproject\r\n* Project label: Activity integration test project\r\n* Task ID: 5c1b7553-5b3d-4533-9d0d-35f2e1fc506e_Failingworkflow\r\n* Task label: Failing workflow\r\n* Activity ID: ExecuteDefaultWorkflow\r\n* Error message: `Exception during execution of workflow operator 'Failing transform' (97477cbb-774a-4ad3-b7ef-3096521c7a58_Failingtransform). Cause: Unrecognized token 'name': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (BufferedInputStream); line: 1, column: 6]`\r\n* Cause error messages:\r\n - Unrecognized token 'name': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (BufferedInputStream); line: 1, column: 6]\r\n* Stacktrace:\r\n ```\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowOperator(LocalWorkflowExecutor.scala:159)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowNode(LocalWorkflowExecutor.scala:100)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.$anonfun$runWorkflow$1(LocalWorkflowExecutor.scala:66)\r\n scala.collection.Iterator.foreach(Iterator.scala:943)\r\n scala.collection.Iterator.foreach$(Iterator.scala:943)\r\n scala.collection.AbstractIterator.foreach(Iterator.scala:1431)\r\n scala.collection.IterableLike.foreach(IterableLike.scala:74)\r\n scala.collection.IterableLike.foreach$(IterableLike.scala:73)\r\n scala.collection.AbstractIterable.foreach(Iterable.scala:56)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.runWorkflow(LocalWorkflowExecutor.scala:65)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.run(LocalWorkflowExecutor.scala:50)\r\n org.silkframework.runtime.activity.ActivityExecution.org$silkframework$runtime$activity$ActivityExecution$$runActivity(ActivityExecution.scala:159)\r\n org.silkframework.runtime.activity.ActivityExecution$ForkJoinRunner.exec(ActivityExecution.scala:218)\r\n java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)\r\n java.base/java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:396)\r\n java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:721)\r\n org.silkframework.runtime.activity.ActivityExecution.$anonfun$waitUntilFinished$1(ActivityExecution.scala:134)\r\n org.silkframework.runtime.activity.ActivityExecution.$anonfun$waitUntilFinished$1$adapted(ActivityExecution.scala:132)\r\n scala.Option.foreach(Option.scala:407)\r\n org.silkframework.runtime.activity.ActivityExecution.waitUntilFinished(ActivityExecution.scala:132)\r\n org.silkframework.workspace.activity.workflow.WorkflowExecutorGeneratingProvenance.run(WorkflowExecutorGeneratingProvenance.scala:34)\r\n org.silkframework.workspace.activity.workflow.WorkflowExecutorGeneratingProvenance.run$(WorkflowExecutorGeneratingProvenance.scala:22)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutorGeneratingProvenance.run(LocalWorkflowExecutorGeneratingProvenance.scala:10)\r\n org.silkframework.runtime.activity.ActivityExecution.org$silkframework$runtime$activity$ActivityExecution$$runActivity(ActivityExecution.scala:159)\r\n org.silkframework.runtime.activity.ActivityExecution$ForkJoinRunner.exec(ActivityExecution.scala:218)\r\n java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)\r\n java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)\r\n java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)\r\n java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)\r\n java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)\r\nCause: Unrecognized token 'name': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (BufferedInputStream); line: 1, column: 6]\r\n com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2337)\r\n com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:720)\r\n com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:3593)\r\n com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:3569)\r\n com.fasterxml.jackson.core.json.UTF8StreamJsonParser._matchToken2(UTF8StreamJsonParser.java:2904)\r\n com.fasterxml.jackson.core.json.UTF8StreamJsonParser._matchNull(UTF8StreamJsonParser.java:2875)\r\n com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:849)\r\n com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:762)\r\n com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4684)\r\n com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:4561)\r\n com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2798)\r\n play.api.libs.json.jackson.JacksonJson$.parseJsValue(JacksonJson.scala:288)\r\n play.api.libs.json.StaticBinding$.parseJsValue(StaticBinding.scala:21)\r\n play.api.libs.json.Json$.parse(Json.scala:175)\r\n org.silkframework.plugins.dataset.json.JsonSource$.$anonfun$apply$1(JsonSource.scala:227)\r\n org.silkframework.runtime.resource.Resource.read(Resource.scala:59)\r\n org.silkframework.runtime.resource.Resource.read$(Resource.scala:56)\r\n org.silkframework.runtime.resource.FileResource.read(FileResource.scala:13)\r\n org.silkframework.plugins.dataset.json.JsonSource$.apply(JsonSource.scala:227)\r\n org.silkframework.plugins.dataset.json.JsonDataset.source(JsonDataset.scala:35)\r\n org.silkframework.dataset.DatasetSpec.source(DatasetSpec.scala:43)\r\n org.silkframework.execution.local.LocalDatasetExecutor.source$lzycompute$1(LocalDatasetExecutor.scala:29)\r\n org.silkframework.execution.local.LocalDatasetExecutor.source$1(LocalDatasetExecutor.scala:29)\r\n org.silkframework.execution.local.LocalDatasetExecutor.read(LocalDatasetExecutor.scala:40)\r\n org.silkframework.execution.local.LocalDatasetExecutor.read(LocalDatasetExecutor.scala:20)\r\n org.silkframework.execution.DatasetExecutor.$anonfun$execute$2(DatasetExecutor.scala:51)\r\n scala.Option.map(Option.scala:230)\r\n org.silkframework.execution.DatasetExecutor.execute(DatasetExecutor.scala:51)\r\n org.silkframework.execution.DatasetExecutor.execute$(DatasetExecutor.scala:39)\r\n org.silkframework.execution.local.LocalDatasetExecutor.execute(LocalDatasetExecutor.scala:20)\r\n org.silkframework.execution.ExecutorRegistry$.execute(ExecutorRegistry.scala:143)\r\n org.silkframework.workspace.activity.workflow.WorkflowExecutor.execute(WorkflowExecutor.scala:58)\r\n org.silkframework.workspace.activity.workflow.WorkflowExecutor.execute$(WorkflowExecutor.scala:49)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.execute(LocalWorkflowExecutor.scala:34)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.readFromDataset(LocalWorkflowExecutor.scala:271)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowDataset(LocalWorkflowExecutor.scala:230)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowNode(LocalWorkflowExecutor.scala:98)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowOperatorInput(LocalWorkflowExecutor.scala:111)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.$anonfun$executeWorkflowOperatorInputs$2(LocalWorkflowExecutor.scala:175)\r\n scala.collection.immutable.Stream$StreamWithFilter.map(Stream.scala:418)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowOperatorInputs(LocalWorkflowExecutor.scala:174)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowOperator(LocalWorkflowExecutor.scala:131)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.executeWorkflowNode(LocalWorkflowExecutor.scala:100)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.$anonfun$runWorkflow$1(LocalWorkflowExecutor.scala:66)\r\n scala.collection.Iterator.foreach(Iterator.scala:943)\r\n scala.collection.Iterator.foreach$(Iterator.scala:943)\r\n scala.collection.AbstractIterator.foreach(Iterator.scala:1431)\r\n scala.collection.IterableLike.foreach(IterableLike.scala:74)\r\n scala.collection.IterableLike.foreach$(IterableLike.scala:73)\r\n scala.collection.AbstractIterable.foreach(Iterable.scala:56)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.runWorkflow(LocalWorkflowExecutor.scala:65)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutor.run(LocalWorkflowExecutor.scala:50)\r\n org.silkframework.runtime.activity.ActivityExecution.org$silkframework$runtime$activity$ActivityExecution$$runActivity(ActivityExecution.scala:159)\r\n org.silkframework.runtime.activity.ActivityExecution$ForkJoinRunner.exec(ActivityExecution.scala:218)\r\n java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)\r\n java.base/java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:396)\r\n java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:721)\r\n org.silkframework.runtime.activity.ActivityExecution.$anonfun$waitUntilFinished$1(ActivityExecution.scala:134)\r\n org.silkframework.runtime.activity.ActivityExecution.$anonfun$waitUntilFinished$1$adapted(ActivityExecution.scala:132)\r\n scala.Option.foreach(Option.scala:407)\r\n org.silkframework.runtime.activity.ActivityExecution.waitUntilFinished(ActivityExecution.scala:132)\r\n org.silkframework.workspace.activity.workflow.WorkflowExecutorGeneratingProvenance.run(WorkflowExecutorGeneratingProvenance.scala:34)\r\n org.silkframework.workspace.activity.workflow.WorkflowExecutorGeneratingProvenance.run$(WorkflowExecutorGeneratingProvenance.scala:22)\r\n org.silkframework.workspace.activity.workflow.LocalWorkflowExecutorGeneratingProvenance.run(LocalWorkflowExecutorGeneratingProvenance.scala:10)\r\n org.silkframework.runtime.activity.ActivityExecution.org$silkframework$runtime$activity$ActivityExecution$$runActivity(ActivityExecution.scala:159)\r\n org.silkframework.runtime.activity.ActivityExecution$ForkJoinRunner.exec(ActivityExecution.scala:218)\r\n java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)\r\n java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)\r\n java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)\r\n java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)\r\n java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)\r\n ```\r\n "
}
}
},
"404" : {
"description" : "If the activity does not exist or there is no error report because the activity has not failed executing."
},
"400" : {
"description" : "If the parameter combination is invalid."
}
}
}
},
"/workspace/activities/list" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "List activities",
"description" : "Lists either global, project or task activities.",
"operationId" : "listActivities",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If not provided or empty, global activities will be listed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If not provided or empty, project activities will be listed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "add dependent activities",
"in" : "query",
"description" : "Optional parameter to also request activities that a task depends on.",
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/ActivityListEntry"
}
},
"example" : [ {
"instances" : [ {
"id" : "GlobalVocabularyCache"
} ],
"name" : "GlobalVocabularyCache"
} ]
}
}
}
}
}
},
"/workspace/activities/start" : {
"post" : {
"tags" : [ "Activities" ],
"summary" : "Start activity (non-blocking)",
"description" : "Starts an activity. The call returns immediately without waiting for the activity to complete.",
"operationId" : "startActivity",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If not provided or empty, global activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If not provided or empty, project activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Activity name.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "Optionally updates configuration parameters, before starting the activity.",
"content" : {
"application/x-www-form-urlencoded" : {
"schema" : {
"type" : "string"
},
"example" : "param1=value1¶m2=value2"
}
}
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StartActivityResponse"
}
}
}
},
"503" : {
"description" : "Activity execution could not be started because concurrent execution limit is reached."
}
}
}
},
"/workspace/activities/startBlocking" : {
"post" : {
"tags" : [ "Activities" ],
"summary" : "Start activity (blocking)",
"description" : "Starts the activity and returns after it has completed.",
"operationId" : "startActivityBlocking",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If not provided or empty, global activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If not provided or empty, project activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Activity name.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "Optionally updates configuration parameters, before starting the activity.",
"content" : {
"application/x-www-form-urlencoded" : {
"schema" : {
"type" : "string"
},
"example" : "param1=value1¶m2=value2"
}
}
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StartActivityResponse"
}
}
}
},
"503" : {
"description" : "Activity execution could not be started because concurrent execution limit is reached."
}
}
}
},
"/workspace/activities/startPrioritized" : {
"post" : {
"tags" : [ "Activities" ],
"summary" : "Start activity prioritized (non-blocking)",
"description" : "Starts this activity immediately.\r\nIf the activity has already been started, but is not being executed yet, it will skip the waiting queue.\r\nPrioritized activities will not take a slot in the fork join pool. The call returns immediately without waiting for the activity to complete.",
"operationId" : "startPrioritized",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If not provided or empty, global activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If not provided or empty, project activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Activity name.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StartActivityResponse"
}
}
}
}
}
}
},
"/workspace/activities/status" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "Get activity status",
"description" : "Retrieves the status of a single activity.\r\n\r\nAn activity may have the following status names:\r\n\r\n* *Idle* if the activity has not been started yet.\r\n* *Waiting* if the activity has been started and is waiting to be executed.\r\n* *Running* if the activity is currently being executed.\r\n* *Canceling* if the activity has been requested to stop but has not stopped yet.\r\n* *Finished* if the activity has finished execution, either successfully or failed.\r\n\r\nOnce an activity has been started using the API, the activity transitions to the *Waiting* status and the *isRunning* field switches to *true*.\r\nIt will remain in *Waiting* until the execution starts when it transitions to the *Running* status.\r\nIf a user cancels the activity during execution, it will transition to *Canceling* and remain there until it actually stops execution.\r\nWhen the execution finished it transitions to the *Finished* status and *isRunning* switches to *false*.\r\nIf the activity execution failed, *failed* will be set to true once the *Finished* status has been reached.\r\n\r\nWhile running, the progress is tracked by the *progress* field (0 to 100 percent).\r\n ",
"operationId" : "getActivityStatus",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If not provided or empty, global activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If not provided or empty, project activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Activity name.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "instance",
"in" : "query",
"description" : "Optional activity instance identifier. Non-singleton activity types allow multiple concurrent instances that are identified by their instance id.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"project" : "project name",
"task" : "transformation1",
"activity" : "transform",
"statusName" : "...",
"isRunning" : true,
"progress" : 85.2,
"message" : "...",
"failed" : false,
"lastUpdateTime" : 1503998693958,
"startTime" : 1503998693001
}
}
}
}
}
}
},
"/workspace/activities/updates" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "Get activity status updates",
"description" : "Request updates on the status of one or many activities.",
"operationId" : "getActivityStatusUpdates",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If empty or not provided, activities from all projects are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If empty or not provided, activities from all tasks are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Optional activity identifier. If empty or not provided, updates from all activities that match the task and project are returned.",
"schema" : {
"type" : "string"
}
}, {
"name" : "instance",
"in" : "query",
"description" : "Optional activity instance identifier. Non-singleton activity types allow multiple concurrent instances that are identified by their instance id.",
"schema" : {
"type" : "string"
}
}, {
"name" : "timestamp",
"in" : "query",
"description" : "Only return status updates that happened after this timestamp. Provided in milliseconds since midnight, January 1, 1970 UTC. If not provided or 0, the stati of all matching activities are returned.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { }
}
}
}
}
},
"/workspace/activities/updatesWebSocket" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "Get activity status updates (websocket)",
"description" : "Request updates on the status of one or many activities.",
"operationId" : "activityStatusUpdatesWebSocket",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If empty or not provided, activities from all projects are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If empty or not provided, activities from all tasks are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Optional activity identifier. If empty or not provided, updates from all activities that match the task and project are returned.",
"schema" : {
"type" : "string"
}
}, {
"name" : "instance",
"in" : "query",
"description" : "Optional activity instance identifier. Non-singleton activity types allow multiple concurrent instances that are identified by their instance id.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { }
}
}
}
}
},
"/workspace/activities/value" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "Get activity value",
"description" : "Retrieves the current value of this activity, if any.",
"operationId" : "getActivityValue",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If not provided or empty, global activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If not provided or empty, project activities will be addressed.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Activity name.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "instance",
"in" : "query",
"description" : "Optional activity instance identifier. Non-singleton activity types allow multiple concurrent instances that are identified by their instance id.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The activity value. The ACCEPT header controls the serialization format (typically JSON or XML)."
},
"406" : {
"description" : "No serializer is registered for the requested format."
}
}
}
},
"/workspace/activities/valueUpdates" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "Get activity value updates",
"description" : "Request updates on the values of one or many activities.",
"operationId" : "getActivityValueUpdates",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If empty or not provided, activities from all projects are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If empty or not provided, activities from all tasks are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Optional activity identifier. If empty or not provided, updates from all activities that match the task and project are returned.",
"schema" : {
"type" : "string"
}
}, {
"name" : "instance",
"in" : "query",
"description" : "Optional activity instance identifier. Non-singleton activity types allow multiple concurrent instances that are identified by their instance id.",
"schema" : {
"type" : "string"
}
}, {
"name" : "timestamp",
"in" : "query",
"description" : "Only return status updates that happened after this timestamp. Provided in milliseconds since midnight, January 1, 1970 UTC. If not provided or 0, the stati of all matching activities are returned.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { }
}
}
}
}
},
"/workspace/activities/valueUpdatesWebSocket" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "Get activity value updates (websocket)",
"description" : "Request updates on the values of one or many activities.",
"operationId" : "activityValuesUpdatesWebSocket",
"parameters" : [ {
"name" : "project",
"in" : "query",
"description" : "Optional project identifier. If empty or not provided, activities from all projects are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "query",
"description" : "Optional task identifier. If empty or not provided, activities from all tasks are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "activity",
"in" : "query",
"description" : "Optional activity identifier. If empty or not provided, updates from all activities that match the task and project are returned.",
"schema" : {
"type" : "string"
}
}, {
"name" : "instance",
"in" : "query",
"description" : "Optional activity instance identifier. Non-singleton activity types allow multiple concurrent instances that are identified by their instance id.",
"schema" : {
"type" : "string"
}
}, {
"name" : "minIntervalMs",
"in" : "query",
"description" : "Minimum number of milliseconds between updates.",
"schema" : {
"type" : "string",
"default" : "1000"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { }
}
}
}
}
},
"/workspace/export/{exportPlugin}" : {
"get" : {
"tags" : [ "Project import/export" ],
"summary" : "Export workspace",
"description" : "Exports the entire workspace with the specified marshalling plugin.",
"operationId" : "exportWorkspaceViaPlugin",
"parameters" : [ {
"name" : "exportPlugin",
"in" : "path",
"description" : "The marshalling format. One of the ids returned from the `marshallingPlugins` endpoint.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The response contains the exported workspace."
}
}
}
},
"/workspace/import/{importPlugin}" : {
"post" : {
"tags" : [ "Project import/export" ],
"summary" : "Import workspace",
"description" : "Imports the entire workspace from the file send with the request. Before importing all existing projects will be removed from the workspace.",
"operationId" : "importWorkspaceViaPlugin",
"parameters" : [ {
"name" : "importPlugin",
"in" : "path",
"description" : "The marshalling format. One of the ids returned from the `marshallingPlugins` endpoint.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The workspace file to be imported.",
"content" : {
"multipart/form-data" : {
"schema" : {
"$ref" : "#/components/schemas/FileMultiPartRequest"
}
},
"application/octet-stream" : { }
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the import succeeded"
}
}
}
},
"/api/workspace/initFrontend" : {
"get" : {
"tags" : [ "Workbench" ],
"summary" : "Init frontend",
"description" : "Returns information that is necessary for the frontend initialization or otherwise needed from the beginning on.",
"operationId" : "init",
"responses" : {
"200" : {
"description" : "The `emptyWorkspace` parameter signals if the workspace is empty or contains at least one project. The `initialLangauge` parameter returns the initial language (either 'de' or 'en') that has been extracted from the Accept-language HTTP header send by the browser. The `maxFileUploadSize` specifies the max. file size in bytes. The `dmBaseUrl` is optional and returns the base URL, if configured in the DI config via parameter eccencaDataManager.baseUrl. The `dmModuleLinks` are only available if the DM base URL is defined. These are configured links to DM modules.",
"content" : {
"application/json" : {
"example" : {
"emptyWorkspace" : true,
"initialLanguage" : "en",
"dmBaseUrl" : "http://docker.local",
"maxFileUploadSize" : 1000000000,
"templatingEnabled" : true,
"version" : "v21.11",
"dmModuleLinks" : [ {
"defaultLabel" : "Exploration",
"icon" : "application-explore",
"path" : "explore"
}, {
"defaultLabel" : "Vocabulary Management",
"icon" : "application-vocabularies",
"path" : "vocab"
}, {
"defaultLabel" : "Queries",
"icon" : "application-queries",
"path" : "query"
} ]
}
}
}
}
}
}
},
"/workspace/marshallingPlugins" : {
"get" : {
"tags" : [ "Project import/export" ],
"summary" : "Marshalling plugins",
"description" : "Returns a list of supported workspace/project import/export plugins, e.g. RDF, XML.",
"operationId" : "availableMarshallingPlugins",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"id" : "rdfTurtle",
"label" : "RDF Turtle",
"description" : "RDF Turtle meta data without resource files.",
"fileExtension" : "ttl",
"mediaType" : "text/turtle"
}, {
"id" : "xmlZip",
"label" : "XML/ZIP file",
"description" : "ZIP archive, which includes XML meta data and resource files.",
"fileExtension" : "zip",
"mediaType" : "application/zip"
} ]
}
}
}
}
}
},
"/api/workspace/pluginParameterAutoCompletion" : {
"post" : {
"tags" : [ "Search" ],
"summary" : "Plugin parameter auto-completion",
"description" : "Auto-completion endpoint for plugin parameter values.",
"operationId" : "parameterAutoCompletion",
"requestBody" : {
"description" : "The 'pluginId' and 'parameterId' reference the parameter of a plugin, they values can be read e.g. from the /plugins endpoint.\r\n The 'projectId' provides the project context for parameters that hold values that are project specific, e.g. task references.\r\n The 'dependsOnParameterValues' parameter contains all the values of other parameters this auto-completion depends on. E.g. if a\r\n plugin has a parameter 'project' and 'projectTask', the 'projectTask' parameter may depend on 'project',\r\n because only when the project is known then the auto-completion of project tasks can be performed. The list\r\n of parameters are returned in the plugin parameter description.\r\n The 'textQuery' parameter is a conjunctive multi word query matching against the possible results.\r\n The 'offset' and 'limit' parameters allow for paging through the result list.\r\n ",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ParameterAutoCompletionRequest"
},
"example" : {
"pluginId" : "Scheduler",
"parameterId" : "task",
"projectId" : "cmem",
"dependsOnParameterValues" : [ "value the auto-completion depends on" ],
"textQuery" : "sched",
"offset" : 0,
"limit" : 10
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "The response contains the result list of matching auto-completion results. The 'label' property is optional and may not be defined, even for parameters that are supposed to have labels. In this case the 'value' should be taken as label.",
"content" : {
"application/json" : {
"example" : [ {
"label" : "Scheduled workflow 1",
"value" : "workflow1"
}, {
"value" : "workflow2"
} ]
}
}
}
}
}
},
"/api/workspace/projectImport" : {
"post" : {
"tags" : [ "Project import/export" ],
"summary" : "Project import resources",
"description" : "Project import resources are used for a multi step project import procedure that is comprised of multiple steps: 1. the project file upload, 2. the validation of the uploaded file, 3. the asynchronous execution of the project import and 4. the status of the running project import execution.",
"operationId" : "uploadProjectArchiveFile",
"requestBody" : {
"content" : {
"multipart/form-data" : {
"schema" : {
"$ref" : "#/components/schemas/FileMultiPartRequest"
}
},
"application/octet-stream" : { },
"text/plain" : { }
}
},
"responses" : {
"201" : {
"description" : "A project import resource with the returned ID has been created.",
"content" : {
"application/json" : {
"example" : {
"projectImportId" : "di-projectImport5196140007678722748"
}
}
}
}
}
}
},
"/api/workspace/projectImport/{projectImportId}" : {
"get" : {
"tags" : [ "Project import/export" ],
"summary" : "Project import details",
"description" : "The project import resource that was created by uploading a project file.",
"operationId" : "projectImportDetails",
"parameters" : [ {
"name" : "projectImportId",
"in" : "path",
"description" : "The project import id.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Details for the uploaded project file. The label, description and projectId properties were extracted from the uploaded file. The projectAlreadyExists property states that there already exists a project with the exact same ID. In that case special flags can be set for the subsequent request that starts the project import execution. The marshallerId is the detected project file format, in the example it is a project XML ZIP archive.",
"content" : {
"application/json" : {
"example" : {
"description" : "Config project description",
"label" : "Config Project",
"marshallerId" : "xmlZip",
"projectAlreadyExists" : true,
"projectId" : "configProject"
}
}
}
},
"404" : {
"description" : "If the provided import identifier does not exist."
}
}
},
"post" : {
"tags" : [ "Project import/export" ],
"summary" : "Start project import",
"description" : "Starts a project import based on the import identifier.",
"operationId" : "startProjectImport",
"parameters" : [ {
"name" : "projectImportId",
"in" : "path",
"description" : "The project import id.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "generateNewId",
"in" : "query",
"description" : "When enabled this will always generate a new ID for this project based on the project label. This is one strategy if a project with the original ID already exists.",
"schema" : {
"type" : "boolean"
}
}, {
"name" : "overwriteExisting",
"in" : "query",
"description" : "When enabled this will overwrite an existing project with the same ID. Enabling this option will NOT override the generateNewId option.",
"schema" : {
"type" : "boolean"
}
}, {
"name" : "newProjectId",
"in" : "query",
"description" : "If provided, this will adopt the given id for the imported project. Cannot be set together with 'generateNewId'.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"201" : {
"description" : "The project import has been executed. The status of the project import can be requested via the status endpoint.",
"content" : {
"application/json" : {
"example" : {
"projectId" : "1e813497-0c75-48cf-a857-2ddc3f94fe26_ConfigProject",
"importStarted" : 1600950697304,
"importEnded" : 1600950697497,
"success" : false,
"failureMessage" : "Exception during..."
}
}
}
},
"404" : {
"description" : "The execution has not been started, yet, or the project import ID is not known."
},
"409" : {
"description" : "Returned if a project with the same ID already exists and neither generateNewId nor overwriteExisting is enabled. Also returned if the uploaded temporary project file has been deleted because it reached its max age."
}
}
},
"delete" : {
"tags" : [ "Project import/export" ],
"summary" : "Remove project import resource",
"description" : "Deletes the project import resource and the uploaded files. The delete request is idempotent.",
"operationId" : "removeProjectImport",
"parameters" : [ {
"name" : "projectImportId",
"in" : "path",
"description" : "The project import id.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"404" : {
"description" : "If the provided import identifier does not exist."
}
}
}
},
"/api/workspace/projectImport/{projectImportId}/status" : {
"get" : {
"tags" : [ "Project import/export" ],
"summary" : "Project import execution status",
"description" : "When the project import execution has been started, this will return the status of the project execution.",
"operationId" : "projectImportExecutionStatus",
"parameters" : [ {
"name" : "projectImportId",
"in" : "path",
"description" : "The project import id.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "timeout",
"in" : "query",
"description" : "The timeout in milliseconds when this call should return if the execution is not finished, yet. This allow for long-polling the result.",
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"200" : {
"description" : "The status of the project execution. There are 3 types of responses: 1. The execution is still in progress, i.e. no 'success' property is defined. 2. The 'success' property is defined and set to true, which means that the import has been successful. 3. The 'success' property is defined and set to false, which means that the import has failed. The 'failureMessage' property gives the reason for the failure.",
"content" : {
"application/json" : {
"example" : {
"projectId" : "1e813497-0c75-48cf-a857-2ddc3f94fe26_ConfigProject",
"importStarted" : 1600950697304,
"importEnded" : 1600950697497,
"success" : false,
"failureMessage" : "Exception during..."
}
}
}
},
"404" : {
"description" : "The execution has not been started, yet, or the project import ID is not known."
}
}
}
},
"/api/workspace/projects" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Create project",
"description" : "Create a new project by specifying a label and an optional description.",
"operationId" : "createNewProject",
"requestBody" : {
"description" : "Project metadata",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ProjectCreationData"
},
"example" : "{ \"id\": \"Project id\" \"metaData\": { \"label\": \"Project label\", \"description\": \"Project description\" } }"
}
},
"required" : true
},
"responses" : {
"201" : {
"description" : "The project has been added. The URI of the new project is returned, which includes the automatically generated project ID.",
"headers" : {
"Location" : {
"description" : "The URI of the new project",
"style" : "simple",
"schema" : {
"example" : "/api/workspace/projects/projectx42"
}
}
}
}
}
}
},
"/workspace/projects" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "List projects",
"description" : "Get a list with all projects.",
"operationId" : "projects",
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"name" : "example_project",
"tasks" : {
"dataset" : [ "dataset1", "dataset2" ],
"transform" : [ "transformation1" ],
"linking" : [ ],
"workflow" : [ "workflow1" ],
"custom" : [ ]
}
}, {
"name" : "lending",
"tasks" : {
"dataset" : [ "cmem", "links", "loans_csv", "output_csv", "unemployment_csv" ],
"transform" : [ "generateOutput", "transform_loans", "transform_loans_csv", "transform_unemployment" ],
"linking" : [ "link_loans_unemployment", "linkingtest" ],
"workflow" : [ "workflow1" ],
"custom" : [ ]
}
} ]
}
}
}
}
}
},
"/api/workspace/projects/validateIdentifier" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "validates custom project id",
"description" : "Receives a custom ID and checks for uniqueness and validity.",
"operationId" : "validateIdentifier",
"parameters" : [ {
"name" : "identifier",
"in" : "query",
"description" : "the custom project id set by the user",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"204" : {
"description" : "The custom ID is both valid and unique."
},
"400" : {
"description" : "The custom ID is not valid."
},
"409" : {
"description" : "The custom ID isn't unique, i.e, there is an existing project with the same ID."
}
}
}
},
"/api/workspace/projects/{projectId}/clone" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Clone project",
"description" : "Clones an existing project.",
"operationId" : "cloneProject",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The identifier of the project that is to be cloned",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The generated ID and the link to the project details page.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ItemCloneRequest"
},
"example" : {
"metaData" : {
"label" : "New project",
"description" : "Optional description"
}
}
}
},
"required" : true
},
"responses" : {
"201" : {
"description" : "The body contains the meta data of the to be created project. The label is required and must not be empty. The description is optional.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ItemCloneResponse"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/datasets/{datasetId}/characteristics" : {
"get" : {
"tags" : [ "Datasets" ],
"summary" : "Retrieve dataset characteristics",
"description" : "Retrieve the characteristics of a dataset.",
"operationId" : "datasetCharacteristics",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "datasetId",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : "\r\n TODO\r\n "
}
}
},
"404" : {
"description" : "If the specified project or dataset has not been found."
}
}
}
},
"/api/workspace/projects/{projectId}/dataset/autoConfigure" : {
"post" : {
"tags" : [ "Project tasks" ],
"summary" : "Auto-configure dataset",
"description" : "Retrieve an auto-configured version of the dataset that was send with the request.",
"operationId" : "postDatasetAutoConfigured",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"id" : "DatasetName",
"data" : {
"type" : "file",
"parameters" : {
"file" : "dataset.nt",
"format" : "N-TRIPLE"
}
}
}
},
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n \r\n "
}
}
},
"400" : {
"description" : "If the dataset type does not support auto-configuration."
}
}
}
},
"/api/workspace/projects/{projectId}/failedTaskParameters/{taskId}" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "Failed tasks parameters values",
"description" : "Get the parameters of a failed task if available. Only simple parameters are returned.",
"operationId" : "failedTaskParameterValues",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"paramA" : "New value",
"paramB" : {
"nestedParameter" : "New nested value"
}
}
}
}
},
"404" : {
"description" : "If the project or failed task does not exist or no parameter values were found."
}
}
}
},
"/api/workspace/projects/{projectId}/failedTasksReport" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "Project tasks loading error report",
"description" : "Get a detailed loading error report for all tasks that could not be loaded in a project.",
"operationId" : "projectTasksLoadingErrorReport",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"taskId" : "transformsourcex",
"errorSummary" : "Loading failed: Transform source X",
"taskLabel" : "Transform source X",
"taskDescription" : "Transforms source X to ...",
"errorMessage" : "Loading of task 'Transform source X' failed because input 'some_missing_input' could not be found.",
"stacktrace" : "... ..."
} ]
},
"text/markdown" : {
"example" : "\r\n# Project task loading error report\r\n\r\nIn project 'cmem' 2 tasks could not be loaded.\r\n\r\n## Task 1: Transform source X\r\n\r\n* Task ID: transformsourcex\r\n* Error summary: Loading failed: Transform source X,\r\n* Task label: Transform source X\r\n* Task description: Transforms source X to ...\r\n* Error message: Loading of task 'Transform source X' failed because input 'some_missing_input' could not be found.\r\n* Stacktrace:\r\n```\r\n SUPER LONG JVM STACKTRACE\r\n ```\r\n"
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/failedTasksReport/{taskId}" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "Project task loading error report",
"description" : "Get a detailed loading error report for a specific project task that could not be loaded in the project.",
"operationId" : "projectTaskLoadingErrorReport",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"taskId" : "transformsourcex",
"errorSummary" : "Loading failed: Transform source X",
"taskLabel" : "Transform source X",
"taskDescription" : "Transforms source X to ...",
"errorMessage" : "Loading of task 'Transform source X' failed because input 'some_missing_input' could not be found.",
"stacktrace" : "... ..."
} ]
},
"text/markdown" : {
"example" : "\r\n# Project task loading error report\r\n\r\nIn project 'cmem' 2 tasks could not be loaded.\r\n\r\n## Task 1: Transform source X\r\n\r\n* Task ID: transformsourcex\r\n* Error summary: Loading failed: Transform source X,\r\n* Task label: Transform source X\r\n* Task description: Transforms source X to ...\r\n* Error message: Loading of task 'Transform source X' failed because input 'some_missing_input' could not be found.\r\n* Stacktrace:\r\n```\r\n SUPER LONG JVM STACKTRACE\r\n ```\r\n"
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/metaData" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "Retrieve project metadata",
"description" : "Metadata of the project, such as the label and description.",
"operationId" : "getProjectMetaData",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MetaDataPlain"
},
"example" : {
"label" : "New label",
"description" : "New description",
"modified" : "2020-04-29T13:51:00.349Z"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
},
"put" : {
"tags" : [ "Projects" ],
"summary" : "Update project metadata",
"description" : "Update the meta data of the project, i.e. the label and description.",
"operationId" : "updateProjectMetaData",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "Updated meta data of the project, i.e. the label and description.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ItemMetaData"
},
"example" : {
"label" : "New label",
"description" : "New description"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MetaDataPlain"
},
"example" : {
"label" : "New label",
"description" : "New description",
"modified" : "2020-04-29T13:51:00.349Z"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/metaDataExpanded" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "Retrieve expanded project metadata",
"description" : "Metadata of the project, such as the label and description.",
"operationId" : "getProjectMetaDataExpanded",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MetaDataExpanded"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/prefixes" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "Project prefixes",
"description" : "Project namespace prefix definitions that map from a prefix name to a URI prefix.",
"operationId" : "fetchProjectPrefixes",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"foaf" : "http://xmlns.com/foaf/0.1/",
"customPrefix" : "http://customPrefix.cc/"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/prefixes/{prefixName}" : {
"put" : {
"tags" : [ "Projects" ],
"summary" : "Add project prefix",
"description" : "Create or update the prefix URI for a specific prefix name.",
"operationId" : "addProjectPrefix",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "prefixName",
"in" : "path",
"description" : "The prefix name",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The prefix URI.",
"content" : {
"application/json" : {
"schema" : {
"type" : "string"
},
"example" : "\"http://custom.prefix/\""
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"foaf" : "http://xmlns.com/foaf/0.1/",
"customPrefix" : "http://customPrefix.cc/"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
},
"delete" : {
"tags" : [ "Projects" ],
"summary" : "Remove project prefix",
"description" : "Deletes a prefix definition.",
"operationId" : "deleteProjectPrefix",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "prefixName",
"in" : "path",
"description" : "The prefix name",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The prefix has been removed.",
"content" : {
"application/json" : {
"example" : {
"rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"foaf" : "http://xmlns.com/foaf/0.1/"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/reloadFailedTask" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Reload failed task",
"description" : "Reload a task that has failed loading before. It is possible to overwrite some of the original parameters of the task.",
"operationId" : "reloadFailedTask",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "Request to reload a failed task.",
"content" : {
"application/json" : {
"schema" : {
"required" : [ "taskId" ],
"type" : "object"
},
"example" : {
"taskId" : "",
"parameterValues" : {
"parameters" : {
"paramA" : "New value",
"paramB" : {
"nestedParameter" : "New nested value"
}
},
"templates" : {
"paramB" : "Template value {{variable}}"
}
}
}
}
}
},
"responses" : {
"204" : {
"description" : "Success"
}
}
}
},
"/api/workspace/projects/{projectId}/tags" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "Get tags",
"description" : "Retrieves all tags from a project.",
"operationId" : "fetchTags",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "filter",
"in" : "query",
"description" : "Optional filter term. Only tags that contain the given term will be returned.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ProjectTagsResponse"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/tags/createTags" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Create/Update tags",
"description" : "Create or update tags.",
"operationId" : "createTags",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The tags.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CreateTagsRequest"
}
}
},
"required" : true
},
"responses" : {
"204" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/FullTag"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/tags/{tag}" : {
"delete" : {
"tags" : [ "Projects" ],
"summary" : "Remove tag",
"description" : "Deletes a tag.",
"operationId" : "deleteTag",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "tag",
"in" : "path",
"description" : "The tag URI",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"204" : {
"description" : "The tag has been removed."
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/taskContext" : {
"post" : {
"tags" : [ "Project tasks" ],
"summary" : "Task context",
"description" : "Retrieves additional information to the given task context.",
"operationId" : "taskContext",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The request body contains the task context for which additional information is requested.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/TaskContextRequest"
},
"example" : {
"taskId" : "taskID",
"taskContext" : {
"inputTasks" : [ {
"id" : "XML_d0c8c145ce21fa50"
} ],
"outputTasks" : [ {
"id" : "dataset_457989759278592",
"configPort" : false,
"inputPort" : 0
}, {
"id" : "customOperator_9d8da649976a4c2b",
"configPort" : true
} ]
}
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"inputTasks" : [ {
"taskId" : "XML_d0c8c145ce21fa50",
"label" : "XML dataset",
"isDataset" : true,
"fixedSchema" : false
} ],
"outputTasks" : [ {
"taskId" : "dataset_457989759278592",
"label" : "Some dataset",
"isDataset" : true,
"fixedSchema" : false
}, {
"taskId" : "customOperator_9d8da649976a4c2b",
"label" : "Custom operator",
"isDataset" : false,
"fixedSchema" : true
} ],
"originalInputs" : true,
"originalOutputs" : false
}
}
}
}
}
}
},
"/api/workspace/projects/{projectId}/tasks/{taskId}/clone" : {
"post" : {
"tags" : [ "Project tasks" ],
"summary" : "Clone project task",
"description" : "Clones an existing project task.",
"operationId" : "cloneTask",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The request body contains the meta data of the newly created, cloned task. The label is required and must not be empty. The description is optional.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ItemCloneRequest"
},
"example" : {
"metaData" : {
"label" : "New task",
"description" : "Optional description"
}
}
}
},
"required" : true
},
"responses" : {
"201" : {
"description" : "The generated ID and the link to the task details page.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ItemCloneResponse"
},
"example" : {
"id" : "200a2458-8cd5-4ca1-8047-b2578aa03d24_Newtask",
"detailsPage" : "/workbench/projects/cmem/transform/200a2458-8cd5-4ca1-8047-b2578aa03d24_Newtask"
}
}
}
},
"404" : {
"description" : "If the project does not exist."
}
}
}
},
"/api/workspace/projects/{projectId}/tasks/{taskId}/itemInfo" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Item info",
"description" : "Frontend relevant information about a project task item, e.g. the item type of a task.",
"operationId" : "itemInfo",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"itemType" : {
"id" : "linking",
"label" : "Linking"
}
}
}
}
}
}
}
},
"/api/workspace/projects/{projectId}/tasks/{taskId}/links" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Item links",
"description" : "All relevant links of this project task.",
"operationId" : "itemLinks",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"label" : "Transform details page",
"path" : "/workbench/projects/cmem/transform/someTransformTask"
}, {
"label" : "Mapping editor",
"path" : "/transform/cmem/someTransformTask/editor"
}, {
"label" : "Transform evaluation",
"path" : "/transform/cmem/someTransformTask/evaluate"
}, {
"label" : "Transform execution",
"path" : "/transform/cmem/someTransformTask/execute"
} ]
}
}
}
}
}
},
"/api/workspace/projects/{projectId}/tasks/{taskId}/relatedItems" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Related items",
"description" : "Fetches all directly related items of a project task. Related items are all project tasks that either are directly referenced by the task itself or reference the task. Also any task from a workflow that is directly connected to this task, i.e. either input or output, is part of the result list.",
"operationId" : "relatedItems",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "textQuery",
"in" : "query",
"description" : "An optional (multi word) text query to filter the list of plugins. Each word in the query has to match at least one sub-string from the label or the type property of a related item.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"total" : 2,
"items" : [ {
"id" : "testCsv",
"itemLinks" : [ {
"label" : "Dataset details page",
"path" : "/workspaceNew/projects/testTasks/dataset/testCsv"
} ],
"label" : "test Csv",
"type" : "Dataset",
"pluginLabel" : "CSV"
}, {
"id" : "workflow",
"itemLinks" : [ {
"label" : "Workflow details page",
"path" : "/workspaceNew/projects/testTasks/workflow/workflow"
}, {
"label" : "Workflow editor",
"path" : "/workflow/editor/project/workflow"
} ],
"label" : "workflow",
"type" : "Workflow",
"pluginLabel" : "Workflow"
} ]
}
}
}
}
}
}
},
"/api/workspace/projects/{projectId}/validateIdentifier" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Validates custom task ID",
"description" : "Receives a custom ID and checks for uniqueness and validity.",
"operationId" : "validateIdentifier_1",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "identifier",
"in" : "query",
"description" : "the custom task id set by the user",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"204" : {
"description" : "The custom ID is both valid and unique."
},
"400" : {
"description" : "The custom ID is not valid."
},
"409" : {
"description" : "The custom ID isn't unique, i.e, there is an existing task in the same project with the same ID."
}
}
}
},
"/workspace/projects/{project}" : {
"get" : {
"tags" : [ "Projects" ],
"summary" : "Get project contents",
"description" : "List the contents of a single project.",
"operationId" : "getProject",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"name" : "movies",
"metaData" : {
"label" : "movies"
},
"tasks" : {
"dataset" : [ "DBpedia", "linkedmdb" ],
"transform" : [ ],
"linking" : [ "movies" ],
"workflow" : [ ],
"custom" : [ ]
}
}
}
}
},
"404" : {
"description" : "If the project has not been found."
}
}
},
"put" : {
"tags" : [ "Projects" ],
"summary" : "Create project",
"description" : "Create a new empty project.",
"operationId" : "newProject",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"201" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"name" : "project name"
}
}
}
},
"409" : {
"description" : "If a project with the specified identifier already exists."
}
}
},
"delete" : {
"tags" : [ "Projects" ],
"summary" : "Delete project",
"description" : "Delete a project.",
"operationId" : "deleteProject",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the project has been deleted successfully."
},
"404" : {
"description" : "If the project has not been found."
}
}
}
},
"/workspace/projects/{project}/clone" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Clone project",
"description" : "Clone a project.",
"operationId" : "cloneProject_1",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The identifier of the source project, which is to be cloned.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "newProject",
"in" : "query",
"description" : "The identifier of the cloned project.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the project has been cloned successfully."
},
"404" : {
"description" : "If the source project has not been found."
}
}
}
},
"/workspace/projects/{project}/copy" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Copy project tasks",
"description" : "Copies all tasks in a project to another project. Referenced resources are copied only if the target project uses a different resource path than the source project.",
"operationId" : "copyProject",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"*/*" : {
"schema" : {
"$ref" : "#/components/schemas/CopyTasksRequest"
},
"example" : {
"targetProject" : "targetProjectId",
"dryRun" : true,
"overwriteTasks" : true
}
}
}
},
"responses" : {
"200" : {
"description" : "Lists all copied tasks.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CopyTasksResponse"
},
"example" : {
"copiedTasks" : [ {
"taskType" : "Dataset",
"id" : "linkedmdb",
"label" : "linkedmdb",
"originalTaskLink" : "/workbench/projects/json/dataset/linkedmdb"
}, {
"taskType" : "Linking",
"id" : "movies",
"label" : "movies",
"originalTaskLink" : "/workbench/projects/json/linking/movies"
} ],
"overwrittenTasks" : [ {
"taskType" : "Dataset",
"id" : "DBpedia",
"label" : "DBpedia",
"originalTaskLink" : "/workbench/projects/json/dataset/DBpedia",
"overwrittenTaskLink" : "/workbench/projects/movies/dataset/DBpedia"
} ]
}
}
}
},
"404" : {
"description" : "If the project has not been found."
}
}
}
},
"/workspace/projects/{project}/datasets/{name}" : {
"get" : {
"tags" : [ "Datasets" ],
"summary" : "Retrieve dataset",
"description" : "Retrieve the specification of a dataset.",
"operationId" : "getDataset",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"id" : "DatasetName",
"data" : {
"type" : "file",
"parameters" : {
"file" : "dataset.nt",
"format" : "N-TRIPLE"
}
}
}
},
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n \r\n "
}
}
},
"404" : {
"description" : "If the specified project or dataset has not been found."
}
}
},
"put" : {
"tags" : [ "Datasets" ],
"summary" : "Create or update dataset",
"description" : "Create or update a dataset.",
"operationId" : "putDataset",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "autoConfigure",
"in" : "query",
"description" : "If true, the dataset parameters will be auto configured. Only works with dataset plugins that support auto configuration, e.g., CSV.",
"schema" : {
"type" : "boolean",
"default" : false
}
} ],
"requestBody" : {
"description" : "The dataset specification",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"id" : "DatasetName",
"data" : {
"type" : "file",
"parameters" : {
"file" : "dataset.nt",
"format" : "N-TRIPLE"
}
}
}
},
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n \r\n "
}
},
"required" : true
},
"responses" : {
"204" : {
"description" : "If the dataset has been created or updated."
},
"400" : {
"description" : "If the provided dataset specification is invalid."
},
"404" : {
"description" : "If the specified project has not been found."
}
}
},
"delete" : {
"tags" : [ "Datasets" ],
"summary" : "Delete dataset",
"description" : "Remove a dataset from a project.",
"operationId" : "deleteDataset",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"204" : {
"description" : "If the dataset has been deleted or there is no dataset with that identifier."
},
"404" : {
"description" : "If the specified project has not been found."
}
}
}
},
"/workspace/projects/{project}/datasets/{name}/autoConfigured" : {
"get" : {
"tags" : [ "Datasets" ],
"summary" : "Auto-configure dataset",
"description" : "Retrieve an auto-configured version of the dataset.",
"operationId" : "getDatasetAutoConfigured",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"id" : "DatasetName",
"data" : {
"type" : "file",
"parameters" : {
"file" : "dataset.nt",
"format" : "N-TRIPLE"
}
}
}
},
"application/xml" : {
"example" : "\r\n \r\n \r\n \r\n \r\n "
}
}
},
"400" : {
"description" : "If the dataset type does not support auto-configuration."
},
"404" : {
"description" : "If the specified project or dataset has not been found."
}
}
}
},
"/workspace/projects/{project}/datasets/{name}/file" : {
"get" : {
"tags" : [ "Datasets" ],
"summary" : "Retrieve dataset file",
"description" : "Retrieve the file of a dataset.",
"operationId" : "getFile",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"400" : {
"description" : "If the dataset is not based on a file."
},
"404" : {
"description" : "If the specified project or dataset has not been found."
}
}
},
"put" : {
"tags" : [ "Datasets" ],
"summary" : "Upload dataset file",
"description" : "Adds a file from the local file system to the project. There are three options to upload files:\r\n\r\n1. Providing a local resource using the `file` form parameter.\r\n2. Providing a remote resource using the `resource-url` form parameter. The provided resource will be downloaded and added to the project.\r\n3. Providing the file as body payload. Supplying no body will create an empty resource.\r\n\r\nThe options are exclusive, i.e., only one option can be used per request.",
"operationId" : "uploadFile",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"multipart/form-data" : {
"schema" : {
"$ref" : "#/components/schemas/ResourceMultiPartRequest"
}
},
"application/octet-stream" : { },
"text/plain" : { }
}
},
"responses" : {
"204" : {
"description" : "If the resource has been uploaded successfully."
},
"400" : {
"description" : "If the dataset is not based on a file or has been set to read-only."
},
"404" : {
"description" : "If the specified project or dataset has not been found."
}
}
}
},
"/workspace/projects/{project}/datasets/{name}/mappingCoverage" : {
"get" : {
"tags" : [ "Datasets" ],
"summary" : "Dataset mapping coverage",
"description" : "Returns the mapping coverage of a this dataset. The mapping coverage is derived from all transformations from the same project\r\nthat have this dataset as input. It has three categories, fully mapped, partially mapped and unmapped. A source path is fully mapped\r\nif it only consists of forward paths and no backward paths or filters. If there are filters or backward paths then it can maximally be\r\nconsidered as partially mapped, although in reality several partial mappings could fully cover a path. The algorithm cannot detect such\r\nkind of combined coverage. A path is unmapped if it is not uses as value input in any mapping.\r\n ",
"operationId" : "getMappingCoverage",
"parameters" : [ {
"name" : "type",
"in" : "query",
"description" : "This optional parameter specifies which coverage types should be returned. This is a comma-separated String. Allowed values are 'fullyMapped', 'partiallyMapped' and 'unmapped'. Default is all types.",
"schema" : {
"type" : "string",
"example" : "partiallyMapped,unmapped"
}
}, {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"covered" : true,
"fully" : true,
"path" : "target:label"
}, {
"covered" : true,
"fully" : false,
"path" : "target:zipCodeArea"
}, {
"covered" : false,
"fully" : false,
"path" : "target:issueDate"
} ]
}
}
},
"404" : {
"description" : "If the specified project or dataset has not been found."
},
"500" : {
"description" : "If the dataset type does not support mapping coverage."
}
}
}
},
"/workspace/projects/{project}/datasets/{name}/mappingCoverage/values" : {
"post" : {
"tags" : [ "Datasets" ],
"summary" : "Dataset source path mapping coverage",
"description" : "Returns mapping value coverage details for a specific dataset path. This is mostly relevant for partially mapped paths.\r\nIt takes a specific path as input and returns the number of values found at this path, the number of values actually\r\nused by all mapping of the project and values that are not covered.\r\n ",
"operationId" : "getMappingValueCoverage",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MappingValueCoverageRequest"
},
"example" : {
"dataSourcePath" : "/Person/Properties/Property/Value"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"coveredValues" : 2,
"missedValues" : [ {
"nodeId" : "953217152",
"value" : "V2"
} ],
"overallValues" : 3
}
}
}
},
"404" : {
"description" : "If the specified project or dataset has not been found."
},
"500" : {
"description" : "If the dataset type does not support mapping coverage."
}
}
}
},
"/workspace/projects/{project}/datasets/{name}/types" : {
"get" : {
"tags" : [ "Datasets" ],
"summary" : "Dataset types",
"description" : "Get a list of entity types of this dataset. Types of a dataset can be classes of an ontology or in the case of a CSV file, a single type.",
"operationId" : "getDatasetTypes",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The dataset identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "textQuery",
"in" : "query",
"description" : "An optional multi-word text query to filter the types by.",
"schema" : {
"type" : "string"
}
}, {
"name" : "limit",
"in" : "query",
"description" : "Returns max. that many types in the result. If not specified all types are returned.",
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : "['', '']"
}
}
},
"404" : {
"description" : "If the specified project has not been found."
},
"500" : {
"description" : "If loading types from the dataset failed."
}
}
}
},
"/workspace/projects/{project}/export/{exportPlugin}" : {
"get" : {
"tags" : [ "Project import/export" ],
"summary" : "Export project",
"description" : "Export a project with the specified marshalling plugin.",
"operationId" : "exportProjectViaPlugin",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "exportPlugin",
"in" : "path",
"description" : "The marshalling format. One of the ids returned from the `marshallingPlugins` endpoint.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The response contains the exported project."
}
}
}
},
"/workspace/projects/{project}/files" : {
"get" : {
"tags" : [ "Project resources" ],
"summary" : "Retrieve resource",
"description" : "Retrieve the contents of a resource.",
"operationId" : "getFile_1",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "path",
"in" : "query",
"description" : "The resource path relative to the resource repository",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"404" : {
"description" : "If the specified project or resource has not been found."
}
}
},
"put" : {
"tags" : [ "Project resources" ],
"summary" : "Upload resource",
"description" : "Adds a file from the local file system to the project. There are three options to upload files:\r\n\r\n1. Providing a local resource using the `file` form parameter.\r\n2. Providing a remote resource using the `resource-url` form parameter. The provided resource will be downloaded and added to the project.\r\n3. Providing the file as body payload. Supplying no body will create an empty resource.\r\n\r\nThe options are exclusive, i.e., only one option can be used per request.",
"operationId" : "putFile",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "path",
"in" : "query",
"description" : "The resource path relative to the resource repository",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"multipart/form-data" : {
"schema" : {
"$ref" : "#/components/schemas/ResourceMultiPartRequest"
}
},
"application/octet-stream" : { },
"text/plain" : { }
}
},
"responses" : {
"204" : {
"description" : "If the resource has been uploaded successfully."
},
"404" : {
"description" : "If the specified project or resource has not been found."
}
}
},
"delete" : {
"tags" : [ "Project resources" ],
"summary" : "Delete resource",
"description" : "If the resource exists, delete it.",
"operationId" : "deleteFile",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "path",
"in" : "query",
"description" : "The resource path relative to the resource repository",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"204" : {
"description" : "If the resource has been deleted. Also returns 204 if the resource does not exist."
},
"404" : {
"description" : "If the specified project has not been found."
}
}
}
},
"/workspace/projects/{project}/files/metadata" : {
"get" : {
"tags" : [ "Project resources" ],
"summary" : "Retrieve resource metadata",
"description" : "Retrieve the properties of a specific resource.",
"operationId" : "getFileMetadata",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "name",
"in" : "path",
"description" : "The resource",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"name" : "source.nt",
"relativePath" : "source.nt",
"absolutePath" : "/var/dataintegration/workspace/movies/resources/source.nt",
"size" : 3836164,
"modified" : "2020-01-13T14:34:03Z"
}
}
}
},
"404" : {
"description" : "If the specified project or resource has not been found."
}
}
}
},
"/workspace/projects/{project}/files/usage" : {
"get" : {
"tags" : [ "Project resources" ],
"summary" : "Resource usage",
"description" : "Returns a list of datasets/tasks that are using the specified resource.",
"operationId" : "fileUsage",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "path",
"in" : "path",
"description" : "The file path relative to the resource repository",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ "dataset 1", "dataset 2" ]
}
}
},
"404" : {
"description" : "If the specified project or resource has not been found."
}
}
}
},
"/workspace/projects/{project}/import/{importPlugin}" : {
"post" : {
"tags" : [ "Project import/export" ],
"summary" : "Import project",
"description" : "Import a project from the file send with the request.",
"operationId" : "importProjectViaPlugin",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "importPlugin",
"in" : "path",
"description" : "The marshalling format. One of the ids returned from the `marshallingPlugins` endpoint.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The project file to be imported.",
"content" : {
"multipart/form-data" : {
"schema" : {
"$ref" : "#/components/schemas/FileMultiPartRequest"
}
},
"application/octet-stream" : { }
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the import succeeded"
}
}
}
},
"/workspace/projects/{project}/reload" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Reload a project from the workspace provider",
"description" : "Reloads all tasks of a project from the workspace provider. This is the same as the workspace reload, but for only a single project.",
"operationId" : "reloadProject",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"404" : {
"description" : "If the project has not been found."
}
}
}
},
"/workspace/projects/{project}/resources" : {
"get" : {
"tags" : [ "Project resources" ],
"summary" : "List project resources",
"description" : "Lists all resources available to a specific project. Resources of a project are for example files used as input or output.",
"operationId" : "getResources",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "searchText",
"in" : "query",
"description" : "If defined the resources will be filtered by the search text which searches over the resource names.",
"schema" : {
"type" : "string"
}
}, {
"name" : "limit",
"in" : "query",
"description" : "Limits the number of resources returned by this endpoint.",
"schema" : {
"type" : "integer",
"format" : "int32"
}
}, {
"name" : "offset",
"in" : "query",
"description" : "The offset in the result list. Offset and limit allow paging over the results.",
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"name" : "source.nt",
"lastModified" : "2020-01-09T12:17:12Z",
"size" : 3836164
}, {
"name" : "target.nt",
"lastModified" : "2020-01-09T12:17:12Z",
"size" : 1288984
}, {
"name" : "subsource.nt",
"lastModified" : "2020-01-09T12:17:12Z",
"size" : 3836164
} ]
}
}
},
"404" : {
"description" : "If the specified project has not been found."
}
}
}
},
"/workspace/projects/{project}/tasks" : {
"post" : {
"tags" : [ "Project tasks" ],
"summary" : "Add task",
"description" : " Add a new task to the project. If the 'id' parameter is omitted in the request, an ID will be generated from the label – which is then required.",
"operationId" : "postTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The task description",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"id" : "myTransform",
"metadata" : {
"label" : "task label",
"description" : "task description"
},
"data" : {
"taskType" : "Transform",
"selection" : {
"inputId" : "DBpedia",
"typeUri" : "http://dbpedia.org/ontology/Film",
"restriction" : ""
},
"outputs" : [ ],
"targetVocabularies" : [ ]
}
}
}
},
"required" : true
},
"responses" : {
"201" : {
"description" : "The added task.",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"id" : "myTransform",
"metadata" : {
"label" : "task label",
"description" : "task description"
},
"data" : {
"taskType" : "Transform",
"selection" : {
"inputId" : "DBpedia",
"typeUri" : "http://dbpedia.org/ontology/Film",
"restriction" : ""
},
"outputs" : [ ],
"targetVocabularies" : [ ]
}
}
}
}
},
"400" : {
"description" : "If the provided task specification is invalid."
},
"404" : {
"description" : "If the project does not exist."
},
"409" : {
"description" : "If a task with the given identifier already exists."
}
}
}
},
"/workspace/projects/{project}/tasks/{task}" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Retrieve task",
"description" : "Retrieve a task from a project.",
"operationId" : "getTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "withLabels",
"in" : "query",
"description" : "If true, all parameter values will be reified in a new object that has an optional label property. A label is added for all auto-completable parameters that have the 'autoCompleteValueWithLabels' property set to true. This guarantees that a user always sees the label of such values. For object type parameters that have set the 'visibleInDialog' flag set to true, this reification is done on all levels. For object type parameters that should not be shown in UI dialogs this is still done for the first level of the task itself, but not deeper. These values should never be set or updated by a normal UI dialog anyway and should be ignored by a task dialog.",
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "The task.",
"content" : {
"application/json" : {
"examples" : {
"Without labels" : {
"description" : "Without labels",
"value" : {
"id" : "transform",
"metadata" : {
"label" : "task label",
"description" : "task description"
},
"data" : {
"taskType" : "Transform",
"parameters" : {
"selection" : {
"inputId" : "DBpedia",
"typeUri" : "http://dbpedia.org/ontology/Film",
"restriction" : ""
},
"mappingRule" : {
"type" : "root",
"id" : "root",
"rules" : {
"uriRule" : null,
"typeRules" : [ ],
"propertyRules" : [ ]
}
},
"outputs" : [ ],
"targetVocabularies" : [ ]
}
}
}
},
"With labels" : {
"description" : "With labels",
"value" : {
"data" : {
"parameters" : {
"mappingRule" : {
"value" : {
"id" : "root",
"rules" : { },
"type" : "root"
}
},
"output" : {
"value" : ""
},
"selection" : {
"value" : {
"inputId" : {
"label" : "Some labe",
"value" : "datasetresource_1499719467735_loans_csv"
},
"restriction" : {
"value" : ""
},
"typeUri" : {
"value" : ""
}
}
},
"targetVocabularies" : {
"value" : [ ]
}
},
"taskType" : "Transform"
},
"id" : "transform_datasetresource_1499719467735_loans_csv",
"metadata" : {
"label" : "",
"modified" : "2020-04-07T11:05:59.574Z"
},
"project" : "cmem",
"taskType" : "Transform"
}
}
}
}
}
},
"404" : {
"description" : "If the project or task does not exist."
}
}
},
"put" : {
"tags" : [ "Project tasks" ],
"summary" : "Add or update task",
"description" : "Add or update a task.",
"operationId" : "putTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The task description",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"id" : "myTransform",
"metadata" : {
"label" : "task label",
"description" : "task description"
},
"data" : {
"taskType" : "Transform",
"selection" : {
"inputId" : "DBpedia",
"typeUri" : "http://dbpedia.org/ontology/Film",
"restriction" : ""
},
"outputs" : [ ],
"targetVocabularies" : [ ]
}
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the task has been added or updated successfully."
},
"400" : {
"description" : "If the provided task specification is invalid."
},
"404" : {
"description" : "If the project does not exist."
}
}
},
"delete" : {
"tags" : [ "Project tasks" ],
"summary" : "Delete task",
"description" : "Remove a task from a project.",
"operationId" : "deleteTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "removeDependentTasks",
"in" : "query",
"description" : "If true, all tasks that directly or indirectly reference this task are removed as well.",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "If the task has been deleted or there is no task with that identifier."
},
"404" : {
"description" : "If the project does not exist."
}
}
},
"patch" : {
"tags" : [ "Project tasks" ],
"summary" : "Update task",
"description" : "Update selected properties of a task. Only the sent JSON paths will be updated, i.e., the provided JSON is deep merged into the existing task JSON.",
"operationId" : "patchTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The task description",
"content" : {
"application/json" : {
"schema" : {
"type" : "object"
},
"example" : {
"metadata" : {
"description" : "task description"
}
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the task has been updated successfully."
},
"400" : {
"description" : "If the provided task specification is invalid."
},
"404" : {
"description" : "If the project or task does not exist."
}
}
}
},
"/workspace/projects/{project}/tasks/{task}/clone" : {
"post" : {
"tags" : [ "Project tasks" ],
"summary" : "Clone Task",
"description" : "Clone a task.",
"operationId" : "cloneTask_1",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The identifier of the task to be cloned",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "newTask",
"in" : "query",
"description" : "The new task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "If the has been cloned."
},
"404" : {
"description" : "If the project or task does not exist."
}
}
}
},
"/workspace/projects/{project}/tasks/{task}/copy" : {
"post" : {
"tags" : [ "Project tasks" ],
"summary" : "Copy Task to Another Project",
"description" : "Copies a task to another project. All tasks that the copied task references (directly or indirectly) are copied as well. Referenced resources are copied only if the target project uses a different resource path than the source project. Using the dryRun attribute, a copy operation can be simulated, i.e., the response listing the tasks to be copied and overwritten can be checked first.",
"operationId" : "copyTask",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "The copy task request.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CopyTasksRequest"
},
"example" : {
"targetProject" : "targetProjectId",
"dryRun" : true,
"overwriteTasks" : true
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the has been copied.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CopyTasksResponse"
},
"example" : {
"copiedTasks" : [ {
"taskType" : "Dataset",
"id" : "linkedmdb",
"label" : "linkedmdb",
"originalTaskLink" : "/workbench/projects/json/dataset/linkedmdb"
}, {
"taskType" : "Linking",
"id" : "movies",
"label" : "movies",
"originalTaskLink" : "/workbench/projects/json/linking/movies"
} ],
"overwrittenTasks" : [ {
"taskType" : "Dataset",
"id" : "DBpedia",
"label" : "DBpedia",
"originalTaskLink" : "/workbench/projects/json/dataset/DBpedia",
"overwrittenTaskLink" : "/workbench/projects/movies/dataset/DBpedia"
} ]
}
}
}
},
"404" : {
"description" : "If the project or task does not exist."
}
}
}
},
"/workspace/projects/{project}/tasks/{task}/downloadInfo" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Download info",
"description" : "Checks if this task supports downloading its result",
"operationId" : "downloadInfo",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Information if the result of a task can be downloaded.",
"content" : {
"*/*" : {
"schema" : {
"$ref" : "#/components/schemas/DownloadInfo"
}
}
}
},
"404" : {
"description" : "If the project or task does not exist."
}
}
}
},
"/workspace/projects/{project}/tasks/{task}/downloadOutput" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Task output",
"description" : "Downloads the contents of the first output dataset of the specified task. Note that this does not execute the task, but assumes that it has been executed already. The output dataset must be file based.",
"operationId" : "downloadOutput",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The task output."
},
"400" : {
"description" : "If the output could not be downloaded. The reason is stated in the response body."
},
"404" : {
"description" : "If the project or task does not exist."
}
}
}
},
"/workspace/projects/{project}/tasks/{task}/metadata" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Retrieve task metadata",
"description" : "Retrieve task metadata that includes user metadata, such as the task label as well as technical metadata, such as the referenced tasks.",
"operationId" : "getTaskMetadata",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "withTaskLinks",
"in" : "query",
"description" : "If set to true dependent tasks are returned in the form {id: \"\", label: \"\", taskLink: \"/workbench/projects/...\"}.",
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"200" : {
"description" : "The task metadata",
"content" : {
"application/json" : {
"example" : "\r\n {\r\n \"label\": \"Task Label\",\r\n \"description\": \"Task Description\",\r\n \"modified\": \"2018-05-24T14:45:42.637Z\",\r\n \"project\": \"MyProject\",\r\n \"id\": \"MyTask\",\r\n \"taskType\": \"Dataset\"\r\n \"schemata\": {\r\n \"input\": [{\r\n \"paths\": [\r\n \"\",\r\n \"\"\r\n ]\r\n }],\r\n \"output\": {\r\n \"paths\": [\r\n \"targetUri\",\r\n \"confidence\"\r\n ]\r\n }\r\n },\r\n \"relations\": {\r\n \"inputTasks\": [],\r\n \"outputTasks\": [],\r\n \"referencedTasks\": [\"DBpedia\", \"linkedmdb\"],\r\n \"dependentTasksDirect\": [{id: \"workflow_f76889ec\", label: \"Workflow label\", taskLink: \"/workbench/projects/MyProject/workflow/MyTask\"}],\r\n \"dependentTasksAll\": [{id: \"workflow_f76889ec\", label: \"Workflow label\", taskLink: \"/workbench/projects/MyProject/workflow/MyTask\"}]\r\n }\r\n }\r\n "
}
}
},
"404" : {
"description" : "If the project or task does not exist."
}
}
},
"put" : {
"tags" : [ "Project tasks" ],
"summary" : "Update task metadata",
"description" : "Updates task metadata that includes user metadata, such as the task label as well as technical metadata, such as the referenced tasks.",
"operationId" : "putTaskMetadata",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "Updated meta data.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MetaDataPlain"
},
"example" : {
"label" : "New label",
"description" : "New description"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "If the task metadata has been updated successfully."
},
"404" : {
"description" : "If the project or task does not exist."
}
}
}
},
"/workspace/projects/{project}/tasks/{task}/metadataExpanded" : {
"get" : {
"tags" : [ "Project tasks" ],
"summary" : "Retrieve expanded task metadata",
"description" : "Metadata of the task, such as the label and description.",
"operationId" : "getTaskMetadataExpanded",
"parameters" : [ {
"name" : "project",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "task",
"in" : "path",
"description" : "The task identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/MetaDataExpanded"
}
}
}
},
"404" : {
"description" : "If the project or task does not exist."
}
}
}
},
"/api/workspace/recentlyViewedItems" : {
"get" : {
"tags" : [ "Search" ],
"summary" : "Recently viewed items",
"description" : "Fetch a list of the (max. 50) most recently accessed items, e.g. visited details pages or updated projects or tasks. The list is ordered by recency of the access, more recent coming first.",
"operationId" : "recentlyViewedItems",
"responses" : {
"200" : {
"description" : "List of recently viewed items with:\n - Project ID and label, optional task ID and label (when the item is a task)\n - Item type, e.g. 'project', 'transform' etc.\n - The plugin ID for tasks\n - Item links of the returned item, e.g. details page etc.",
"content" : {
"application/json" : {
"example" : [ {
"itemLinks" : [ {
"label" : "Task details page",
"path" : "/workbench/projects/multiInputRestProject/task/parseJSON"
} ],
"itemType" : "task",
"pluginId" : "JsonParserOperator",
"pluginLabel" : "Parse JSON",
"projectId" : "multiInputRestProject",
"projectLabel" : "Multiple Inputs REST project",
"taskId" : "parseJSON",
"taskLabel" : "This will be updated"
}, {
"itemLinks" : [ {
"label" : "Project details page",
"path" : "/workbench/projects/multiInputRestProject"
} ],
"itemType" : "project",
"projectId" : "multiInputRestProject",
"projectLabel" : "Multiple Inputs REST project"
} ]
}
}
}
}
}
},
"/workspace/reload" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Reload",
"description" : "Reloads the workspace from the backend. The request blocks until the reload finished.",
"operationId" : "reload",
"responses" : {
"200" : {
"description" : "If the reload succeeded."
}
}
}
},
"/workspace/reloadPrefixes" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Reload workspace prefixes",
"description" : "Reloads the workspace prefixes from registered or all vocabularies from the backend. The request blocks until the reload finished.",
"operationId" : "reloadPrefixes",
"responses" : {
"200" : {
"description" : "If the reload succeeded."
}
}
}
},
"/api/workspace/reports/currentReport/nodeReports" : {
"get" : {
"tags" : [ "Execution reports" ],
"summary" : "Current workflow node report",
"description" : "Retrieves the current execution report of a single workflow node.",
"operationId" : "currentWorkflowNodeReport",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "The project id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "query",
"description" : "The task id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "nodeId",
"in" : "query",
"description" : "The workflow node id",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { }
}
}
}
}
},
"/api/workspace/reports/currentReport/updates" : {
"get" : {
"tags" : [ "Execution reports" ],
"summary" : "Report updates",
"description" : "Retrieves updates of the current execution report.",
"operationId" : "currentReportUpdates",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "The project id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "query",
"description" : "The task id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "timestamp",
"in" : "query",
"description" : "Only return status updates that happened after this timestamp. Provided in milliseconds since midnight, January 1, 1970 UTC. If not provided or 0, all updates will be returned.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ReportUpdates"
}
}
}
}
}
}
},
"/api/workspace/reports/currentReport/updatesWebSocket" : {
"get" : {
"tags" : [ "Execution reports" ],
"summary" : "Report updates (websocket)",
"description" : "Retrieves updates of the current execution report.",
"operationId" : "currentReportUpdatesWebsocket",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "The project id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "query",
"description" : "The task id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ReportUpdates"
}
}
}
}
}
}
},
"/api/workspace/reports/currentReport/value" : {
"get" : {
"tags" : [ "Execution reports" ],
"summary" : "Current report",
"description" : "Retrieves the current execution report.",
"operationId" : "currentReport",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "The project id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "query",
"description" : "The task id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : { }
}
}
}
}
},
"/api/workspace/reports/list" : {
"get" : {
"tags" : [ "Execution reports" ],
"summary" : "List reports",
"description" : "Lists all available execution reports. Will only return reports if a execution report manager is configured.",
"operationId" : "listReports",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "If provided, only return reports from the given project",
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "query",
"description" : "If provided, only return reports from the given task",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"project" : "movies",
"task" : "simpleWorkflow",
"time" : "2020-11-26T14:20:29.511Z"
}, {
"project" : "movies",
"task" : "simpleWorkflow",
"time" : "2020-11-26T14:22:13.462Z"
} ]
}
}
}
}
}
},
"/api/workspace/reports/report" : {
"get" : {
"tags" : [ "Execution reports" ],
"summary" : "Retrieve report",
"description" : "Retrieves an individual execution report. Typically, /list is called first in order to enumerate all available reports and their attributes.",
"operationId" : "retrieveReport",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "The project id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "taskId",
"in" : "query",
"description" : "The task id of the report",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "time",
"in" : "query",
"description" : "The timestamp of the report",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"metaData" : {
"startedByUser" : null,
"startedAt" : "2020-11-26T14:20:28.502Z",
"finishedAt" : "2020-11-26T14:20:29.510Z",
"cancelledAt" : null,
"cancelledBy" : null,
"finishStatus" : {
"final" : "status"
}
},
"value" : {
"summary" : [ ],
"task" : {
"some" : "specification"
},
"warnings" : [ "Some tasks generated warnings." ],
"label" : "direct Workflow",
"taskReports" : {
"DBpedia" : {
"label" : "DBpedia",
"task" : {
"some" : "specification"
},
"summary" : [ ],
"warnings" : [ ]
},
"transform" : {
"some" : "specification"
}
}
}
}
}
}
}
}
}
},
"/api/workspace/searchActivities" : {
"post" : {
"tags" : [ "Activities" ],
"summary" : "Activity search",
"description" : "Allows to search over all activities with text search and filter facets.",
"operationId" : "activitySearch",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ActivitySearchRequest"
}
}
}
},
"responses" : {
"200" : {
"description" : "Search result",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/FacetedSearchResult"
}
}
}
}
}
}
},
"/api/workspace/searchConfig/types" : {
"get" : {
"tags" : [ "Search" ],
"summary" : "Item type",
"description" : "The item types that a user can restrict the search to. The selected type will also influence the available facets.",
"operationId" : "itemTypes",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "Optional parameter that fetches the types for a specific project. This will only display types that contain at least one item.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : {
"label" : "Type",
"values" : [ {
"id" : "project",
"label" : "Project"
}, {
"id" : "dataset",
"label" : "Dataset"
}, {
"id" : "transformation",
"label" : "Transformation"
}, {
"id" : "linking",
"label" : "Linking"
}, {
"id" : "workflow",
"label" : "Workflow"
}, {
"id" : "task",
"label" : "Task"
} ]
}
}
}
}
}
}
},
"/api/workspace/searchItems" : {
"post" : {
"tags" : [ "Search" ],
"summary" : "Artifact search",
"description" : "Allows to search over all DataIntegration artifacts with text search and filter facets.",
"operationId" : "facetedSearch",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/FacetedSearchRequest"
},
"example" : {
"project" : "cmem",
"itemType" : "dataset",
"textQuery" : "production database",
"offset" : 0,
"limit" : 20,
"sortBy" : "label",
"sortOrder" : "ASC",
"addTaskParameters" : false,
"facets" : [ {
"facetId" : "datasetType",
"type" : "keyword",
"keywordIds" : [ "csv", "eccencaDataPlatform" ]
} ]
}
}
}
},
"responses" : {
"200" : {
"description" : "Search result",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/FacetedSearchResult"
},
"example" : {
"total" : 110,
"results" : [ {
"type" : "Project",
"id" : "cmem",
"label" : "CMEM",
"description" : "CMEM project",
"itemLinks" : [ ]
}, {
"type" : "Dataset",
"project" : "cmem",
"projectLabel" : "CMEM the project",
"pluginId" : "csv",
"pluginLabel" : "CSV",
"id" : "customers",
"label" : "Customers",
"description" : "Customers dataset"
}, {
"type" : "Task",
"pluginId" : "script",
"pluginLabel" : "Script",
"projectLabel" : "CMEM the project",
"project" : "cmem",
"id" : "processX",
"label" : "Process X",
"description" : "Process X via script",
"itemLinks" : [ ]
}, {
"description" : "",
"id" : "transform_a_to_b",
"pluginId" : "transform",
"pluginLabel" : "Tramsformation",
"itemLinks" : [ {
"label" : "Mapping editor",
"path" : "/transform/pmd/transform_a_to_b/editor"
}, {
"label" : "Transform evaluation",
"path" : "/transform/pmd/transform_a_to_b/evaluate"
}, {
"label" : "Transform execution",
"path" : "/transform/pmd/transform_a_to_b/execute"
} ],
"label" : "Transform A to B",
"projectId" : "cmem",
"type" : "Transform"
} ],
"sortByProperties" : [ {
"id" : "label",
"label" : "Label"
} ],
"facets" : [ {
"id" : "tag",
"label" : "Tag",
"description" : "A user supplied tag for custom categorization.",
"type" : "keyword",
"values" : [ {
"id" : "test",
"label" : "Test",
"count" : 2
}, {
"id" : "public",
"label" : "Public",
"count" : 3
}, {
"id" : "private",
"label" : "Private",
"count" : 4
} ]
}, {
"id" : "datasetType",
"label" : "Dataset type",
"description" : "The concrete type of a dataset, which comprises its format and other characteristics.",
"type" : "keyword",
"values" : [ {
"count" : 43,
"id" : "eccencaDataPlatform",
"label" : "Knowledge Graph"
}, {
"count" : 17,
"id" : "csv",
"label" : "CSV"
} ]
} ]
}
}
}
}
}
}
},
"/api/workspace/searchTasks" : {
"post" : {
"tags" : [ "Search" ],
"summary" : "Search Tasks",
"description" : "List all tasks that fulfill a set of filters. All JSON fields sent in the the request are optional. The request example reflects the default values that are chosen when a field is missing in the request.",
"operationId" : "search",
"requestBody" : {
"description" : "Search request",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SearchRequest"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Search result",
"content" : {
"application/json" : {
"example" : [ {
"id" : "task identifier (unique inside the project)",
"project" : "project this task belongs to (if any)",
"metadata" : {
"label" : "task label",
"description" : "task description",
"modified" : "2018-03-08T11:04:59.156Z"
},
"taskType" : "task type, e.g., Dataset",
"data" : {
"task data" : "will be here"
},
"properties" : [ {
"key" : "some key",
"value" : "some value"
} ],
"relations" : {
"inputTasks" : [ "Identifiers of all tasks from which this task is reading data." ],
"outputTasks" : [ "Identifiers of all tasks to which this task is writing data." ],
"referencedTasks" : [ "Identifiers of all tasks that are directly referenced by this task. Includes input and output tasks." ],
"dependentTasksDirect" : [ "Identifiers of all tasks that directly reference this task." ],
"dependentTasksAll" : [ "Identifiers of all tasks that directly or indirectly reference this task." ]
},
"schemata" : {
"input" : "The schemata of the input data of this task.",
"output" : "The schemata of the output data of this task."
}
} ]
}
}
}
}
}
},
"/api/workspace/taskActivitiesStatus" : {
"get" : {
"tags" : [ "Activities" ],
"summary" : "Task activities status",
"description" : "Returns status information of a set of task activities. By default all task activities are returned.",
"operationId" : "taskActivitiesStatus",
"parameters" : [ {
"name" : "projectId",
"in" : "query",
"description" : "If defined only task activities of a specific project are considered.",
"schema" : {
"type" : "string"
}
}, {
"name" : "statusFilter",
"in" : "query",
"description" : "If defined only task activities with a specific status are returned. Valid values are \"Idle\", \"Not executed\", \"Finished\", \"Cancelled\", \"Failed\", \"Successful\", \"Canceling\", \"Running\" and \"Waiting\". States \"Idle\" and \"Not executed\" are synonyms and \"Idle\" is kept only for backwards compatibility. State \"Finished\" is a union of following sub-states \"Cancelled\", \"Failed\" and \"Successful\". \"Waiting\" is the state of an activity being scheduled, but still waiting in queue for being executed.",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"example" : [ {
"activity" : "TypesCache",
"cancelled" : false,
"concreteStatus" : "Successful",
"exceptionMessage" : null,
"failed" : false,
"isRunning" : false,
"lastUpdateTime" : 1595861385992,
"message" : "Finished in 46ms",
"progress" : 100,
"project" : "singleProject",
"runtime" : 46,
"startTime" : 1595861385946,
"statusName" : "Finished",
"task" : "d57c393f-8f3f-48ba-ba13-8e815e04d557_CSVdataset"
}, {
"activity" : "ExecuteTransform",
"concreteStatus" : "Not executed",
"failed" : false,
"isRunning" : false,
"lastUpdateTime" : 1595861385941,
"message" : "Idle",
"progress" : null,
"project" : "singleProject",
"startTime" : null,
"statusName" : "Idle",
"task" : "a0d18ae0-085b-4a06-aee1-b4c19bd00eac_failTransform"
}, {
"activity" : "ExecuteLocalWorkflow",
"cancelled" : false,
"concreteStatus" : "Failed",
"exceptionMessage" : "Exception during execution of workflow operator a0d18ae0-085b-4a06-aee1-b4c19bd00eac_failTransform. Cause: No input given to transform specification executor a0d18ae0-085b-4a06-aee1-b4c19bd00eac_failTransform!",
"failed" : true,
"isRunning" : false,
"lastUpdateTime" : 1595861468748,
"message" : "Failed after 135ms: Exception during execution of workflow operator a0d18ae0-085b-4a06-aee1-b4c19bd00eac_failTransform. Cause: No input given to transform specification executor a0d18ae0-085b-4a06-aee1-b4c19bd00eac_failTransform!",
"progress" : 100,
"project" : "singleProject",
"runtime" : 135,
"startTime" : 1595861468613,
"statusName" : "Finished",
"task" : "e7dc14e5-b45b-4dc5-9933-bbc2750630f5_failedWorkflow"
} ]
}
}
}
}
}
},
"/workspace/updateGlobalVocabularyCache" : {
"post" : {
"tags" : [ "Projects" ],
"summary" : "Update global vocabulary cache",
"description" : "Update a specific vocabulary of the global vocabulary cache. This request is non-blocking. It can take a while for the cache to be up to date.",
"operationId" : "updateGlobalVocabularyCache",
"requestBody" : {
"content" : {
"*/*" : {
"schema" : {
"$ref" : "#/components/schemas/UpdateGlobalVocabularyRequest"
},
"example" : {
"iri" : "http://xmlns.com/foaf/0.1/"
}
}
}
},
"responses" : {
"204" : {
"description" : "The update of the vocabulary cache has been scheduled."
}
}
}
},
"/api/workspace/uriPatterns" : {
"post" : {
"tags" : [ "Workspace URI patterns" ],
"summary" : "Find URI patterns",
"description" : "List all URI patterns that are in use for the given target classes. At least one class must be provided.",
"operationId" : "uriPatterns",
"requestBody" : {
"description" : "URI patterns request",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UriPatternRequest"
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "URI pattern results",
"content" : {
"application/json" : {
"example" : "\r\n{\r\n \"results\": [\r\n {\r\n \"targetClassUri\": :urn:class:A\",\r\n \"label\": \"https://constant/{...localPart}\",\r\n \"value\": \"https://constant/{}\"\r\n },\r\n {\r\n \"targetClassUri\": :urn:class:B\",\r\n \"label\": \"https://constant/{...variable}/constantPath\",\r\n \"value\": \"https://constant/{/some/long/path/that/is/variable}/constantPath\"\r\n }\r\n ]\r\n}\r\n"
}
}
}
}
}
},
"/api/workspace/validation/sourcePath/{projectId}" : {
"post" : {
"tags" : [ "Validation" ],
"summary" : "Source path validation",
"description" : "Validates the syntax of a provided path string.",
"operationId" : "validateSourcePath",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "Request to validate the path syntax of the path string from the `pathExpression` parameter.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SourcePathValidationRequest"
},
"example" : {
"pathExpression" : "/invalid/path with spaces at the wrong place"
}
}
}
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AutoSuggestValidationResponse"
},
"example" : {
"valid" : false,
"parseError" : {
"start" : 13,
"end" : 15,
"message" : "[ expected but w found"
}
}
}
}
}
}
}
},
"/api/workspace/validation/uriPattern/{projectId}" : {
"post" : {
"tags" : [ "Validation" ],
"summary" : "URI pattern validation",
"description" : "Validates the syntax of the provided URI pattern.",
"operationId" : "validateUriPattern",
"parameters" : [ {
"name" : "projectId",
"in" : "path",
"description" : "The project identifier",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"description" : "Request to validate the path syntax of the path string from the `pathExpression` parameter.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UriPatternValidationRequest"
},
"example" : {
"uriPattern" : "urn:{path}/invalid path"
}
}
}
},
"responses" : {
"200" : {
"description" : "Success",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AutoSuggestValidationResponse"
},
"example" : {
"valid" : false,
"parseError" : {
"start" : 13,
"end" : 15,
"message" : "[ expected but w found"
}
}
}
}
}
}
}
},
"/api/workspace/vocabularies" : {
"get" : {
"tags" : [ "Workspace vocabularies" ],
"summary" : "Get all globally registered vocabularies",
"description" : "Fetches all vocabularies that are registered in the global vocabulary cache.",
"operationId" : "vocabularies",
"responses" : {
"200" : {
"description" : "All vocabularies in the cache.",
"content" : {
"application/json" : {
"example" : {
"vocabularies" : [ {
"nrClasses" : 0,
"nrProperties" : 61,
"uri" : "urn:foaf.owl"
} ]
}
}
}
}
}
}
},
"/api/workspace/vocabularies/property/search" : {
"get" : {
"tags" : [ "Workspace vocabularies" ],
"summary" : "Find properties in the global vocabulary cache.",
"description" : "Fetches a number of properties from the global vocabulary cache that match a text query.",
"operationId" : "findPropertyInGlobalVocabularyCache",
"parameters" : [ {
"name" : "textQuery",
"in" : "query",
"description" : "The search query. This can be a multi word text string. All words must be present.",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "projectId",
"in" : "query",
"description" : "Optional project ID in order to prefix properties with project prefixes.",
"schema" : {
"type" : "string"
}
}, {
"name" : "limit",
"in" : "query",
"description" : "The max. number of results.",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "An array of properties that match the text query.",
"content" : {
"application/json" : {
"example" : "\r\n [\r\n {\r\n \"value: \"http://domain.com/propertyA\",\r\n \"label\": \"Property A\",\r\n \"description: \"Description of property A\"\r\n },\r\n {\r\n \"value\": \"owl:sameAs\"\r\n }\r\n ]\r\n "
}
}
}
}
}
}
},
"components" : {
"schemas" : {
"DataIntegrationHealthDetails" : {
"type" : "object",
"properties" : {
"dataPlatformHealthIndicator" : {
"$ref" : "#/components/schemas/DataPlatformHealthIndicator"
},
"sparkHealthIndicator" : {
"$ref" : "#/components/schemas/SparkHealthIndicator"
}
}
},
"DataIntegrationHealthIndicator" : {
"required" : [ "details", "status" ],
"type" : "object",
"properties" : {
"status" : {
"type" : "string"
},
"details" : {
"$ref" : "#/components/schemas/DataIntegrationHealthDetails"
}
}
},
"DataPlatformHealthCheck" : {
"required" : [ "down", "healthEndpoint" ],
"type" : "object",
"properties" : {
"healthEndpoint" : {
"type" : "string"
},
"statusCode" : {
"type" : "object"
},
"errorMessage" : {
"type" : "string"
},
"status" : {
"type" : "string"
},
"down" : {
"type" : "boolean"
}
}
},
"DataPlatformHealthDetails" : {
"required" : [ "dataPlatformUrl", "oAuthEnabled" ],
"type" : "object",
"properties" : {
"dataPlatformUrl" : {
"type" : "string"
},
"oAuthEnabled" : {
"type" : "object"
},
"tokenUrl" : {
"type" : "string"
},
"authorizationUrl" : {
"type" : "string"
},
"dataPlatformHealthCheck" : {
"$ref" : "#/components/schemas/DataPlatformHealthCheck"
}
}
},
"DataPlatformHealthIndicator" : {
"required" : [ "details", "status" ],
"type" : "object",
"properties" : {
"status" : {
"type" : "string"
},
"details" : {
"$ref" : "#/components/schemas/DataPlatformHealthDetails"
}
}
},
"SparkHealthDetails" : {
"required" : [ "sparkContextStarts" ],
"type" : "object",
"properties" : {
"sparkContextStarts" : {
"type" : "boolean"
},
"errorMessage" : {
"type" : "string"
},
"appName" : {
"type" : "string"
},
"startTime" : {
"type" : "object"
}
}
},
"SparkHealthIndicator" : {
"required" : [ "details", "status" ],
"type" : "object",
"properties" : {
"status" : {
"type" : "string"
},
"details" : {
"$ref" : "#/components/schemas/SparkHealthDetails"
}
}
},
"ActionAnyContent" : {
"type" : "object"
},
"GraphSearchRequest" : {
"required" : [ "showInternalGraphs", "textQuery" ],
"type" : "object",
"properties" : {
"showInternalGraphs" : {
"type" : "object"
},
"showWritableOnly" : {
"type" : "object"
},
"textQuery" : {
"type" : "string"
},
"limit" : {
"type" : "object"
}
}
},
"GraphResponse" : {
"required" : [ "label", "uri" ],
"type" : "object",
"properties" : {
"uri" : {
"type" : "string"
},
"label" : {
"type" : "string"
}
}
},
"ActionJsValue" : {
"type" : "object"
},
"ComparisonPairFormat" : {
"type" : "object",
"properties" : {
"source" : {
"$ref" : "#/components/schemas/TypedPathFormat"
},
"target" : {
"$ref" : "#/components/schemas/TypedPathFormat"
},
"comparisonType" : {
"type" : "string",
"description" : "Comparison type identifier."
},
"sourceExamples" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"targetExamples" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"score" : {
"type" : "object",
"description" : "Similarity score based on the example values. Value between -1.0 and 1.0."
}
},
"description" : "A single comparison pair"
},
"TypedPathFormat" : {
"type" : "object",
"properties" : {
"path" : {
"type" : "string",
"description" : "The serialized path",
"example" : "path/name"
},
"label" : {
"type" : "string",
"description" : "Path label",
"example" : "path label"
},
"valueType" : {
"type" : "string",
"description" : "The identifier of the value type",
"example" : "StringValueType",
"default" : "StringValueType"
}
},
"description" : "An entity path"
},
"ActiveLearningExampleValuesResult" : {
"type" : "object",
"description" : "Example value for a specific input paths of one of the linking task input data sources."
},
"ActiveLearningInfo" : {
"type" : "object",
"properties" : {
"users" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/UserInfo"
}
},
"referenceLinks" : {
"$ref" : "#/components/schemas/ReferenceLinksStatistics"
}
}
},
"ReferenceLinksStatistics" : {
"type" : "object",
"properties" : {
"existingLinks" : {
"type" : "integer",
"description" : "The number of existing reference links of the linking task.",
"format" : "int32"
},
"addedLinks" : {
"type" : "integer",
"description" : "The number of new reference links that are not yet part of the linking task.",
"format" : "int32"
},
"removedLinks" : {
"type" : "integer",
"description" : "The number of reference links that are part of the linking task, but have been removed.",
"format" : "int32"
},
"changedLinks" : {
"type" : "integer",
"description" : "The number of reference links that are part of the linking task, but have been changed.",
"format" : "int32"
}
},
"description" : "Statistics about the reference links of the current active learning session."
},
"UserInfo" : {
"required" : [ "label", "uri" ],
"type" : "object",
"properties" : {
"uri" : {
"type" : "string"
},
"label" : {
"type" : "string"
}
},
"description" : "Full user info that contains both the URI and the label."
},
"ReferenceLinkFormat" : {
"required" : [ "source", "target" ],
"type" : "object",
"properties" : {
"source" : {
"type" : "string",
"description" : "The source URI"
},
"target" : {
"type" : "string",
"description" : "The target URI"
},
"sourceBrowserUrl" : {
"type" : "string",
"description" : "URL to redirect user to browse source resource.",
"nullable" : true
},
"targetBrowserUrl" : {
"type" : "string",
"description" : "URL to redirect user to browse target resource.",
"nullable" : true
},
"decision" : {
"type" : "string",
"description" : "The decision for this link, if any",
"nullable" : true,
"enum" : [ "positive", "negative" ]
},
"score" : {
"type" : "object",
"description" : "The score for the best rule.",
"nullable" : true
},
"comparisons" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/ComparisonPairFormat"
}
}
},
"description" : "A reference link that can be confirmed or declined by the user."
},
"ReferenceLinksFormat" : {
"required" : [ "links" ],
"type" : "object",
"properties" : {
"links" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/ReferenceLinkFormat"
}
}
}
},
"Completion" : {
"required" : [ "category", "confidence", "isCompletion", "value" ],
"type" : "object",
"properties" : {
"value" : {
"type" : "string",
"description" : "The value to be filled if the user selects this completion."
},
"confidence" : {
"type" : "number",
"description" : "The confidence of this completion.",
"format" : "double"
},
"label" : {
"type" : "string",
"description" : "A user readable label if available."
},
"description" : {
"type" : "string",
"description" : "A user readable description if available."
},
"category" : {
"type" : "string",
"description" : "The category to be shown in the autocompletion."
},
"isCompletion" : {
"type" : "boolean",
"description" : "True, if this is a valid completion. False, if this is a (error) message."
},
"extra" : {
"type" : "object",
"description" : "Some extra values depending on the category (arbitrary JSON)"
}
}
},
"Completions" : {
"type" : "object",
"properties" : {
"values" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/Completion"
}
}
},
"description" : "List of auto completions"
},
"PartialSourcePathAutoCompletionRequest" : {
"required" : [ "cursorPosition", "inputString", "maxSuggestions", "operatorStartChars" ],
"type" : "object",
"properties" : {
"inputString" : {
"type" : "string"
},
"cursorPosition" : {
"type" : "integer",
"format" : "int32"
},
"maxSuggestions" : {
"type" : "object"
},
"isObjectPath" : {
"type" : "object"
},
"taskContext" : {
"$ref" : "#/components/schemas/WorkflowTaskContext"
},
"inBackwardOp" : {
"type" : "boolean"
},
"inExplicitForwardOp" : {
"type" : "boolean"
}
}
},
"WorkflowTaskContext" : {
"type" : "object",
"properties" : {
"inputTasks" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/WorkflowTaskContextInputTask"
}
},
"outputTasks" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/WorkflowTaskContextOutputTask"
}
}
},
"description" : "The workflow context a project task is executed in."
},
"WorkflowTaskContextInputTask" : {
"required" : [ "id" ],
"type" : "object",
"properties" : {
"id" : {
"type" : "string"
}
},
"nullable" : true
},
"WorkflowTaskContextOutputTask" : {
"required" : [ "configPort", "id", "inputPort" ],
"type" : "object",
"properties" : {
"id" : {
"type" : "string"
},
"configPort" : {
"type" : "boolean"
},
"inputPort" : {
"type" : "object"
}
},
"nullable" : true
},
"AutoSuggestAutoCompletionResponse" : {
"required" : [ "cursorPosition", "inputString" ],
"type" : "object",
"properties" : {
"inputString" : {
"type" : "string"
},
"cursorPosition" : {
"type" : "integer",
"format" : "int32"
},
"replacementResults" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/ReplacementResults"
}
}
}
},
"CompletionBase" : {
"required" : [ "value" ],
"type" : "object",
"properties" : {
"value" : {
"type" : "string"
},
"label" : {
"type" : "string"
},
"description" : {
"type" : "string"
}
}
},
"ReplacementInterval" : {
"required" : [ "from", "length" ],
"type" : "object",
"properties" : {
"from" : {
"type" : "integer",
"format" : "int32"
},
"length" : {
"type" : "integer",
"format" : "int32"
}
}
},
"ReplacementResults" : {
"required" : [ "extractedQuery", "replacementInterval" ],
"type" : "object",
"properties" : {
"replacementInterval" : {
"$ref" : "#/components/schemas/ReplacementInterval"
},
"extractedQuery" : {
"type" : "string"
},
"replacements" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/CompletionBase"
}
}
}
},
"MatchTargetClassToSourceDatasetRequest" : {
"required" : [ "projectName", "transformTaskName" ],
"type" : "object",
"properties" : {
"projectName" : {
"type" : "string",
"description" : "The project name of the dataset and transformation task."
},
"transformTaskName" : {
"type" : "string",
"description" : "The transformation task where the target vocabularies are taken from, in which the target class must be contained."
},
"targetClassUris" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"dataTypePropertiesOnly" : {
"type" : "boolean",
"description" : "If set to true, only data type properties from the vocabulary are matched.",
"nullable" : true
},
"nrCandidates" : {
"type" : "integer",
"description" : "The max. number of matching candidates per property/path.",
"format" : "int32"
},
"uriPrefix" : {
"type" : "string",
"description" : "This URI prefix is prepended to generated URIs during the schema extraction process. If not specified a dummy URI prefix is used.",
"nullable" : true
},
"ruleId" : {
"type" : "string",
"description" : "Rule Id.",
"nullable" : true
},
"schemaExtractionTimeLimit" : {
"type" : "integer",
"description" : "Schema extraction time limit.",
"format" : "int64",
"nullable" : true
},
"schemaEntityLimit" : {
"type" : "integer",
"description" : "Schema entity limit.",
"format" : "int32",
"nullable" : true
},
"matchFromDataset" : {
"type" : "boolean",
"description" : "Specifies if the dataset or the vocabulary is considered the source in the matching process. If set to true there are nrCandidates vocabulary properties matched to each dataset source path,",
"nullable" : true
},
"addMetaData" : {
"type" : "boolean",
"description" : "Add metadata or not.",
"nullable" : true
},
"targetVocabularies" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
},
"MatchTargetClassToSourceDatasetIssues" : {
"type" : "object",
"properties" : {
"notFoundClasses" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
},
"MatchTargetClassToSourceDatasetResponse" : {
"required" : [ "issues" ],
"type" : "object",
"properties" : {
"matches" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/MatchingSuggestion"
}
},
"issues" : {
"$ref" : "#/components/schemas/MatchTargetClassToSourceDatasetIssues"
}
}
},
"MatchingCandidate" : {
"required" : [ "confidence", "type" ],
"type" : "object",
"properties" : {
"uri" : {
"required" : [ "uri" ],
"type" : "string",
"description" : "The URI of the candidate entity."
},
"confidence" : {
"type" : "number",
"description" : "The confidence value, should only be used for ranking, ordinal scale.",
"format" : "double"
},
"type" : {
"type" : "string",
"description" : "The type of the proposed mapping rule.",
"enum" : [ "object", "value" ]
},
"label" : {
"type" : "string",
"description" : "An optional label of the property."
},
"description" : {
"type" : "string",
"description" : "An optional description of the property."
},
"graph" : {
"type" : "string",
"description" : "Optional graph the resource was loaded from. Usually only set for properties loaded from the DP."
}
}
},
"MatchingSuggestion" : {
"required" : [ "uri" ],
"type" : "object",
"properties" : {
"uri" : {
"type" : "string",
"description" : "The source URI or source path."
},
"label" : {
"type" : "string",
"description" : "An optional label. Usually only available when matching from vocabulary side.",
"nullable" : true
},
"description" : {
"type" : "string",
"description" : "An optional description. Usually only available when matching from vocabulary side..",
"nullable" : true
},
"graph" : {
"type" : "string",
"description" : "Optional graph the resource was loaded from. Usually only set for properties loaded from the DP.",
"nullable" : true
},
"candidates" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/MatchingCandidate"
}
}
}
},
"ReplaceOntologyMatchingLinkSpecRequest" : {
"required" : [ "linkingTaskId", "projectId" ],
"type" : "object",
"properties" : {
"projectId" : {
"type" : "string",
"description" : "The project ID of the project of the linking task."
},
"linkingTaskId" : {
"type" : "string",
"description" : "The ID of the linking task that should be set and used for the mapping suggestion."
}
}
},
"Correspondence" : {
"required" : [ "sourcePath", "type" ],
"type" : "object",
"properties" : {
"sourcePath" : {
"type" : "string",
"description" : "Source path."
},
"targetProperty" : {
"type" : "string",
"description" : "The target property.",
"nullable" : true
},
"type" : {
"type" : "string",
"description" : "Type of the correspondence"
}
},
"description" : "Set of Correspondences."
},
"GenerateRuleBasedOnProfilingRequest" : {
"type" : "object",
"properties" : {
"correspondences" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/Correspondence"
}
},
"sampleLimit" : {
"type" : "integer",
"description" : "Sample Limit.",
"format" : "int32",
"nullable" : true
},
"uriPrefix" : {
"type" : "string",
"description" : "URI prefix.",
"nullable" : true
},
"addRules" : {
"type" : "boolean",
"description" : "Add rules or not.",
"nullable" : true
}
}
},
"ValidationResult" : {
"type" : "object",
"properties" : {
"messages" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"description" : "Result of a validation of an OpenAPI specification."
},
"DatasetRequest" : {
"required" : [ "dataset", "project" ],
"type" : "object",
"properties" : {
"project" : {
"type" : "string"
},
"dataset" : {
"type" : "string"
},
"typeUri" : {
"type" : "string"
}
}
},
"Column" : {
"required" : [ "dataset", "path", "typeUri" ],
"type" : "object",
"properties" : {
"dataset" : {
"type" : "string"
},
"typeUri" : {
"type" : "string"
},
"path" : {
"type" : "string"
}
},
"description" : "The primary key Column"
},
"ValidateForeignKeyRequest" : {
"required" : [ "foreignKey", "primaryKey", "project" ],
"type" : "object",
"properties" : {
"project" : {
"type" : "string",
"description" : "The project identifier"
},
"primaryKey" : {
"$ref" : "#/components/schemas/Column"
},
"foreignKey" : {
"$ref" : "#/components/schemas/Column"
}
}
},
"ValidatePrimaryKeyRequest" : {
"required" : [ "primaryKey", "project" ],
"type" : "object",
"properties" : {
"project" : {
"type" : "string",
"description" : "The project identifier"
},
"primaryKey" : {
"$ref" : "#/components/schemas/Column"
}
}
},
"EntitySampleLimits" : {
"required" : [ "dataTypeDetection", "profiling" ],
"type" : "object",
"properties" : {
"dataTypeDetection" : {
"type" : "integer",
"format" : "int32"
},
"profiling" : {
"type" : "object"
}
},
"description" : "The entity example limit",
"nullable" : true
},
"ProfileDataSetTypeRequest" : {
"required" : [ "sourceType" ],
"type" : "object",
"properties" : {
"sourceType" : {
"type" : "string",
"description" : "The source type of the dataset",
"nullable" : true
},
"datasetUri" : {
"type" : "string",
"description" : "The URI of the dataset",
"nullable" : true
},
"uriPrefix" : {
"type" : "string",
"description" : "The URI prefix of the dataset",
"nullable" : true
},
"entitySampleLimits" : {
"$ref" : "#/components/schemas/EntitySampleLimits"
}
}
},
"ItemCloneRequest" : {
"required" : [ "metaData" ],
"type" : "object",
"properties" : {
"metaData" : {
"$ref" : "#/components/schemas/ItemMetaData"
},
"newTaskId" : {
"type" : "string"
}
}
},
"ItemMetaData" : {
"required" : [ "label" ],
"type" : "object",
"properties" : {
"label" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
},
"ItemCloneResponse" : {
"required" : [ "detailsPage", "id" ],
"type" : "object",
"properties" : {
"id" : {
"type" : "string"
},
"detailsPage" : {
"type" : "string"
}
}
},
"ProjectCreationData" : {
"required" : [ "metaData" ],
"type" : "object",
"properties" : {
"metaData" : {
"$ref" : "#/components/schemas/ItemMetaData"
},
"id" : {
"type" : "string"
}
}
},
"CreateTag" : {
"required" : [ "label" ],
"type" : "object",
"properties" : {
"uri" : {
"type" : "string",
"description" : "The URI of the new tag. Leave empty to generate a new URI automatically.",
"nullable" : true
},
"label" : {
"type" : "string",
"description" : "Default label of the tag.",
"example" : "My Tag"
}
},
"description" : "The list of tags to be added."
},
"CreateTagsRequest" : {
"type" : "object",
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/CreateTag"
}
}
},
"description" : "Request to add a new tag."
},
"FullTag" : {
"required" : [ "label", "uri" ],
"type" : "object",
"properties" : {
"uri" : {
"type" : "string"
},
"label" : {
"type" : "string"
}
},
"description" : "A full tag definition that includes the tag URI and its label"
},
"ProjectTagsResponse" : {
"type" : "object",
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/FullTag"
}
}
},
"description" : "Lists all user-defined tags."
},
"MetaDataPlain" : {
"required" : [ "label", "modified" ],
"type" : "object",
"properties" : {
"label" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"modified" : {
"type" : "string",
"format" : "date-time"
},
"created" : {
"type" : "string",
"format" : "date-time"
},
"createdByUser" : {
"type" : "string"
},
"lastModifiedByUser" : {
"type" : "string"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"description" : "Plain meta data object"
},
"MetaDataExpanded" : {
"required" : [ "label", "modified" ],
"type" : "object",
"properties" : {
"label" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"modified" : {
"type" : "string",
"format" : "date-time"
},
"created" : {
"type" : "string",
"format" : "date-time"
},
"createdByUser" : {
"$ref" : "#/components/schemas/UserInfo"
},
"lastModifiedByUser" : {
"$ref" : "#/components/schemas/UserInfo"
},
"tags" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/FullTag"
}
}
},
"description" : "Expanded meta data object. Contains full tags instead of URI references."
},
"TaskContextRequest" : {
"required" : [ "taskContext", "taskId" ],
"type" : "object",
"properties" : {
"taskId" : {
"type" : "string"
},
"taskContext" : {
"$ref" : "#/components/schemas/WorkflowTaskContext"
}
}
},
"ResourceMultiPartRequest" : {
"type" : "object",
"properties" : {
"file" : {
"type" : "string",
"description" : "Resource contents",
"format" : "binary"
},
"resource-url" : {
"type" : "string",
"description" : "Resource URL"
}
}
},
"CommandResponse" : {
"required" : [ "output", "success" ],
"type" : "object",
"properties" : {
"success" : {
"type" : "boolean"
},
"output" : {
"type" : "string"
},
"forbidden" : {
"type" : "boolean",
"description" : "Signals if the package could not be uninstalled, because it's a distribution package."
}
}
},
"PythonPackage" : {
"required" : [ "name", "version" ],
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"version" : {
"type" : "string"
}
}
},
"CustomPluginDescription" : {
"type" : "object"
},
"CustomPluginDescriptionGenerator" : {
"type" : "object"
},
"MapStringString" : {
"type" : "object",
"properties" : { },
"additionalProperties" : {
"type" : "string"
}
},
"ParameterAutoCompletion" : {
"required" : [ "allowOnlyAutoCompletedValues", "autoCompleteValueWithLabels", "autoCompletionDependsOnParameters", "autoCompletionProvider" ],
"type" : "object",
"properties" : {
"autoCompletionProvider" : {
"$ref" : "#/components/schemas/PluginParameterAutoCompletionProvider"
},
"allowOnlyAutoCompletedValues" : {
"type" : "boolean"
},
"autoCompleteValueWithLabels" : {
"type" : "boolean"
},
"autoCompletionDependsOnParameters" : {
"type" : "array",
"properties" : { },
"items" : {
"type" : "string"
}
}
}
},
"PluginParameterAutoCompletionProvider" : {
"required" : [ "templateValues" ],
"type" : "object",
"properties" : {
"templateValues" : {
"type" : "object",
"properties" : { },
"additionalProperties" : {
"type" : "string"
}
}
}
},
"PluginTypeDescription" : {
"required" : [ "baseClass", "customDescription", "label", "name" ],
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"label" : {
"type" : "string"
},
"customDescription" : {
"$ref" : "#/components/schemas/CustomPluginDescriptionGenerator"
}
}
},
"PyObject" : {
"type" : "object"
},
"PythonPluginDescription" : {
"required" : [ "customDescriptions", "pluginClass", "pluginTypes" ],
"type" : "object",
"properties" : {
"pluginType" : {
"type" : "string",
"description" : "The plugin type.",
"enum" : [ "WorkflowPlugin", "TransformPlugin" ]
},
"moduleName" : {
"type" : "string",
"description" : "The Python module where the described plugin is located."
},
"className" : {
"type" : "string",
"description" : "The Python class name that implements the plugin."
},
"id" : {
"type" : "string",
"description" : "The plugin identifier"
},
"categories" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"label" : {
"type" : "string",
"description" : "Human-readable label for this plugin."
},
"description" : {
"type" : "string",
"description" : "A short (few sentence) description of this plugin."
},
"documentation" : {
"type" : "string",
"description" : "Documentation for this plugin in Markdown."
},
"parameters" : {
"type" : "array",
"properties" : { },
"description" : "Plugin parameters.",
"items" : {
"$ref" : "#/components/schemas/PythonPluginParameter"
}
},
"icon" : {
"type" : "string",
"description" : "The plugin icon"
},
"pluginTypes" : {
"type" : "array",
"properties" : { },
"items" : {
"$ref" : "#/components/schemas/PluginTypeDescription"
}
},
"customDescriptions" : {
"type" : "array",
"properties" : { },
"items" : {
"$ref" : "#/components/schemas/CustomPluginDescription"
}
}
},
"description" : "Describes a Python plugin."
},
"PythonPluginDiscoveryError" : {
"required" : [ "errorMessage", "errorType", "packageName", "stackTrace" ],
"type" : "object",
"properties" : {
"packageName" : {
"type" : "string"
},
"errorMessage" : {
"type" : "string"
},
"errorType" : {
"type" : "string"
},
"stackTrace" : {
"type" : "string"
}
}
},
"PythonPluginDiscoveryResult" : {
"required" : [ "errors", "plugins" ],
"type" : "object",
"properties" : {
"plugins" : {
"type" : "array",
"properties" : { },
"items" : {
"$ref" : "#/components/schemas/PythonPluginDescription"
}
},
"errors" : {
"type" : "array",
"properties" : { },
"items" : {
"$ref" : "#/components/schemas/PythonPluginDiscoveryError"
}
}
}
},
"PythonPluginParameter" : {
"required" : [ "advanced", "defaultValue", "description", "label", "name", "parameterType", "visibleInDialog" ],
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"label" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"advanced" : {
"type" : "boolean"
},
"visibleInDialog" : {
"type" : "boolean"
},
"autoCompletion" : {
"$ref" : "#/components/schemas/ParameterAutoCompletion"
},
"parameterType" : {
"$ref" : "#/components/schemas/StringParameterTypeObject"
},
"defaultValue" : {
"$ref" : "#/components/schemas/PyObject"
}
},
"description" : "Plugin parameters."
},
"SeqCustomPluginDescription" : {
"type" : "array",
"properties" : { },
"items" : {
"$ref" : "#/components/schemas/CustomPluginDescription"
}
},
"SeqPluginTypeDescription" : {
"type" : "array",
"properties" : { },
"items" : {
"$ref" : "#/components/schemas/PluginTypeDescription"
}
},
"SeqPythonPluginDescription" : {
"type" : "array",
"properties" : { },
"items" : {
"$ref" : "#/components/schemas/PythonPluginDescription"
}
},
"SeqPythonPluginDiscoveryError" : {
"type" : "array",
"properties" : { },
"items" : {
"$ref" : "#/components/schemas/PythonPluginDiscoveryError"
}
},
"SeqPythonPluginParameter" : {
"type" : "array",
"properties" : { },
"description" : "Plugin parameters.",
"items" : {
"$ref" : "#/components/schemas/PythonPluginParameter"
}
},
"SeqString" : {
"type" : "array",
"properties" : { },
"items" : {
"type" : "string"
}
},
"StringParameterTypeObject" : {
"type" : "object"
},
"PythonVersion" : {
"required" : [ "pythonVersion" ],
"type" : "object",
"properties" : {
"pythonVersion" : {
"type" : "string"
}
}
},
"CompletionRequest" : {
"required" : [ "column", "line" ],
"type" : "object",
"properties" : {
"line" : {
"type" : "string"
},
"column" : {
"type" : "integer",
"format" : "int32"
}
}
},
"TargetPropertyAutoCompleteRequest" : {
"type" : "object",
"properties" : {
"vocabularies" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"taskContext" : {
"$ref" : "#/components/schemas/WorkflowTaskContext"
}
}
},
"PathPart" : {
"required" : [ "segmentPosition", "serializedPath" ],
"type" : "object",
"properties" : {
"serializedPath" : {
"type" : "string"
},
"segmentPosition" : {
"$ref" : "#/components/schemas/SegmentPosition"
}
}
},
"SegmentPosition" : {
"required" : [ "originalEndIndex", "originalStartIndex" ],
"type" : "object",
"properties" : {
"originalStartIndex" : {
"type" : "integer",
"format" : "int32"
},
"originalEndIndex" : {
"type" : "integer",
"format" : "int32"
}
}
},
"UriPatternAutoCompletionRequest" : {
"required" : [ "cursorPosition", "inputString", "maxSuggestions", "pathSegments" ],
"type" : "object",
"properties" : {
"inputString" : {
"type" : "string",
"description" : "The input string that should be auto-completed."
},
"cursorPosition" : {
"type" : "integer",
"description" : "The cursor position in the input string.",
"format" : "int32"
},
"maxSuggestions" : {
"type" : "object",
"description" : "The max. number of suggestions to return."
},
"objectPath" : {
"type" : "string",
"description" : "An additional object path this auto-completion should be the context of."
},
"workflowTaskContext" : {
"$ref" : "#/components/schemas/WorkflowTaskContext"
},
"activePathPart" : {
"$ref" : "#/components/schemas/PathPart"
}
},
"description" : "Auto-completion request for a path expression inside a URI pattern."
},
"ObjectValueSourcePathInfo" : {
"required" : [ "dataTypeSubPaths", "objectSubPaths" ],
"type" : "object",
"properties" : {
"dataTypeSubPaths" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"objectSubPaths" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"description" : "Added when the `objectInfo` query parameters has been enabled and the path is of type 'object'."
},
"ValueSourcePathInfo" : {
"type" : "object",
"properties" : {
"path" : {
"type" : "string",
"description" : "Serialized path representation"
},
"pathType" : {
"type" : "string",
"description" : "Either 'value' or 'object' depending the type of values the path points at"
},
"alreadyMapped" : {
"type" : "boolean",
"description" : "Signals if this path is already in use by another mapping rule in the same transformation."
},
"objectInfo" : {
"$ref" : "#/components/schemas/ObjectValueSourcePathInfo"
}
}
},
"StartActivityResponse" : {
"required" : [ "activityId", "instanceId" ],
"type" : "object",
"properties" : {
"activityId" : {
"type" : "string"
},
"instanceId" : {
"type" : "string"
}
},
"example" : {
"activityId" : "MyActivity",
"instanceId" : "MyActivityInstance1"
}
},
"WebSocket" : {
"type" : "object"
},
"ActivityCharacteristics" : {
"type" : "object",
"properties" : {
"isMainActivity" : {
"type" : "boolean",
"description" : "If this activity is one of the main activities for the requested object, i.e. workspace, project or task."
},
"isCacheActivity" : {
"type" : "boolean",
"description" : "If this activity is a cache activity used to cache values that are potentially expensive to compute."
}
},
"description" : "Activity characteristics."
},
"ActivityInstance" : {
"type" : "object",
"properties" : {
"id" : {
"type" : "string",
"description" : "The identifier of the activity instance."
}
},
"description" : "An activity instance."
},
"ActivityListEntry" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string",
"description" : "The name of the activity."
},
"label" : {
"type" : "string",
"description" : "The label of the activity."
},
"instances" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/ActivityInstance"
}
},
"activityCharacteristics" : {
"$ref" : "#/components/schemas/ActivityCharacteristics"
},
"metaData" : {
"$ref" : "#/components/schemas/ActivityMetaData"
}
},
"description" : "An activity and all of its instances. Non-singleton activities may have multiple parallel instances while singleton instances always have one instance."
},
"ActivityMetaData" : {
"type" : "object",
"properties" : {
"projectId" : {
"type" : "string",
"description" : "The project of an activity."
},
"taskId" : {
"type" : "string",
"description" : "The task ID of an activity."
}
},
"description" : "Meta data of an activity."
},
"MappingValueCoverageRequest" : {
"required" : [ "dataSourcePath" ],
"type" : "object",
"properties" : {
"dataSourcePath" : {
"type" : "string"
}
}
},
"FileMultiPartRequest" : {
"type" : "object",
"properties" : {
"file" : {
"type" : "string",
"description" : "Resource contents",
"format" : "binary"
}
}
},
"CopyTasksRequest" : {
"type" : "object",
"properties" : {
"dryRun" : {
"type" : "object",
"description" : "If true, the copy operation will be simulated, i.e., the response listing the tasks to be copied and overwritten can be checked first.",
"nullable" : true
},
"overwriteTasks" : {
"type" : "object",
"description" : "If true, tasks in the target project will be overwritten.",
"nullable" : true
},
"targetProject" : {
"type" : "string",
"description" : "The identifier of the target project."
}
}
},
"CopyTasksResponse" : {
"type" : "object",
"properties" : {
"copiedTasks" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"overwrittenTasks" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
},
"DownloadInfo" : {
"required" : [ "downloadSupported", "info" ],
"type" : "object",
"properties" : {
"downloadSupported" : {
"type" : "boolean"
},
"info" : {
"type" : "string"
}
},
"description" : "Information on whether the result of a task can be downloaded."
},
"UpdateGlobalVocabularyRequest" : {
"required" : [ "iri" ],
"type" : "object",
"properties" : {
"iri" : {
"type" : "string"
}
}
},
"ActivitySearchRequest" : {
"type" : "object",
"properties" : {
"project" : {
"type" : "string",
"description" : "If defined, only activities from that project are fetched.",
"nullable" : true
},
"itemType" : {
"type" : "string",
"description" : "If defined, only activities of this parent type are fetched.",
"nullable" : true,
"enum" : [ "workspace", "project", "dataset", "transform", "linking", "workflow", "task" ]
},
"textQuery" : {
"type" : "string",
"description" : "Conjunctive multi word query. The single words can be scattered over different artifact properties.",
"nullable" : true
},
"offset" : {
"type" : "integer",
"description" : "Search result offset to allow for paging.",
"format" : "int32",
"nullable" : true
},
"limit" : {
"type" : "integer",
"description" : "Search result limit to allow for paging. Can be disabled by setting it to '0', which will return all results.",
"format" : "int32",
"nullable" : true,
"default" : 10
},
"sortBy" : {
"$ref" : "#/components/schemas/Value"
},
"sortOrder" : {
"$ref" : "#/components/schemas/Value"
},
"facets" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
},
"Value" : {
"type" : "object",
"description" : "If defined, only artifacts from that project are fetched.",
"nullable" : true,
"enum" : [ "ASC", "DESC" ]
},
"FacetResult" : {
"required" : [ "description", "id", "label", "type" ],
"type" : "object",
"properties" : {
"id" : {
"type" : "string"
},
"label" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"type" : {
"type" : "string"
},
"values" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/FacetValue"
}
}
}
},
"FacetValue" : {
"type" : "object"
},
"FacetedSearchResult" : {
"required" : [ "total" ],
"type" : "object",
"properties" : {
"total" : {
"type" : "integer",
"format" : "int32"
},
"results" : {
"type" : "array",
"items" : {
"type" : "object"
}
},
"sortByProperties" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/SortableProperty"
}
},
"facets" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/FacetResult"
}
}
},
"description" : "The result list as well as the list of potential facets for the currently selected task type."
},
"SortableProperty" : {
"required" : [ "id", "label" ],
"type" : "object",
"properties" : {
"id" : {
"type" : "string"
},
"label" : {
"type" : "string"
}
}
},
"ReportSummary" : {
"required" : [ "node", "operationDesc", "timestamp" ],
"type" : "object",
"properties" : {
"node" : {
"type" : "string",
"description" : "The identifier of the updated node."
},
"timestamp" : {
"type" : "integer",
"description" : "Timestamp of the last update to this node (milliseconds since the epoch of 1970-01-01T00:00:00).",
"format" : "int64"
},
"operation" : {
"type" : "string",
"description" : "Short label for the executed operation, e.g., 'read' or 'write' (optional)."
},
"operationDesc" : {
"type" : "string",
"description" : "Short description of the operation (plural, past tense).",
"example" : "entities processed"
},
"warnings" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"error" : {
"type" : "string",
"description" : "Error message in case a fatal error occurred."
},
"isDone" : {
"type" : "boolean",
"description" : "True, if the execution of this node finished. False, if the execution is still running."
},
"entityCount" : {
"type" : "integer",
"description" : "The number of entities that have been processed.",
"format" : "int32"
}
},
"description" : "All updates since the given timestamp. Contains a separate entry for each node that changed."
},
"ReportUpdates" : {
"required" : [ "timestamp" ],
"type" : "object",
"properties" : {
"timestamp" : {
"type" : "integer",
"description" : "Timestamp (milliseconds since the epoch of 1970-01-01T00:00:00).",
"format" : "int64"
},
"updates" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/ReportSummary"
}
}
},
"description" : "Represents a set of updates to the execution status of individual workflow nodes.",
"example" : {
"timestamp" : 1634547683161,
"updates" : [ {
"node" : "85ad8f57-f7ba-492c-a470-9176c0d8fd4c_dataset",
"timestamp" : 1634547463671,
"operation" : "read",
"warnings" : [ ],
"isDone" : false,
"entityCount" : 5373
} ]
}
},
"FacetedSearchRequest" : {
"required" : [ "addParameters" ],
"type" : "object",
"properties" : {
"project" : {
"type" : "string",
"description" : "If defined, only artifacts from that project are fetched.",
"nullable" : true
},
"itemType" : {
"type" : "string",
"description" : "If defined, only artifacts of this type are fetched.",
"nullable" : true,
"enum" : [ "project", "dataset", "transform", "linking", "workflow", "task" ]
},
"textQuery" : {
"type" : "string",
"description" : "Conjunctive multi word query. The single words can be scattered over different artifact properties, e.g. one in label and one in description.",
"nullable" : true
},
"offset" : {
"type" : "integer",
"description" : "Search result offset to allow for paging.",
"format" : "int32",
"nullable" : true
},
"limit" : {
"type" : "integer",
"description" : "Search result limit to allow for paging. Can be disabled by setting it to '0', which will return all results.",
"format" : "int32",
"nullable" : true,
"default" : 10
},
"sortBy" : {
"$ref" : "#/components/schemas/Value"
},
"sortOrder" : {
"$ref" : "#/components/schemas/Value"
},
"facets" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"addTaskParameters" : {
"type" : "object",
"description" : "If set to true, the current configuration for each task item is returned in the search response.",
"nullable" : true
}
}
},
"ParameterAutoCompletionRequest" : {
"required" : [ "offset", "parameterId", "pluginId", "projectId" ],
"type" : "object",
"properties" : {
"pluginId" : {
"type" : "string"
},
"parameterId" : {
"type" : "string"
},
"projectId" : {
"type" : "string"
},
"dependsOnParameterValues" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"textQuery" : {
"type" : "string"
},
"offset" : {
"type" : "object"
},
"limit" : {
"type" : "object"
}
}
},
"SearchRequest" : {
"type" : "object",
"properties" : {
"project" : {
"type" : "string",
"description" : "Restrict search to a specific project.",
"nullable" : true
},
"searchTerm" : {
"type" : "string",
"description" : "Only return tasks that match a search term. Currently, the search covers the ID, the label, the description and the task properties.",
"nullable" : true
},
"formatOptions" : {
"$ref" : "#/components/schemas/TaskFormatOptions"
}
}
},
"TaskFormatOptions" : {
"type" : "object",
"properties" : {
"includeMetaData" : {
"type" : "boolean",
"description" : "Include the task meta data.",
"default" : true
},
"includeTaskData" : {
"type" : "boolean",
"description" : "Include the task data.",
"default" : true
},
"includeTaskProperties" : {
"type" : "boolean",
"description" : "Retrieves a list of properties as key-value pairs to be displayed to the user.",
"default" : false
},
"includeRelations" : {
"type" : "boolean",
"description" : "Include relations to other tasks.",
"default" : false
},
"includeSchemata" : {
"type" : "boolean",
"description" : "Include the input and output schemata of the task.",
"default" : false
}
},
"description" : "The format options specify which parts are to be included in the response.",
"nullable" : true
},
"SourcePathValidationRequest" : {
"required" : [ "pathExpression" ],
"type" : "object",
"properties" : {
"pathExpression" : {
"type" : "string"
}
}
},
"AutoSuggestValidationError" : {
"required" : [ "end", "message", "start" ],
"type" : "object",
"properties" : {
"message" : {
"type" : "string"
},
"start" : {
"type" : "integer",
"format" : "int32"
},
"end" : {
"type" : "integer",
"format" : "int32"
}
}
},
"AutoSuggestValidationResponse" : {
"required" : [ "valid" ],
"type" : "object",
"properties" : {
"valid" : {
"type" : "boolean"
},
"parseError" : {
"$ref" : "#/components/schemas/AutoSuggestValidationError"
}
}
},
"UriPatternValidationRequest" : {
"required" : [ "uriPattern" ],
"type" : "object",
"properties" : {
"uriPattern" : {
"type" : "string"
}
}
},
"UriPatternRequest" : {
"required" : [ "projectId" ],
"type" : "object",
"properties" : {
"targetClassUris" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"projectId" : {
"type" : "string",
"description" : "The project ID."
},
"uniqueValues" : {
"type" : "boolean",
"description" : "When unique values are requested each URI pattern will only appear once even when found for different type URIs.",
"default" : false
}
}
},
"TemplateVariableFormat" : {
"required" : [ "isSensitive", "name", "scope" ],
"type" : "object",
"properties" : {
"name" : {
"type" : "string",
"description" : "The name of the variable.",
"example" : "myVar"
},
"value" : {
"type" : "string",
"description" : "The value of the variable.",
"example" : "example value"
},
"template" : {
"type" : "string",
"description" : "Template to generate the variable value."
},
"description" : {
"type" : "string",
"description" : "Optional description for documentation.",
"example" : "Example description"
},
"isSensitive" : {
"type" : "boolean",
"description" : "True, if this is a sensitive variable that should not be exposed to the user.",
"example" : false
},
"scope" : {
"type" : "string",
"description" : "The scope of the variable.",
"example" : "project"
}
},
"description" : "A single template variable"
},
"TemplateVariablesFormat" : {
"required" : [ "variables" ],
"type" : "object",
"properties" : {
"variables" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/TemplateVariableFormat"
}
}
},
"description" : "A list of template variables."
}
}
}
}