Visual Investigator REST API
Data Hub
Base URLs:
- https://example.com/svi-datahub
Terms of service Email: SAS Developers Web: SAS Developers License: SAS Institute Inc.
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Data Hub API provides access to information that is managed by SAS Visual Investigator. This API facilitates describing data that resides in either internal writable databases or external customer-controlled read-only databases. Once the data definitions are provided as entity types, the data becomes accessible within SAS Visual Investigator. This API also provides mechanisms for fetching individual entity records that were defined by the entity type definitions.
Usage Notes
Overview
The SAS Visual Investigator Data Hub REST API provides a set of REST endpoints that serve as an abstraction layer for defining and accessing data used throughout SAS Visual Investigator.
The following types of operations are supported:
- Create and modify the definitions for internal entity types
- Specify the definitions for read-only external entity types
- Perform basic database Read and Write operations on internal entity types
- Query data associated with internal and external entity types
- Define relationship types that specify how entity types relate to one another
- Query relationship links between data associated with entity types
- Define data store connection information for accessing external databases
- Manage reference lists
Organization
The primary data structure in the system is the entity type, that is mapped to a database table that is loaded from a data store. Entity types contain a list of fields that are analogous to database columns. In some cases a field is associated with a reference list that provides a list of valid selections for the field.
Associations between different entity types can be modeled using relationship types or transaction types. Boolean expressions are used to describe how pairs of entity types are connected.
Overview of Endpoints
The endpoints that are provided by the Visual Investigator Data Hub REST API can be separated into three categories:
1. Entity Metadata
Entity metadata is the abstract definition of classes of entities that are associated with database tables. Entity type definitions include database columns, and data types as well as other related information such localized labels and icons. The primary class for managing entity metadata is the "Entity Type". Entity types map one-to-one with an SQL database table that is either managed internally or stored externally in a read-only database that is controlled outside of the Visual Investigator environment.
Entity types that are associated with one another can be represented using transaction types and relationships types.
Reference lists are used to create controls in the user interface where the user has a specific list of values that can be applied to a field for an entity.
The following endpoints are available:
/admin/storedObjects - Manage entity types
/admin/relationships - Manage relationship types
/admin/transactions - Manage transaction types
/admin/referenceLists - Manage Reference Lists
2. Services
Visual Investigator interfaces with external systems such as relational databases. The information needed to connect to these systems is defined in a data store.
The following endpoints are available:
/admin/dataStores - Manage information about external SQL databases
3. Data Retrieval
To access the data defined in the Entity Metadata section, use the documents and relationship links endpoints. Documents map one-to-one with rows in an SQL database table. For internal entity types, documents can be created, read, modified, and deleted. For external entity types, documents can only be created.
/documents - Query and manage documents associated with an entity type
/links - Query and manage relationship links associated with a relationship type and multiple entity types
Security
All endpoints require a valid OAuth token to be passed as a header parameter. For example:
Authorization: Bearer eyJhbGciOiJSUzI1NiIsIcCI6MTUzN7fk
New OAuth tokens can be fetched by issuing the following request:
```
POST http://
grant_type=password&username=
Note that Basic authentication is required with user name “sas.ec” and no password. This value is Base64 encoded to create the Authorization header entry. In the example above this is: Authorization: Basic c2FzLmVjOg==
Also note that as of v4 of the Data Hub REST API, the authenticating user or client's username and password are sent in the body of the request. This is a change from all previous versions of the API (which correspond to SAS Visual Investigator 10.8 and earlier) in which the username and password were sent as query parameters.
Beginning with v4 (which corresponds to SAS Visual Investigator 2022.1.3), the SASLogon/oauth/token authentication endpoint does not accept the username and password in query parameters.
Terminology
data store
the connection information that is used to establish communication with an external database. A data store includes a database type such as MySQL or DB2, a host name, a user name, password and other required details about the connection.
document
an instance of an object that is described by an entity type. A single document includes appropriate values for its fields that were either fetched from a database or provided by user input.
entity type
the metadata that defines a class of documents. This definition includes a list of fields, language-specific labels, icons, and other relevant information. For example, a "Customer" entity type might include "first name", "last name", and "phone number" fields. An entity type provides the metadata definition that is required for creating specific instances of a document.
field
a unit of information that is associated with a document. Fields are analogous to columns in a SQL database table. Each field has a name and a data type as a well as a label that is used for displaying the value in the user interface.
label
entity types and fields have friendly text names that are localized for displaying the item in the user interface with the appropriate language.
reference list
a list of choices that the user can select as the value for a field. Common examples might include "Size" (small, medium, large) or "Color" (red, green, blue).
relationship link
an instance of a relationship type. A relationship link defines a connection between a specific document and one or more other documents.
relationship type
metadata that defines a class of relationship links. The relationship type includes information such as the type and cardinality of the entities at both ends of the relationship connection. Relationship types can also specify an associated list of fields that provide additional detail.
transaction
an instance of a transaction type. A transaction defines an action that was performed between two documents at a specific point in time. Possible examples might include a financial transfer from one account to another or a record of a phone call between one person and another.
transaction type
metadata that defines a class of transactions. This definition includes a "from" entity type, a "to" entity type, a date-time field, as well as on optional list of additional fields.
Error Codes
Commonly used HTTP status codes
HTTP status code | Description | Usage |
---|---|---|
200 | OK | The operation was successful. |
400 | Bad Request | The request failed to pass a validation rule. |
401 | Unauthorized | The request must contain a valid OAuth 2.0 token from the SASLogon service. |
403 | Forbidden | The user associated with the OAuth 2.0 token does not have the required privileges. |
404 | Not Found | The request references an item that does not exist. |
500 | Internal Server Error | An error occurred internally or while calling another service. |
Operations
AsyncJobs
End point to create asynchronous jobs.
Create jobs to be executed on the server asynchronously
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/admin/asyncJobs?new=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"status": "pending",
"message": "string",
"startedAt": "2023-08-08T10:33:54.614Z",
"endedAt": "2023-08-08T10:33:54.614Z",
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"tasks": [
{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"status": "pending",
"message": "string",
"startedAt": "2023-08-08T10:33:54.614Z",
"endedAt": "2023-08-08T10:33:54.614Z",
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"subTasks": [
"string"
]
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/asyncJobs?new=string',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/admin/asyncJobs', params={
'new': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/admin/asyncJobs", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/asyncJobs
Create a job be executed asynchronously on the server. Currently jobs can be created to index or re-index data in Visual Investigator.
Body parameter
The general format for an indexing job request or response
{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"status": "pending",
"message": "string",
"startedAt": "2023-08-08T10:33:54.614Z",
"endedAt": "2023-08-08T10:33:54.614Z",
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"tasks": [
{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"status": "pending",
"message": "string",
"startedAt": "2023-08-08T10:33:54.614Z",
"endedAt": "2023-08-08T10:33:54.614Z",
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"subTasks": [
"string"
]
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
new | query | string | true | A parameter indicating of newer parameters are being used in the job definition |
body | body | job | true | Details of the job to be created |
Example responses
The general format for an indexing job request or response
{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"status": "pending",
"message": "string",
"startedAt": "2023-08-08T10:33:54.614Z",
"endedAt": "2023-08-08T10:33:54.614Z",
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"tasks": [
{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"status": "pending",
"message": "string",
"startedAt": "2023-08-08T10:33:54.614Z",
"endedAt": "2023-08-08T10:33:54.614Z",
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"subTasks": [
"string"
]
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Created | job |
400 | Bad Request | Bad Request | sasError |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Last-Modified | string | date-time | Last modified timestamp for the job |
201 | Location | string | Not used - all job status monitoring is done through Features service end points |
Data Stores
Contains the operations related to data store configurations.
Fetch a data store by name
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/dataStores?name=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores?name=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/dataStores', params={
'name': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/dataStores", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/dataStores
Retrieves a data store that matches a specific name. The user name and password for the data store (required for the Create operation) are not returned in the response.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | query | string | true | The name of the data store. |
Example responses
200 Response
{
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The requested data store object is returned. | dataStore |
404 | Not Found | Invalid data store name. | sasError |
Create a data store
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/admin/dataStores \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/admin/dataStores', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/admin/dataStores", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/dataStores
Creates a new data store. Prior to version 10.5.1 of SAS Visual Investigator, this process could take from 30-60 seconds to complete. The "handle" property must be generated by the client. The string must be unique and contain no special characters. The "username" and "password" properties are required.
Body parameter
{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | dataStore | true | The definition of the data store object to be inserted. |
Example responses
201 Response
{
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | A data store was created. | dataStore |
400 | Bad Request | Invalid data store definition. | sasError |
Repair a data store
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-datahub/admin/dataStores/repair/{dataStoreName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: text/plain'
const inputBody = '{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/plain'
};
fetch('https://example.com/svi-datahub/admin/dataStores/repair/{dataStoreName}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/plain'
}
r = requests.put('https://example.com/svi-datahub/admin/dataStores/repair/{dataStoreName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/plain"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-datahub/admin/dataStores/repair/{dataStoreName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /admin/dataStores/repair/{dataStoreName}
Repairs a data store. At times, data store information can get into a bad state. For example, during a release migration when data store metadata is being moved and a failure occurs. In these situations, use this endpoint along with the full data store content with the user name and password. Data Hub attempts to repair the state of the data store.
Body parameter
{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreName | path | string | true | The name of the data store. |
body | body | dataStore | true | The data store object that to be repaired. |
Example responses
200 Response
"The data store 'oracle_store' with ID '2' was successfully repaired."
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
412 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
428 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The data store was repaired. | string |
400 | Bad Request | Invalid data store definition. | sasError |
412 | Precondition Failed | The data store in the request body is out of date. | sasError |
428 | Precondition Required | The data store in the request body did not contain a version. | sasError |
Fetch all data stores
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/dataStores/all?includeInternal=false \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/all?includeInternal=false',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/dataStores/all', params={
'includeInternal': 'false'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/dataStores/all", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/dataStores/all
Retrieves a list of all available data stores.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
includeInternal | query | string | true | Specifies whether to include internal data stores. Internal data stores are used by Data Hub or other components of SAS Visual Investigator. |
Example responses
200 Response
[
{
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. An array of data stores is returned. | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [allOf] | false | none | [Information that is used for connecting to a database such as Oracle or SQL Server.] |
» Data Store | dataStore | false | none | Information that is used for connecting to a database such as Oracle or SQL Server. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
»»» id | integer | false | none | The primary key that uniquely identifies this metadata object. |
»»» createdBy | string | false | none | The user ID that created this metadata object. |
»»» createdAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was created. |
»»» lastUpdatedBy | string | false | none | The user ID that most recently modified this metadata object. |
»»» lastUpdatedAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was last modified. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | object | false | none | none |
»»» name | string | false | none | The name of the data store. |
»»» type | string | false | none | The type of the data store. |
»»» defaultSchemaName | string | false | none | The default schema name to be used for the data store. |
»»» version | integer | false | none | The internal version number for this data store. |
»»» connectionType | string | false | none | The type of database the system. |
»»» host | string | false | none | The host name for the database server. |
»»» port | string | false | none | The TCP/IP port number for connecting to the database server. |
»»» username | string | false | none | The user name for connecting to the database server. |
»»» password | string | false | none | The password for connecting to the database server. |
»»» databaseNameOrServiceName | string | false | none | The name of the database to which to connect. |
»»» schema | string | false | none | The name of the target schema within the database. |
»»» reindexRequired | boolean | false | none | Specifies whether all entity, relationship, and transaction types need to be reindexed after making an update to the data store. |
»»» isCasDistributedDataLoadSupported | boolean | false | none | Specifies whether the data store supports the CAS "Distributed Data Load" feature. |
»»» initialSize | integer | false | none | The initial starting size for the database connection pool. |
»»» maxIdle | integer | false | none | The maximum number of idle connections that are allowed in the connection pool. |
»»» minIdle | integer | false | none | The minimum number of idle connections that are allowed in the connection pool. |
»»» maxActive | integer | false | none | The maximum number of active connections that are allowed in the connection pool. |
»»» handle | string | false | none | A string that is used to group key/value pairs that belong to a single data store (analogous to a folder). When creating a data store, this value must be unique. No other data store can have the same "handle" value. It is the responsibility of the client to determine a unique value. |
»»» urlAppendedParameters | string | false | none | Additional JDBC connection parameters that are appended to the end of the connection string. |
»»» advancedProperties | sasProperties | false | none | Additional properties that are needed by other modules while interacting with this data store. For example, when loading data into CAS, etc. |
»»»» version | integer | false | none | The version number of the API representation. This is version 1. |
»»»» properties | [sasProperty] | false | none | A list of name/value pairs. |
»»»»» SAS Property | sasProperty | false | none | A pair that consists of a string name and a string value. This is based on http://{SAS API Portal}/reference/schema/property/v1/property.json. |
»»»»»» name | string | false | none | The property name. |
»»»»»» value | string | false | none | The property value. |
»»»» links | [object] | false | none | Links to associated resources and operations. APIs might provide links for the link relations self', update(to replace the attributes), patch` (to update some attributes), or others. |
»»» assignedTimeZone | string | false | none | The default timezone for timestamp values that are stored in the database. |
Enumerated Values
Property | Value |
---|---|
type | RELATIONAL |
connectionType | internal_postgres |
connectionType | postgres |
connectionType | db2 |
connectionType | MySQL |
connectionType | oracle |
connectionType | SQL Server |
connectionType | teradata |
Get headers for user name and password for a data store
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/credentials
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/credentials',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/credentials')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/credentials", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/dataStores/{dataStoreId}/credentials
Retrieves headers for the data store user name and password. Other metadata about the data store is not included in the response. This endpoint requires the "svi.administration.datastore_credentials" capability. Be careful about who is given this capability. This endpoint is designed to be used by other SAS services that need the data store credentials.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The requested data store credential object is returned. The password is Base64-encoded. | None |
404 | Not Found | Invalid data store ID. | None |
Fetch user name and password for a data store
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/credentials \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/credentials',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/credentials', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/credentials", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/dataStores/{dataStoreId}/credentials
Retrieves the data store user name and password. Other metadata about the data store is not included in the response. This endpoint requires the "svi.administration.datastore_credentials" capability. Be careful about who is given this capability. This endpoint is designed to be used by other SAS services that need the data store credentials.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store. |
Example responses
200 Response
{
"username": "testUser",
"password": "dGVzdFBhc3N3b3JkMTIz"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The requested data store credential object is returned. The password is Base64-encoded. | dataStoreCredentials |
404 | Not Found | Invalid data store ID. | sasError |
Test the connection to the data store that is in the request body
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/admin/dataStores/connectionTest \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/connectionTest',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/admin/dataStores/connectionTest', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/admin/dataStores/connectionTest", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/dataStores/connectionTest
Attempts to connect to the data store that is specified in the request body. This endpoint requires the "svi.administration.core_metadata" capability.
Body parameter
{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | dataStore | true | The data store object that is used to test the connection. |
Example responses
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The connection attempt was successful or connection testing has been disabled via the configuration settings. | None |
400 | Bad Request | Bad request. The possible causes are an invalid database type, an invalid database name, a missing host or port, or the inability to establish a socket connection. The error message and logs should clarify the issue. | sasError |
Get the default data store
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/dataStores/default \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/default',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/dataStores/default', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/dataStores/default", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/dataStores/default
Retrieves the default data store. This endpoint requires the "svi.administration.core_metadata" capability.
Example responses
200 Response
{
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Request succeeded. The default data store object is returned. | dataStore |
Gets a list of supported database types
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/dataStores/supportedDatabaseTypes \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/supportedDatabaseTypes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/dataStores/supportedDatabaseTypes', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/dataStores/supportedDatabaseTypes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/dataStores/supportedDatabaseTypes
Retrieves a list of supported database types. This endpoint requires the "svi.administration.core_metadata" capability.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
includeAll | query | boolean | false | By default, this operation returns only manageable types. These are the types that you can add/modify/delete in the SAS Visual Investigator Administration user interface. To force all the types to be returned, set this property to true . |
Detailed descriptions
includeAll: By default, this operation returns only manageable types. These are the types that you can add/modify/delete in the SAS Visual Investigator Administration user interface. To force all the types to be returned, set this property to true
.
Example responses
200 Response
[
{
"type": "postgres",
"requiredFields": [
"name",
"host",
"port",
"username",
"password",
"databaseName",
"schema",
"handle",
"version"
]
},
{
"type": "oracle",
"requiredFields": [
"name",
"host",
"port",
"username",
"password",
"databaseName",
"schema",
"handle",
"version"
]
},
{
"type": "teradata",
"requiredFields": [
"name",
"host",
"port",
"username",
"password",
"databaseName",
"handle",
"version"
]
},
{
"type": "db2",
"requiredFields": [
"name",
"host",
"port",
"username",
"password",
"databaseName",
"schema",
"handle",
"version"
]
},
{
"type": "MySQL",
"requiredFields": [
"name",
"host",
"port",
"username",
"password",
"schema",
"handle",
"version"
]
},
{
"type": "SQL Server",
"requiredFields": [
"name",
"host",
"port",
"username",
"password",
"databaseName",
"schema",
"handle",
"version"
]
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A list of supported database types is returned. | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [dataStoreSupportedType] | false | none | [A supported database for a data store.] |
» Data Store Supported Type | dataStoreSupportedType | false | none | A supported database for a data store. |
»» type | string | false | none | The type of database. |
»» requiredFields | [string] | false | none | The required fields for the data store with the database type. |
»» defaultAdditionalFields | object | false | none | A map of additional default fields for the data store with the database type. |
»»» additionalProperties | object | false | none | none |
»»»» fieldKey | string | false | none | none |
»»»» fieldValue | string | false | none | none |
Get headers for a data store by ID
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/admin/dataStores/{dataStoreId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/dataStores/{dataStoreId}
Retrieves headers for a data store that matches the specified data store ID. The user name and password for the data store (required for the Create operation) are not returned in the response. This endpoint requires the "svi.administration.core_metadata" capability.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The data store with the specified ID is returned. If no data store exists with that ID, null is returned. | None |
Get a data store by ID
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/dataStores/{dataStoreId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/dataStores/{dataStoreId}
Retrieves a data store that matches the specified data store ID. The user name and password for the data store (required for the Create operation) are not returned in the response. This endpoint requires the "svi.administration.core_metadata" capability.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store. |
Example responses
200 Response
{
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The data store with the specified ID is returned. If no data store exists with that ID, null is returned. | dataStore |
Delete a data store by ID
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-datahub/admin/dataStores/{dataStoreId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/dataStores/{dataStoreId}
Deletes the data store that matches the specified data store ID. This endpoint requires the "svi.administration.core_metadata" capability.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The data store was deleted or there was no data store with the specified ID. | None |
Update a data store by ID
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-datahub/admin/dataStores/{dataStoreId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.put('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /admin/dataStores/{dataStoreId}
Updates the data store with the specified ID to the data store definition that is contained in the request body. This endpoint requires the "svi.administration.core_metadata" capability.
Body parameter
{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store. |
body | body | dataStore | true | The data store object to update the existing data store. |
Example responses
200 Response
{
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The updated data store is returned. | dataStore |
400 | Bad Request | The request was invalid. The error message should clarify the issue. Possible reasons include: - The data store credentials are null in the request body's data store definition. - The data store handle is changed in the request body (this is not allowed). - The name is changed in the request body (this is not allowed). - A property is missing in the request body's data store definition. | sasError |
Get headers for all table names from a data store
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/dataStores/{dataStoreId}/tables
Returns headers for a list of all table names from the data store with the specified ID. This endpoint requires the "svi.administration.core_metadata" capability.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store from which to get the table names. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A list of the data store's table names is returned. | None |
404 | Not Found | A data store with the specified ID was not found. | None |
Get all table names from a data store
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/dataStores/{dataStoreId}/tables
Returns a list of all table names from the data store with the specified ID. This endpoint requires the "svi.administration.core_metadata" capability.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store from which to get the table names. |
Example responses
200 Response
[
"table_name_1",
"table_name_2",
"table_name_3"
]
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A list of the data store's table names is returned. | Inline |
404 | Not Found | A data store with the specified ID was not found. | sasError |
Response Schema
Get headers for table metadata from a data store
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables/{tableName}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables/{tableName}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables/{tableName}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables/{tableName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/dataStores/{dataStoreId}/tables/{tableName}
Returns headers for table metadata from a data store for the specified data store ID and table name. This endpoint requires the "svi.administration.core_metadata" capability.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store from which to get the table. |
tableName | path | string | true | The name of the table from which to get the metadata. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The metadata for the table is returned. | None |
404 | Not Found | A data store with the specified ID was not found. | None |
Get table metadata from a data store
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables/{tableName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables/{tableName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables/{tableName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/dataStores/{dataStoreId}/tables/{tableName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/dataStores/{dataStoreId}/tables/{tableName}
Returns table metadata from a data store for the specified data store ID and table name. This endpoint requires the "svi.administration.core_metadata" capability.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
dataStoreId | path | integer | true | The ID of the data store from which to get the table. |
tableName | path | string | true | The name of the table from which to get the metadata. |
Example responses
200 Response
{
"name": "person",
"schema": "my_schema",
"type": "TABLE",
"databaseProductName": "PostgreSQL",
"columns": [
{
"name": "birthday",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyColumn": false,
"ordinalPosition": 0,
"primaryKeySeqNo": 0
},
{
"name": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": true,
"primaryKeyColumn": false,
"ordinalPosition": 1,
"primaryKeySeqNo": 0
},
{
"name": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": true,
"primaryKeyColumn": false,
"ordinalPosition": 2,
"primaryKeySeqNo": 0
},
{
"name": "first_name",
"dataType": "STRING",
"length": 15,
"required": false,
"primaryKeyColumn": false,
"ordinalPosition": 3,
"primaryKeySeqNo": 0
},
{
"name": "id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyColumn": true,
"ordinalPosition": 5,
"primaryKeySeqNo": 1
},
{
"name": "last_name",
"dataType": "STRING",
"length": 15,
"required": false,
"primaryKeyColumn": false,
"ordinalPosition": 6,
"primaryKeySeqNo": 0
},
{
"name": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": true,
"primaryKeyColumn": false,
"ordinalPosition": 7,
"primaryKeySeqNo": 0
},
{
"name": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": true,
"primaryKeyColumn": false,
"ordinalPosition": 8,
"primaryKeySeqNo": 0
},
{
"name": "version",
"dataType": "LONG",
"required": true,
"primaryKeyColumn": false,
"ordinalPosition": 9,
"primaryKeySeqNo": 0
}
]
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The metadata for the table is returned. | tableMetadata |
404 | Not Found | A data store with the specified ID was not found. | sasError |
Documents
Contains the operations related to documents.
Create a new internal document
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/documents \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2,
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample/value"
},
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/documents', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/documents", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /documents
Create a new internal document. If child documents are included in the request body, new child documents are also created.
Body parameter
{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2,
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample/value"
},
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_operation | query | string | false | When this query parameter is set to CREATE_AND_LINK , the request body contains both an enriched document and a link. Both the enriched document and the link are created in one operation. In this case, the client can set the Accept header of this request to application/vnd.sas.investigation.data.masked.enriched.document.and.link+json . If it does, any masked data in the response will be replaced with dots. Otherwise, masked data in the response is omitted. |
body | body | enrichedDocument | false | The document to be created. |
Detailed descriptions
_operation: When this query parameter is set to CREATE_AND_LINK
, the request body contains both an enriched document and a link. Both the enriched document and the link are created in one operation. In this case, the client can set the Accept
header of this request to application/vnd.sas.investigation.data.masked.enriched.document.and.link+json
. If it does, any masked data in the response will be replaced with dots. Otherwise, masked data in the response is omitted.
Enumerated Values
Parameter | Value |
---|---|
_operation | CREATE_AND_LINK |
Example responses
Example of an Enriched Document object.
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
Example of a Document and Link Bundle
{
"document": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
},
"documentLink": {
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by"
}
}
201 Response
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The internal document was created. | maskedDocumentAndLink |
400 | Bad Request | The request was invalid. | sasError |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Location | string | The URI of the newly created document. |
Get headers for a collection of documents by entity type
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{entityTypeName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept-Item: application/json'
const headers = {
'Accept-Item':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept-Item': 'application/json'
}
r = requests.head('https://example.com/svi-datahub/documents/{entityTypeName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept-Item": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{entityTypeName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{entityTypeName}
Gets headers for a collection of documents for the specified entity type. To filter the collection of documents, submit a GET via POST request.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Accept-Item | header | string | false | The media type that the client accepts for items within the response collection. |
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
start | query | integer | false | The starting index of the first document in a page. |
limit | query | integer | false | The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted. |
depth | query | string | false | The depth of child documents to return. The value can be either: |
includeDisplayLabel | query | boolean | false | Indicates whether to generate and include the display label in the document. |
Detailed descriptions
limit: The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
depth: The depth of child documents to return. The value can be either:
- '0' - No child documents are included in each document
- '1' - Child documents are included in each document if they exist for that document
Enumerated Values
Parameter | Value |
---|---|
Accept-Item | application/json |
Accept-Item | application/vnd.sas.investigation.data.enriched.document |
Accept-Item | application/vnd.sas.investigation.data.enriched.document+json |
Accept-Item | application/vnd.sas.investigation.data.masked.enriched.document |
Accept-Item | application/vnd.sas.investigation.data.masked.enriched.document+json |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.enriched.document |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.enriched.document+json |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The entity type was not found. | None |
415 | Unsupported Media Type | The endpoint cannot produce collection items of the type specified in the Accept-Item header. |
None |
Get a collection of documents by entity type
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{entityTypeName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json' \
-H 'Accept-Item: application/json'
const headers = {
'Accept':'application/json',
'Accept-Item':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Accept-Item': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{entityTypeName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Accept-Item": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{entityTypeName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{entityTypeName}
Gets a collection of documents for the specified entity type. To filter the collection of documents, submit a GET via POST request.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Accept-Item | header | string | false | The media type that the client accepts for items within the response collection. |
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
start | query | integer | false | The starting index of the first document in a page. |
limit | query | integer | false | The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted. |
depth | query | string | false | The depth of child documents to return. The value can be either: |
includeDisplayLabel | query | boolean | false | Indicates whether to generate and include the display label in the document. |
Detailed descriptions
limit: The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
depth: The depth of child documents to return. The value can be either:
- '0' - No child documents are included in each document
- '1' - Child documents are included in each document if they exist for that document
Enumerated Values
Parameter | Value |
---|---|
Accept-Item | application/json |
Accept-Item | application/vnd.sas.investigation.data.enriched.document |
Accept-Item | application/vnd.sas.investigation.data.enriched.document+json |
Accept-Item | application/vnd.sas.investigation.data.masked.enriched.document |
Accept-Item | application/vnd.sas.investigation.data.masked.enriched.document+json |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.enriched.document |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.enriched.document+json |
Example responses
Example of a collection of Enriched Documents.
[
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
]
Example of a collection of Masked Enriched Documents.
[
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"ssn": "•••••••••",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
]
Example of a collection of Minimally-Masked Enriched Documents.
[
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"ssn": "123456789",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
]
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
415 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
404 | Not Found | The entity type was not found. | sasError |
415 | Unsupported Media Type | The endpoint cannot produce collection items of the type specified in the Accept-Item header. |
sasError |
Response Schema
Enumerated Values
Property | Value |
---|---|
type | WORKSHEET |
type | NOTESHEET |
type | LIVE |
type | STATIC |
type | IMAGE |
type | TEXT |
fieldDataType | REFERENCE_DATA |
fieldDataType | USER_GROUP |
fieldDataType | BOOLEAN |
fieldDataType | STRING |
fieldDataType | SMALLINT |
fieldDataType | INTEGER |
fieldDataType | LONG |
fieldDataType | FLOAT |
fieldDataType | DOUBLE |
fieldDataType | NUMERIC |
fieldDataType | DATE |
fieldDataType | TIMESTAMP |
fieldDataType | TIMESTAMP_WITH_TIME_ZONE |
fieldDataType | JSON |
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
Filter a collection of documents
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/documents/{entityTypeName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.data.document.filter.request' \
-H 'Accept: application/json' \
-H 'Accept-Item: application/json'
const inputBody = '{
"filter": "string",
"start": 0,
"limit": 20,
"depth": 0,
"includeDisplayLabel": false,
"sortBy": "first_name:ascending;last_name:descending"
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.data.document.filter.request',
'Accept':'application/json',
'Accept-Item':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.data.document.filter.request',
'Accept': 'application/json',
'Accept-Item': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/documents/{entityTypeName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.data.document.filter.request"},
"Accept": []string{"application/json"},
"Accept-Item": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/documents/{entityTypeName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /documents/{entityTypeName}
Filters a collection of documents by document ID or by using a custom filter. The type of filtering determines the media types to specify in the Content-Type header. This endpoint is a GET via POST. The reasoning for why a POST is needed is specified for each type of request.
The client can specify the type of document returned in the Accept-Item header for both types of requests. The options are:
- application/vnd.sas.investigation.data.document+json
- application/vnd.sas.investigation.data.enriched.document+json
Enriched documents are the document plus sheets (i.e, workspaces) and comments. A regular document does not include the enrichment data. Getting enriched documents is potentially less efficient than getting a document. You should use "application/vnd.sas.investigation.data.document" unless the enrichment data is required.
Specifying "application/json" in a header indicates that the client would like to use the default media type for that header. The default media types for this endpoint are:
HTTP Header | Value in header | Value interpreted by server |
---|---|---|
Content-Type | application/json | application/vnd.sas.investigation.data.document.filter.request+json |
Accept | application/json | application/vnd.sas.collection+json |
Accept-Item | application/json | application/vnd.sas.investigation.data.enriched.document+json |
Using the default value for the Content-Type header means that the user is making a Document Filter request. Document Filter requests are requests for collections of documents that use a custom filter.
The default item type returned is an enriched document for legacy reasons.
Custom filter (Document Filter Request)
Filter a collection of documents given the type and a filter string. This is a GET via POST request. The endpoint uses this design to keep the values used for filtering (the value of the "filter" property) from being logged.
This request must have the following header and value:
HTTP Header | HTTP Header value |
---|---|
Content-Type | application/vnd.sas.investigation.data.document.filter.request+json |
The body of the request will be a Document Filter Request. See the Document Filter Request model for more details.
Microsoft SQL Server and Azure SQL Server have limitations on the number of parameters that can be used when querying databases. When using this endpoint to filter documents that are stored in an SQL Server data store, large and complex filter strings that contain over 2000 parameters might fail. To circumvent this limitation, split your filter expression into smaller expressions and make multiple requests to this endpoint. Then, combine the results as appropriate.
Filter By ID (Document ID Request)
Request specific documents by providing an entity type name and an array of document ID values. Use this request when many documents by ID need to be requested. There is a similar document endpoint that accepts multiple "id" query parameters, but it is limited by the maximum URI size allowed. This request overcomes that limitation by placing the list of IDs in the body of a POST request.
Document ID Requests must have the following header and value:
HTTP Header | HTTP Header value |
---|---|
Content-Type | application/vnd.sas.investigation.data.document.id.request+json |
The body of the request will be a Document ID Request. See the Document ID Request model for more details.
Body parameter
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document collection belongs. |
Accept-Item | header | string | false | When making a request to filter documents, specifies the media type of the items returned. |
body | body | documentFilterRequest | false | The parameters that are used for filtering, sorting, display labels, and the inclusion of child documents. There are two types of requests that can be made: request by ID or by using a custom filter. The default is using a custom filter. See the description for this endpoint for more details. |
Detailed descriptions
body: The parameters that are used for filtering, sorting, display labels, and the inclusion of child documents. There are two types of requests that can be made: request by ID or by using a custom filter. The default is using a custom filter. See the description for this endpoint for more details.
Enumerated Values
Parameter | Value |
---|---|
Accept-Item | application/json |
Accept-Item | application/vnd.sas.investigation.data.enriched.document |
Accept-Item | application/vnd.sas.investigation.data.enriched.document+json |
Accept-Item | application/vnd.sas.investigation.data.masked.enriched.document |
Accept-Item | application/vnd.sas.investigation.data.masked.enriched.document+json |
Accept-Item | application/vnd.sas.investigation.data.document |
Accept-Item | application/vnd.sas.investigation.data.document+json |
Accept-Item | application/vnd.sas.investigation.data.masked.document |
Accept-Item | application/vnd.sas.investigation.data.masked.document+json |
Example responses
Example of a Resource Collection that contains Enriched Document objects.
{
"links": [
{
"method": "POST",
"rel": "self",
"href": "/documents/person",
"uri": "/documents/person",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigation.data.enriched.document",
"body": {
"start": 0,
"limit": 10,
"includeDisplayLabel": true,
"depth": "0",
"sortBy": "id",
"filter": "eq(first_name, 'John')"
}
},
{
"method": "GET",
"rel": "collection",
"href": "/documents/person",
"uri": "/documents/person",
"type": "application/vnd.sas.collection"
}
],
"name": "documents",
"accept": "application/vnd.sas.investigation.data.enriched.document+json",
"start": 0,
"count": 1,
"items": [
{
"objectTypeName": "person",
"objectTypeId": 100924,
"objectTypeVersion": 6,
"id": "uuid_100",
"fieldValues": {
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"first_name": "John",
"id": "uuid_100",
"last_name": "Smith",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"version": 1
},
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"displayLabel": "John Smith",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"attachmentsCount": 0
}
],
"limit": 10,
"version": 2
}
Example of a Resource Collection that contains Document objects.
{
"links": [],
"name": "documents",
"count": 1,
"version": 2,
"items": [
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
}
]
}
Example of a Resource Collection that contains Masked Enriched Document objects.
{
"links": [
{
"method": "POST",
"rel": "self",
"href": "/documents/person",
"uri": "/documents/person",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigation.data.enriched.document",
"body": {
"start": 0,
"limit": 10,
"includeDisplayLabel": true,
"depth": "0",
"sortBy": "id",
"filter": "eq(first_name, 'John')"
}
},
{
"method": "GET",
"rel": "collection",
"href": "/documents/person",
"uri": "/documents/person",
"type": "application/vnd.sas.collection"
}
],
"name": "documents",
"accept": "application/vnd.sas.investigation.data.enriched.document+json",
"start": 0,
"count": 1,
"items": [
{
"objectTypeName": "person",
"objectTypeId": 100924,
"objectTypeVersion": 6,
"id": "uuid_100",
"fieldValues": {
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"first_name": "John",
"id": "uuid_100",
"last_name": "Smith",
"ssn": "•••••••••",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"version": 1
},
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"displayLabel": "John Smith",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"attachmentsCount": 0
}
],
"limit": 10,
"version": 2
}
Example of a Resource Collection that contains Masked Document objects.
{
"links": [],
"name": "documents",
"count": 1,
"version": 2,
"items": [
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"ssn": "•••••••••",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
}
]
}
Example of a Resource Collection that contains Enriched Document objects.
Example of a Resource Collection that contains Document objects.
Example of a Resource Collection that contains Masked Enriched Document objects.
Example of a Resource Collection that contains Masked Document objects.
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
415 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The type of document was not found. | sasError |
415 | Unsupported Media Type | An unsupported media type was provided. | sasError |
Response Schema
Enumerated Values
Property | Value |
---|---|
type | WORKSHEET |
type | NOTESHEET |
type | LIVE |
type | STATIC |
type | IMAGE |
type | TEXT |
fieldDataType | REFERENCE_DATA |
fieldDataType | USER_GROUP |
fieldDataType | BOOLEAN |
fieldDataType | STRING |
fieldDataType | SMALLINT |
fieldDataType | INTEGER |
fieldDataType | LONG |
fieldDataType | FLOAT |
fieldDataType | DOUBLE |
fieldDataType | NUMERIC |
fieldDataType | DATE |
fieldDataType | TIMESTAMP |
fieldDataType | TIMESTAMP_WITH_TIME_ZONE |
fieldDataType | JSON |
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
Get headers for a document by ID
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{entityTypeName}/{documentId}
Gets headers for a document by ID. Both internal and external documents can be read.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
depth | query | string | false | The depth of child documents to return. Valid values are: |
includeDisplayLabel | query | boolean | false | Indicates whether to generate and include the display label in the document. |
Detailed descriptions
depth: The depth of child documents to return. Valid values are:
- '0' - No child documents are included in each document
- '1' - Child documents are included in each document if they exist for that document
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | The request was invalid. | errorResponse |
404 | Not Found | The document was not found. | None |
Get a document by ID
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{entityTypeName}/{documentId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{entityTypeName}/{documentId}
Gets a document by ID. You can use a parameter to specify whether child documents are returned. Both internal and external documents can be read.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
depth | query | string | false | The depth of child documents to return. Valid values are: |
includeDisplayLabel | query | boolean | false | Indicates whether to generate and include the display label in the document. |
Detailed descriptions
depth: The depth of child documents to return. Valid values are:
- '0' - No child documents are included in each document
- '1' - Child documents are included in each document if they exist for that document
Example responses
200 Response
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | minimallyMaskedEnrichedDocument |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The document was not found. | sasError |
Update an internal document
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-datahub/documents/{entityTypeName}/{documentId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
},
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Accept': 'application/json'
}
r = requests.put('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /documents/{entityTypeName}/{documentId}
Updates an internal document. This is an appropriate way to add child documents or worksheets to the document. The content of the request is the existing document. Updating external documents is not allowed.
Body parameter
{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
},
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
Accept | header | string | false | For document fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Accept" HTTP header can be used to control how masked fields are handled during updates. If this HTTP header is not provided or is set to "application/json", then masked field values that are set to null will be ignored. If the "Accept" header is set to "application/vnd.sas.investigation.data.masked.document+json" then masked fields that are set to the mask template (nine dots) will be ignored. The "Accept" header value should match the data masking approach that was used to fetch data before an update is performed. |
body | body | enrichedDocument | false | A modified version of an existing document. |
Detailed descriptions
Accept: For document fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Accept" HTTP header can be used to control how masked fields are handled during updates. If this HTTP header is not provided or is set to "application/json", then masked field values that are set to null will be ignored. If the "Accept" header is set to "application/vnd.sas.investigation.data.masked.document+json" then masked fields that are set to the mask template (nine dots) will be ignored. The "Accept" header value should match the data masking approach that was used to fetch data before an update is performed.
Enumerated Values
Parameter | Value |
---|---|
Accept | application/json |
Accept | application/vnd.sas.investigation.data.enriched.document+json |
Accept | application/vnd.sas.investigation.data.masked.enriched.document+json |
Example responses
200 Response
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
412 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
428 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | maskedEnrichedDocument |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The document was not found. | sasError |
412 | Precondition Failed | The document in the request body was out of date. | sasError |
428 | Precondition Required | The document in the request body did not contain a version. | sasError |
Patch a document
Code samples
# You can also use wget
curl -X PATCH https://example.com/svi-datahub/documents/{entityTypeName}/{documentId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'If-Match: 0'
const inputBody = '[
{
"path": "string",
"op": "string",
"value": null
}
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'If-Match':'0'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'If-Match': '0'
}
r = requests.patch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"If-Match": []string{"0"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /documents/{entityTypeName}/{documentId}
Applies a patch to a document. This enables a client to make changes to a document without needing to load the entire document. The request body contains a description of the changes to be made to the document, which is represented by a json-patch object. For more information about json-patch, refer to jsonpatch.com.
Body parameter
[
{
"path": "string",
"op": "string",
"value": null
}
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
If-Match | header | integer | false | The version of the document to update. This parameter is required for documents of entity types that have a version field configured. If a version field is configured, this value must match the most recent version of the document. If the value does not match the most recent version of the document, the patch operation fails. This helps prevent conflicting edits from being applied to a document. |
body | body | jsonPatch | false | A json-patch specification of changes to make to the document. Copy and move operations cannot use a masked field value as their source. Test operations cannot reference masked field values. |
Detailed descriptions
If-Match: The version of the document to update. This parameter is required for documents of entity types that have a version field configured. If a version field is configured, this value must match the most recent version of the document. If the value does not match the most recent version of the document, the patch operation fails. This helps prevent conflicting edits from being applied to a document.
body: A json-patch specification of changes to make to the document. Copy and move operations cannot use a masked field value as their source. Test operations cannot reference masked field values.
Example responses
200 Response
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
412 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
428 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The response body contains the document after the application of the patch. | maskedEnrichedDocument |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The document was not found. | sasError |
412 | Precondition Failed | The document in the request body was out of date. | sasError |
428 | Precondition Required | The document in the request body did not contain a version. | sasError |
Delete an internal document
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-datahub/documents/{entityTypeName}/{documentId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.delete('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /documents/{entityTypeName}/{documentId}
Deletes an internal document. Deleting external documents is not allowed.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
Example responses
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The document was deleted. | None |
404 | Not Found | The document was not found. | sasError |
Bulk create and update documents
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/documents/bulk \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Item-Type: application/vnd.sas.investigation.data.masked.document+json'
const inputBody = '{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Item-Type':'application/vnd.sas.investigation.data.masked.document+json'
};
fetch('https://example.com/svi-datahub/documents/bulk',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Item-Type': 'application/vnd.sas.investigation.data.masked.document+json'
}
r = requests.post('https://example.com/svi-datahub/documents/bulk', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Item-Type": []string{"application/vnd.sas.investigation.data.masked.document+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/documents/bulk", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /documents/bulk
Creates and updates internal documents in bulk. The input is a list of document objects. Each document represents either a Create or Update operation, depending on its form. The output is a list of operation summary results.
The input for the request is a SAS collection, which looks like the following:
json
{
"items":[...]
}
Each element in "items" represents a series of records to be inserted or updated. If a given record includes a primary
key, then it is treated as an update. Otherwise, it is a Create operation. All locks, unlocks, creates,
and updates are processed internally by the server.
The response from the request is another SAS collection with summary results for each item that was sent. Result items are in the same order as the input collection. This is especially important if you need to capture the newly generated primary keys of values that were inserted. If there is a problem, there will be an "error" property in the results for the item that had issues. If some items return errors, it does not prevent other valid records from being successfully processed.
Body parameter
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Content-Item-Type | header | string | false | For document fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Content-Item-Type" HTTP header can be used to control how masked fields are handled with bulk updates. If this HTTP header is not provided, then masked field values that are set to null will be ignored. If the "Content-Item-Type" header is set to "application/vnd.sas.investigation.data.masked.document+json" then masked fields that are set to the mask template (nine dots) will be ignored. The "Content-Item-Type" header value should match the data masking approach that was used to fetch data before an update is performed. |
body | body | sasCollection | false | none |
Detailed descriptions
Content-Item-Type: For document fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Content-Item-Type" HTTP header can be used to control how masked fields are handled with bulk updates. If this HTTP header is not provided, then masked field values that are set to null will be ignored. If the "Content-Item-Type" header is set to "application/vnd.sas.investigation.data.masked.document+json" then masked fields that are set to the mask template (nine dots) will be ignored. The "Content-Item-Type" header value should match the data masking approach that was used to fetch data before an update is performed.
Enumerated Values
Parameter | Value |
---|---|
Content-Item-Type | application/vnd.sas.investigation.data.masked.document+json |
Example responses
201 Response
{
"links": [],
"name": "entities",
"count": 1,
"items": [
{
"id": "uuid_100",
"entityType": "person",
"operation": "UPDATE"
}
],
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
415 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Internal documents were created or updated. See items in the collection to determine whether the operation for an individual document succeeded or failed. | bulkOperationResultCollection |
400 | Bad Request | The request was invalid. | sasError |
415 | Unsupported Media Type | The endpoint does not support collection items of the type specified in the Content-Item-Type request header. |
sasError |
Get headers for other documents related to an individual document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/{relationshipTypeName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept-Item: application/json'
const headers = {
'Accept-Item':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/{relationshipTypeName}',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept-Item': 'application/json'
}
r = requests.head('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/{relationshipTypeName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept-Item": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/{relationshipTypeName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{entityTypeName}/{documentId}/{relationshipTypeName}
For a given document and relationship type name, finds all the documents that are related to the given document according to the given relationship type.
Since the child documents of a top-level document are related to it by a special kind of relationship type, this endpoint can be used
to fetch children of a document. In this case, the name of the relationship type is identical to the child entity type, so use
the child entity type name as the relationshipTypeName
path parameter.
The related documents can be filtered by a date range using the date and time fields on the entity type of the related document.
It is important to clarify that there are two entity types to consider: the entity type that is specified in the path and the related entity type that is returned. Distinguishing between the two is important when filtering by a date range.
For example, assume there is a relationship type defined between an entity type named "entityTypeA" and another entity type named "entityTypeB" that is called "fromAToB". For the request GET /documents/entityTypeA/{documentId}/fromAtoB, "entityTypeB" is the related entity type and a collection of "entityTypeB" documents are returned.
The number of related documents can be filtered by fields on the related entity type using a combination of the "earliestValidFrom", "latestValidFrom", "earliestValidTo", "latestValidTo", "dateFieldName", "earliestDate", and "latestDate" parameters. Each of these parameters refer to a Date, Timestamp, or Timestamp With Time Zone field on the related entity type.
When using the "earliestValidFrom" and "latestValidFrom" parameters, the results are filtered by the field name that is specified in the "validFromFieldName" property in the related entity type.
When using the "earliestValidTo" and "latestValidTo" parameters, the results are filtered by the field name that is specified in the "validToFieldName" property in the related entity type.
The "dateFieldName" parameter is used to specify an arbitrary Date, Timestamp, or Timestamp With Time Zone field name on the related entity type. When specified, include "earliestDate", "latestDate", or both parameters.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Accept-Item | header | string | false | The media type that the client accepts for items within the response collection. |
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
relationshipTypeName | path | string | true | The name of a relationship type that is associated with the entity type name defined in the parameter "entityTypeName". |
start | query | integer | false | The starting index of the first document in a page. |
limit | query | integer | false | The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted. |
earliestValidFrom | query | string(date-time) | false | The earliest value that is allowed for the related entity's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead. |
earliestValidTo | query | string(date-time) | false | The earliest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead. |
latestValidFrom | query | string(date-time) | false | The latest value that is allowed for the related document's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead. |
latestValidTo | query | string(date-time) | false | The latest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead. |
dateFieldName | query | string | false | An arbitrary Date, Timestamp, or Timestamp With Time Zone field in the related entity type. If a value is provided, the field with this name is used to filter documents against the given "earliestValidFrom", "earliestValidTo", "latestValidFrom", and "latestValidTo" parameters. |
Detailed descriptions
relationshipTypeName: The name of a relationship type that is associated with the entity type name defined in the parameter "entityTypeName".
limit: The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
earliestValidFrom: The earliest value that is allowed for the related entity's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
earliestValidTo: The earliest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
latestValidFrom: The latest value that is allowed for the related document's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
latestValidTo: The latest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
dateFieldName: An arbitrary Date, Timestamp, or Timestamp With Time Zone field in the related entity type. If a value is provided, the field with this name is used to filter documents against the given "earliestValidFrom", "earliestValidTo", "latestValidFrom", and "latestValidTo" parameters.
Enumerated Values
Parameter | Value |
---|---|
Accept-Item | application/json |
Accept-Item | application/vnd.sas.investigation.data.document |
Accept-Item | application/vnd.sas.investigation.data.document+json |
Accept-Item | application/vnd.sas.investigation.data.masked.document |
Accept-Item | application/vnd.sas.investigation.data.masked.document+json |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.document |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.document+json |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | No documents were found that are associated with the given documents and relationship type | None |
415 | Unsupported Media Type | The endpoint cannot produce collection items of the type specified in the Accept-Item header. |
None |
Get other documents related to an individual document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/{relationshipTypeName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json' \
-H 'Accept-Item: application/json'
const headers = {
'Accept':'application/json',
'Accept-Item':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/{relationshipTypeName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Accept-Item': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/{relationshipTypeName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Accept-Item": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/{relationshipTypeName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{entityTypeName}/{documentId}/{relationshipTypeName}
For a given document and relationship type name, finds all the documents that are related to the given document according to the given relationship type.
Since the child documents of a top-level document are related to it by a special kind of relationship type, this endpoint can be used
to fetch children of a document. In this case, the name of the relationship type is identical to the child entity type, so use
the child entity type name as the relationshipTypeName
path parameter.
The related documents can be filtered by a date range using the date and time fields on the related document's entity type.
For the purpose of this documentation, it is important to clarify that there are two entity types to consider: the entity type that is specified in the path and the related entity type that is returned. Distinguishing between the two is important when filtering by a date range.
For example, assume there is a relationship type defined between an entity type named "entityTypeA" and another entity type named "entityTypeB" that is called "fromAToB". For the request GET /documents/entityTypeA/{documentId}/fromAtoB, "entityTypeB" is the related entity type and a collection of "entityTypeB" documents are returned.
The number of related documents can be filtered by fields on the related entity type using a combination of the "earliestValidFrom", "latestValidFrom", "earliestValidTo", "latestValidTo", "dateFieldName", "earliestDate", and "latestDate" parameters. Each of these parameters refer to a Date, Timestamp, or Timestamp With Time Zone field on the related entity type.
When using the "earliestValidFrom" and "latestValidFrom" parameters, the results are filtered by the field name that is specified in the "validFromFieldName" property in the related entity type.
When using the "earliestValidTo" and "latestValidTo" parameters, the results are filtered by the field name that is specified in the "validToFieldName" property in the related entity type.
The "dateFieldName" parameter is used to specify an arbitrary Date, Timestamp, or Timestamp With Time Zone field name on the related entity type. When specified, include "earliestDate", "latestDate", or both parameters.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Accept-Item | header | string | false | The media type that the client accepts for items within the response collection. |
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
relationshipTypeName | path | string | true | The name of a relationship type that is associated with the entity type name defined in the parameter "entityTypeName". |
start | query | integer | false | The starting index of the first document in a page. |
limit | query | integer | false | The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted. |
earliestValidFrom | query | string(date-time) | false | The earliest value that is allowed for the related entity's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead. |
earliestValidTo | query | string(date-time) | false | The earliest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead. |
latestValidFrom | query | string(date-time) | false | The latest value that is allowed for the related document's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead. |
latestValidTo | query | string(date-time) | false | The latest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead. |
dateFieldName | query | string | false | An arbitrary Date, Timestamp, or Timestamp With Time Zone field in the related entity type. If a value is provided, the field with this name is used to filter documents against the given "earliestValidFrom", "earliestValidTo", "latestValidFrom", and "latestValidTo" parameters. |
Detailed descriptions
relationshipTypeName: The name of a relationship type that is associated with the entity type name defined in the parameter "entityTypeName".
limit: The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
earliestValidFrom: The earliest value that is allowed for the related entity's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
earliestValidTo: The earliest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
latestValidFrom: The latest value that is allowed for the related document's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
latestValidTo: The latest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
dateFieldName: An arbitrary Date, Timestamp, or Timestamp With Time Zone field in the related entity type. If a value is provided, the field with this name is used to filter documents against the given "earliestValidFrom", "earliestValidTo", "latestValidFrom", and "latestValidTo" parameters.
Enumerated Values
Parameter | Value |
---|---|
Accept-Item | application/json |
Accept-Item | application/vnd.sas.investigation.data.document |
Accept-Item | application/vnd.sas.investigation.data.document+json |
Accept-Item | application/vnd.sas.investigation.data.masked.document |
Accept-Item | application/vnd.sas.investigation.data.masked.document+json |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.document |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.document+json |
Example responses
200 Response
{
"links": [],
"name": "documents",
"count": 1,
"version": 2,
"items": [
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
}
]
}
Example of a Resource Collection that contains Document objects.
Example of a Resource Collection that contains Masked Document objects.
Example of a Resource Collection that contains Minimally-Masked Document objects.
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
415 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The media type of the items inside the response collection depends on the value of the Accept-Item header in the request. | Inline |
404 | Not Found | No documents were found that are associated with the given documents and relationship type | sasError |
415 | Unsupported Media Type | The endpoint cannot produce collection items of the type specified in the Accept-Item header. |
sasError |
Response Schema
Get headers for field values for document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields?fieldName=string
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields?fieldName=string',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields', params={
'fieldName': [
"string"
]
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/fields
Gets headers for a representation of multiple fields values for a top-level document. Since the GET operation for this endpoint does not produce an error if the user is not authorized to reveal the value of a masked field, this HEAD operation does not either.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
fieldName | query | array[string] | true | The names of the fields. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The document or field was not found. | None |
Get field values for document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields?fieldName=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields?fieldName=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields', params={
'fieldName': [
"string"
]
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/fields
Gets a representation of multiple fields values for a top-level document. If any of the fields is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If any of the fields are configured for masking and the requesting user is not authorized to reveal the value of the masked field, the value will be omitted from the response.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
fieldName | query | array[string] | true | The names of the fields. |
Example responses
200 Response
{
"count": 2,
"items": [
{
"fieldName": "ssn",
"raw": "012345678"
},
{
"fieldName": "last_name",
"raw": "Smith"
}
]
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValueCollection |
404 | Not Found | The document or field was not found. | sasError |
Get headers for field value for document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields/{fieldName}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields/{fieldName}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields/{fieldName}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/fields/{fieldName}
Gets headers for a representation of a field value for a top-level document. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
fieldName | path | string | true | The name of the field. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The document or field was not found. | None |
Get field value for document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields/{fieldName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields/{fieldName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields/{fieldName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/fields/{fieldName}
Gets a representation of a field value for a top-level document. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
fieldName | path | string | true | The name of the field. |
Example responses
200 Response
{
"fieldName": "ssn",
"raw": "012345678"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValue |
404 | Not Found | The document or field was not found. | sasError |
Get headers for historical field value for document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}?version=0
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}?version=0',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}', params={
'version': '0'
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/history/{objectTypeName}/{documentId}/fields/{fieldName}
Gets headers for a representation of a field value for a top-level document at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
fieldName | path | string | true | The name of the field. |
version | query | integer | true | The version of the document in history. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The document or field was not found. | None |
Get historical field value for document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}?version=0 \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}?version=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}', params={
'version': '0'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/history/{objectTypeName}/{documentId}/fields/{fieldName}
Gets a representation of a field value for a top-level document at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
fieldName | path | string | true | The name of the field. |
version | query | integer | true | The version of the document in history. |
Example responses
200 Response
{
"fieldName": "ssn",
"raw": "012345678"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValue |
404 | Not Found | The document or field was not found. | sasError |
Get headers for field values for child document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields?fieldName=string
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields?fieldName=string',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields', params={
'fieldName': [
"string"
]
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields
Gets headers for a representation of multiple fields values for a child document. Since the GET operation for this endpoint does not produce an error if the user is not authorized to reveal the value of a masked field, this HEAD operation does not either.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
fieldName | query | array[string] | true | The names of the fields. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The document or field was not found. | None |
Get field values for child document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields?fieldName=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields?fieldName=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields', params={
'fieldName': [
"string"
]
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields
Gets a representation of multiple fields values for a child document. If any of the fields is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If any of the fields is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the value will be omitted from the response.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
fieldName | query | array[string] | true | The names of the fields. |
Example responses
200 Response
{
"count": 2,
"items": [
{
"fieldName": "ssn",
"raw": "012345678"
},
{
"fieldName": "last_name",
"raw": "Smith"
}
]
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValueCollection |
404 | Not Found | The document or field was not found. | sasError |
Get headers for field value for child document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}
Gets headers for a representation of a field value for a child document. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
fieldName | path | string | true | The name of the field. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The document or field was not found. | None |
Get field value for child document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}
Gets a representation of a field value for a child document. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
fieldName | path | string | true | The name of the field. |
Example responses
200 Response
{
"fieldName": "ssn",
"raw": "012345678"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValue |
404 | Not Found | The document or field was not found. | sasError |
Get headers for historical field value for child document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}?version=0
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}?version=0',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}', params={
'version': '0'
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}
Gets headers for a representation of a field value for a child document at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
fieldName | path | string | true | The name of the field. |
version | query | integer | true | The version of the document in history. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The document or field was not found. | None |
Get historical field value for child document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}?version=0 \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}?version=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}', params={
'version': '0'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}
Gets a representation of a field value for a child document at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
fieldName | path | string | true | The name of the field. |
version | query | integer | true | The version of the document in history. |
Example responses
200 Response
{
"fieldName": "ssn",
"raw": "012345678"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValue |
404 | Not Found | The document or field was not found. | sasError |
Get headers for summary of action history for a document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept-Item: string'
const headers = {
'Accept-Item':'string'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept-Item': 'string'
}
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept-Item": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/actions
Gets headers for a summary of action history for a document. Action history summaries contain a link to fetch the full representation. The 'Accept-Item' request header can be used to fetch the available action types for this document. If the 'Accept-Item' header is set to "application/vnd.sas.investigate.action.type", this endpoint returns a collection of action types. This collection represents all of the action types that exist historically for the specified document, providing an exhaustive list of all possible filter options.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. The only supported sort criteria are 'createdAt' ascending and 'createdAt' descending. |
actionType | query | string | false | The filter criteria for the request. Basic selection filter syntax for the 'actionType' field is supported. For example: '?actionType=DOCUMENT_EDIT |
Accept-Item | header | string | false | If set to 'application/vnd.sas.investigate.action.type', the available action types are returned. |
Detailed descriptions
objectTypeName: The object type of the document.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request. The only supported sort criteria are 'createdAt' ascending and 'createdAt' descending.
actionType: The filter criteria for the request. Basic selection filter syntax for the 'actionType' field is supported. For example: '?actionType=DOCUMENT_EDIT|COMMENT_CREATE' returns only DOCUMENT_EDIT or COMMENT_CREATE actions.
Accept-Item: If set to 'application/vnd.sas.investigate.action.type', the available action types are returned.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Action history was not available for the specified document. | None |
404 | Not Found | The specified document was not found. | None |
Get summary of action history for a document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json' \
-H 'Accept-Item: string'
const headers = {
'Accept':'application/json',
'Accept-Item':'string'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Accept-Item': 'string'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Accept-Item": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/actions
Gets a summary of action history for a document. Action history summaries contain a link to fetch the full representation. The 'Accept-Item' request header can be used to fetch the available action types for this document. If the 'Accept-Item' header is set to "application/vnd.sas.investigate.action.type", this endpoint returns a collection of action types. This collection represents all of the action types that exist historically for the specified document, providing an exhaustive list of all possible filter options.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. The only supported sort criteria are 'createdAt' ascending and 'createdAt' descending. |
actionType | query | string | false | The filter criteria for the request. Basic selection filter syntax for the 'actionType' field is supported. For example: '?actionType=DOCUMENT_EDIT |
Accept-Item | header | string | false | If set to 'application/vnd.sas.investigate.action.type', the available action types are returned. |
Detailed descriptions
objectTypeName: The object type of the document.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request. The only supported sort criteria are 'createdAt' ascending and 'createdAt' descending.
actionType: The filter criteria for the request. Basic selection filter syntax for the 'actionType' field is supported. For example: '?actionType=DOCUMENT_EDIT|COMMENT_CREATE' returns only DOCUMENT_EDIT or COMMENT_CREATE actions.
Accept-Item: If set to 'application/vnd.sas.investigate.action.type', the available action types are returned.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/person/uuid_100/actions",
"uri": "/svi-datahub/documents/person/uuid_100/actions",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigate.action.summary"
},
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/person/uuid_100/actions?start=0&limit=10",
"uri": "/svi-datahub/documents/person/uuid_100/actions?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigate.action.summary"
},
{
"method": "GET",
"rel": "availableActionTypes",
"href": "/svi-datahub/documents/person/uuid_100/actions",
"uri": "/svi-datahub/documents/person/uuid_100/actions",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigate.action.type"
}
],
"name": "actions",
"start": 0,
"count": 1,
"items": [
{
"actionId": "2",
"action": "Edited the Person",
"actionType": "DOCUMENT_EDIT",
"objectType": "Person",
"objectId": "uuid_100",
"objectVersion": "2",
"createdBy": "videmo",
"createdAt": "2023-06-28T19:28:42.948Z",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/person/uuid_100/actions/2?actionType=DOCUMENT_EDIT",
"uri": "/svi-datahub/documents/person/uuid_100/actions/2?actionType=DOCUMENT_EDIT",
"type": "application/vnd.sas.investigate.action"
}
],
"version": 1
}
],
"limit": 10,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
400 | Bad Request | Action history was not available for the specified document. | sasError |
404 | Not Found | The specified document was not found. | sasError |
Response Schema
Enumerated Values
Property | Value |
---|---|
actionType | DOCUMENT_CREATE |
actionType | DOCUMENT_EDIT |
actionType | DOCUMENT_DELETE |
actionType | DOCUMENT_UNKNOWN |
actionType | RELATIONSHIP_CREATE |
actionType | RELATIONSHIP_EDIT |
actionType | RELATIONSHIP_DELETE |
actionType | RELATIONSHIP_UNKNOWN |
actionType | OBJECT_LINKED |
actionType | OBJECT_LINK_EDIT |
actionType | OBJECT_UNLINKED |
actionType | OBJECT_LINK_UNKNOWN |
actionType | COMMENT_CREATE |
actionType | COMMENT_EDIT |
actionType | FILE_UPLOAD |
actionType | FILE_DELETE |
Get headers for an action for a document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions/{actionId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions/{actionId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions/{actionId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions/{actionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/actions/{actionId}
Gets headers for the full representation of an action from a document's action history. A link to this representation is returned in the links property of an action summary.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
actionId | path | string | true | The ID of the action. This could be a document version or the ID of an action. |
tableLimit | query | integer | false | Specifies the length at which to truncate child document action history. |
actionType | query | string | false | The type of the action. This is one of the available action types for the document. Currently, this parameter is not required by the server, but omitting it is deprecated. This parameter will be required in a future version of the API. Certain action types will not be available from this endpoint if the actionType parameter is not provided. |
Detailed descriptions
objectTypeName: The object type of the document.
documentId: The ID of the document.
actionId: The ID of the action. This could be a document version or the ID of an action.
tableLimit: Specifies the length at which to truncate child document action history. For example, assume that a request is made with this query parameter set to 5. If, for a given child document type, there is less than 5 child documents for a specific action (Create/Edit/Delete), then 'n' child documents are returned. If 'n' is greater than 5, a message instructs the user to use the Versions control to view the child documents.
actionType: The type of the action. This is one of the available action types for the document. Currently, this parameter is not required by the server, but omitting it is deprecated. This parameter will be required in a future version of the API. Certain action types will not be available from this endpoint if the actionType parameter is not provided.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Action history was not available for the specified document. | None |
404 | Not Found | The specified document or action was not found. | None |
Get an action for a document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions/{actionId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions/{actionId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions/{actionId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/actions/{actionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/actions/{actionId}
Gets the full representation of an action from a document's action history. A link to this representation is returned in the links property of an action summary.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
actionId | path | string | true | The ID of the action. This could be a document version or the ID of an action. |
tableLimit | query | integer | false | Specifies the length at which to truncate child document action history. |
actionType | query | string | false | The type of the action. This is one of the available action types for the document. Currently, this parameter is not required by the server, but omitting it is deprecated. This parameter will be required in a future version of the API. Certain action types will not be available from this endpoint if the actionType parameter is not provided. |
Detailed descriptions
objectTypeName: The object type of the document.
documentId: The ID of the document.
actionId: The ID of the action. This could be a document version or the ID of an action.
tableLimit: Specifies the length at which to truncate child document action history. For example, assume that a request is made with this query parameter set to 5. If, for a given child document type, there is less than 5 child documents for a specific action (Create/Edit/Delete), then 'n' child documents are returned. If 'n' is greater than 5, a message instructs the user to use the Versions control to view the child documents.
actionType: The type of the action. This is one of the available action types for the document. Currently, this parameter is not required by the server, but omitting it is deprecated. This parameter will be required in a future version of the API. Certain action types will not be available from this endpoint if the actionType parameter is not provided.
Example responses
200 Response
{
"actionId": "2",
"action": "Edited the Person",
"actionType": "DOCUMENT_EDIT",
"objectType": "Person",
"objectId": "uuid_100",
"objectVersion": "2",
"createdBy": "videmo",
"createdAt": "2023-06-28T00:00:00.000Z",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/person/uuid_100/actions/2?actionType=DOCUMENT_EDIT",
"uri": "/svi-datahub/documents/person/uuid_100/actions/2?actionType=DOCUMENT_EDIT",
"type": "application/vnd.sas.investigate.action"
}
],
"version": 1,
"items": [
{
"type": "tableItem",
"action": "Changed fields",
"headings": [
"Field",
"Original Value",
"New Value"
],
"rows": [
[
{
"value": "Person Id",
"type": "STRING"
},
{
"value": "uuid_100",
"type": "STRING"
}
],
[
{
"value": "First Name",
"type": "STRING"
},
{
"value": "John",
"type": "STRING"
}
],
[
{
"value": "Last Name",
"type": "STRING"
},
{
"value": "Smith",
"type": "STRING"
}
],
[
{
"value": "Created By",
"type": "STRING"
},
{
"value": "unit_test",
"type": "STRING"
}
],
[
{
"value": "Last Updated By",
"type": "STRING"
},
{
"value": "videmo",
"type": "STRING"
}
]
]
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | action |
400 | Bad Request | Action history was not available for the specified document. | sasError |
404 | Not Found | The specified document or action was not found. | sasError |
Get headers for summary of version history for a document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/versions
Gets headers for a summary of version history for a document. Version summaries contain a link to fetch the full version representation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. |
includeDisplayLabel | query | boolean | false | Indicates whether to include the display label for the document. |
Detailed descriptions
objectTypeName: The object type of the document.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request.
includeDisplayLabel: Indicates whether to include the display label for the document.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Version history was not available for the specified document. | None |
404 | Not Found | The specified document was not found. | None |
Get summary of version history for a document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/versions
Gets a summary of version history for a document. Version summaries contain a link to fetch the full version representation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. |
includeDisplayLabel | query | boolean | false | Indicates whether to include the display label for the document. |
Detailed descriptions
objectTypeName: The object type of the document.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request.
includeDisplayLabel: Indicates whether to include the display label for the document.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/person/uuid_100/versions",
"uri": "/svi-datahub/documents/person/uuid_100/versions",
"type": "application/vnd.sas.collection"
},
{
"method": "GET",
"rel": "next",
"href": "/svi-datahub/documents/person/uuid_100/versions?start=40&limit=40",
"uri": "/svi-datahub/documents/person/uuid_100/versions?start=40&limit=40",
"type": "application/vnd.sas.collection"
},
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/person/uuid_100/versions?start=0&limit=40",
"uri": "/svi-datahub/documents/person/uuid_100/versions?start=0&limit=40",
"type": "application/vnd.sas.collection"
}
],
"name": "versions",
"start": 0,
"count": 1,
"items": [
{
"typeName": "person",
"id": "uuid_100",
"version": "2",
"operation": "update",
"createdBy": "videmo",
"createdAt": "2023-06-28T19:28:42.948Z",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/person/uuid_100/versions/2",
"uri": "/svi-datahub/documents/person/uuid_100/versions/2",
"type": "application/vnd.sas.investigate.version+json"
}
]
}
],
"limit": 40,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | versionSummaryCollection |
400 | Bad Request | Version history was not available for the specified document. | sasError |
404 | Not Found | The specified document was not found. | sasError |
Get headers for a document version
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/versions/{version}
Gets headers for the full representation of a version from a document's version history. A link to this representation is returned in the links property of a version summary.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
version | path | string | true | The version of the document. |
changedOnly | query | boolean | false | Indicates whether to return only the fields that have changed between the previous and requested document version. |
includeDisplayLabel | query | boolean | false | Indicates whether to include the display label for the document in the version. |
Detailed descriptions
objectTypeName: The object type of the document.
documentId: The ID of the document.
version: The version of the document.
changedOnly: Indicates whether to return only the fields that have changed between the previous and requested document version.
includeDisplayLabel: Indicates whether to include the display label for the document in the version.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Version history was not available for the specified document. | None |
404 | Not Found | The specified document or document version was not found. | None |
Get a version for a document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/versions/{version}
Gets the full representation of a version from a document's version history. A link to this representation is returned in the links property of a version summary.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
version | path | string | true | The version of the document. |
changedOnly | query | boolean | false | Indicates whether to return only the fields that have changed between the previous and requested document version. |
includeDisplayLabel | query | boolean | false | Indicates whether to include the display label for the document in the version. |
Detailed descriptions
objectTypeName: The object type of the document.
documentId: The ID of the document.
version: The version of the document.
changedOnly: Indicates whether to return only the fields that have changed between the previous and requested document version.
includeDisplayLabel: Indicates whether to include the display label for the document in the version.
Example responses
200 Response
{
"typeName": "person",
"id": "uuid_100",
"version": "2",
"operation": "update",
"createdBy": "videmo",
"createdAt": "2023-06-28T19:28:42.948Z",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/person/uuid_100/versions/2",
"uri": "/svi-datahub/documents/person/uuid_100/versions/2",
"type": "application/vnd.sas.investigate.version+json"
}
],
"values": [
{
"name": "created_at_dttm",
"label": "Created At",
"value": "2015-10-01T18:30:03.656Z",
"type": "TIMESTAMP",
"valueChanged": true
},
{
"name": "created_by_user_id",
"label": "Created By",
"value": "unit_test",
"type": "STRING",
"valueChanged": true
},
{
"name": "first_name",
"label": "First Name",
"value": "John",
"type": "STRING",
"valueChanged": true
},
{
"name": "last_name",
"label": "Last Name",
"value": "Smith",
"type": "STRING",
"valueChanged": true
},
{
"name": "last_updated_at_dttm",
"label": "Last Updated At",
"value": "2023-06-28T19:28:42.948Z",
"type": "TIMESTAMP",
"valueChanged": true
},
{
"name": "last_updated_by_user_id",
"label": "Last Updated By",
"value": "videmo",
"type": "STRING",
"valueChanged": true
},
{
"name": "id",
"label": "Person Id",
"value": "uuid_100",
"type": "STRING",
"valueChanged": true
},
{
"name": "version",
"label": "Version",
"value": 2,
"type": "LONG",
"valueChanged": true
},
{
"name": "birthday",
"label": "Birthday",
"type": "TIMESTAMP",
"valueChanged": false
},
{
"name": "gender",
"label": "Gender",
"type": "REFERENCE_DATA",
"valueChanged": false
},
{
"name": "ps_inc",
"label": "Ps Inc",
"type": "NUMERIC",
"valueChanged": false
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | version |
400 | Bad Request | Version history was not available for the specified document. | sasError |
404 | Not Found | The specified document or document version was not found. | sasError |
Get headers for a summary of version history for a child document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}
Gets headers for a summary of version history for a child document. Child version summaries contain a link to fetch the full child version representation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the child document's parent document. |
documentId | path | string | true | The ID of the child document's parent document. |
version | path | string | true | The version of the child document's parent document. |
childDocType | path | string | true | The object type of the child document. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. |
includeDisplayLabel | query | boolean | false | Indicates whether to include the display label for the child document in the version. |
operation | query | string | false | A query parameter that can be used to filter the child documents by their operation. |
Detailed descriptions
objectTypeName: The object type of the child document's parent document.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request.
includeDisplayLabel: Indicates whether to include the display label for the child document in the version.
operation: A query parameter that can be used to filter the child documents by their operation. The available operations are:
- "create"
- "delete"
- "update"
- "unknown"
- "unchanged"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Version history was not available for the specified child document. | None |
404 | Not Found | The specified child document or parent document was not found. | None |
Get a summary of version history for a child document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection'
const headers = {
'Accept':'application/vnd.sas.collection'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}
Gets a summary of version history for a child document. Child version summaries contain a link to fetch the full child version representation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the child document's parent document. |
documentId | path | string | true | The ID of the child document's parent document. |
version | path | string | true | The version of the child document's parent document. |
childDocType | path | string | true | The object type of the child document. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. |
includeDisplayLabel | query | boolean | false | Indicates whether to include the display label for the child document in the version. |
operation | query | string | false | A query parameter that can be used to filter the child documents by their operation. |
Detailed descriptions
objectTypeName: The object type of the child document's parent document.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request.
includeDisplayLabel: Indicates whether to include the display label for the child document in the version.
operation: A query parameter that can be used to filter the child documents by their operation. The available operations are:
- "create"
- "delete"
- "update"
- "unknown"
- "unchanged"
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address",
"type": "application/vnd.sas.collection"
},
{
"method": "GET",
"rel": "next",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address?start=40&limit=40",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address?start=40&limit=40",
"type": "application/vnd.sas.collection"
},
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address?start=0&limit=40",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address?start=0&limit=40",
"type": "application/vnd.sas.collection"
}
],
"name": "versions",
"start": 0,
"count": 1,
"items": [
{
"typeName": "intel_address",
"id": "ee0634fb-fb3c-48c8-a9e3-9233376f96d3",
"version": "4",
"operation": "update",
"createdBy": "videmo",
"createdAt": "2023-06-28T20:45:01.643Z",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address/ee0634fb-fb3c-48c8-a9e3-9233376f96d3",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address/ee0634fb-fb3c-48c8-a9e3-9233376f96d3",
"type": "application/vnd.sas.investigate.childVersion+json"
}
],
"parentTypeName": "intel_report",
"parentId": "uuid_502",
"parentVersion": "4"
}
],
"limit": 40,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | childVersionSummaryCollection |
400 | Bad Request | Version history was not available for the specified child document. | sasError |
404 | Not Found | The specified child document or parent document was not found. | sasError |
Get headers for a child document version
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}
Gets headers for the full representation of a child version from a child document's version history. A link to this representation is returned in the "links" property of a child version summary.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the child document's parent document. |
documentId | path | string | true | The ID of the child document's parent document. |
version | path | string | true | The version of the child document's parent document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
changedOnly | query | boolean | false | Specifies whether to return only the fields that have changed between the previous and requested child document version. |
includeDisplayLabel | query | boolean | false | Specifies whether to include the display label for the child document. |
Detailed descriptions
objectTypeName: The object type of the child document's parent document.
documentId: The ID of the child document's parent document.
version: The version of the child document's parent document.
childDocType: The object type of the child document.
childDocId: The ID of the child document.
changedOnly: Specifies whether to return only the fields that have changed between the previous and requested child document version.
includeDisplayLabel: Specifies whether to include the display label for the child document.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Version history was not available for the specified child document. | None |
404 | Not Found | The specified child document, parent document, or parent document version was not found. | None |
Get a child version for a child document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}
Gets the full representation of a child version from a child document's version history. A link to this representation is returned in the "links" property of a child version summary.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the child document's parent document. |
documentId | path | string | true | The ID of the child document's parent document. |
version | path | string | true | The version of the child document's parent document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
changedOnly | query | boolean | false | Specifies whether to return only the fields that have changed between the previous and requested child document version. |
includeDisplayLabel | query | boolean | false | Specifies whether to include the display label for the child document. |
Detailed descriptions
objectTypeName: The object type of the child document's parent document.
documentId: The ID of the child document's parent document.
version: The version of the child document's parent document.
childDocType: The object type of the child document.
childDocId: The ID of the child document.
changedOnly: Specifies whether to return only the fields that have changed between the previous and requested child document version.
includeDisplayLabel: Specifies whether to include the display label for the child document.
Example responses
200 Response
{
"typeName": "intel_address",
"id": "ee0634fb-fb3c-48c8-a9e3-9233376f96d3",
"version": "4",
"operation": "update",
"createdBy": "videmo",
"createdAt": "2023-06-28T20:45:01.643Z",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address/ee0634fb-fb3c-48c8-a9e3-9233376f96d3",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address/ee0634fb-fb3c-48c8-a9e3-9233376f96d3",
"type": "application/vnd.sas.investigate.childVersion+json"
}
],
"parentTypeName": "intel_report",
"parentId": "uuid_502",
"parentVersion": "4",
"values": [
{
"name": "city",
"label": "City",
"value": "some city",
"type": "STRING",
"valueChanged": true
},
{
"name": "id",
"label": "Address Id",
"previousVersionValue": "ee0634fb-fb3c-48c8-a9e3-9233376f96d3",
"value": "ee0634fb-fb3c-48c8-a9e3-9233376f96d3",
"type": "STRING",
"valueChanged": false
},
{
"name": "intel_report_id",
"label": "Report Id",
"previousVersionValue": "uuid_502",
"value": "uuid_502",
"type": "STRING",
"valueChanged": false
},
{
"name": "state",
"label": "State",
"type": "STRING",
"valueChanged": false
},
{
"name": "street",
"label": "Street",
"previousVersionValue": "some street",
"value": "some street",
"type": "STRING",
"valueChanged": false
},
{
"name": "zip",
"label": "Zip code",
"type": "STRING",
"valueChanged": false
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | childVersion |
400 | Bad Request | Version history was not available for the specified child document. | sasError |
404 | Not Found | The specified child document, parent document, or parent document version was not found. | sasError |
Get headers for additional history information about a historical document version
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/items
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/items',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/items')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/items", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/versions/{version}/items
Gets headers for additional history information about a historical document version. For example, this could be Create, Edit, and Delete operations on Insight objects associated with the document.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
version | path | string | true | The version of the document for which to fetch additional history information. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. |
Detailed descriptions
objectTypeName: The object type of the document.
documentId: The ID of the document.
version: The version of the document for which to fetch additional history information.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Additional history information was not available for the specified document. | None |
404 | Not Found | The specified document or document version was not found. | None |
Get additional history information about a historical document version
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/items \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/items',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/items', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/items", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/versions/{version}/items
Gets additional history information about a historical document version. For example, this could be Create, Edit, and Delete operations on Insight objects associated with the document.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the document. |
documentId | path | string | true | The ID of the document. |
version | path | string | true | The version of the document for which to fetch additional history information. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. |
Detailed descriptions
objectTypeName: The object type of the document.
documentId: The ID of the document.
version: The version of the document for which to fetch additional history information.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/6/items?start=0&limit=40",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/6/items?start=0&limit=40",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.history.info"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/6/items",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/6/items",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.history.info"
}
],
"name": "owner",
"accept": "application/vnd.sas.datahub.history.info",
"start": 0,
"count": 1,
"items": [
{
"historyInfoId": 501,
"itemRefId": "50",
"itemType": "Insight",
"itemLabel": "Insight-1",
"operation": "Added",
"ownerType": "intel_report",
"ownerId": "uuid_502",
"ownerVersion": "6"
}
],
"limit": 40,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | historyinfoCollection |
400 | Bad Request | Additional history information was not available for the specified document. | sasError |
404 | Not Found | The specified document or document version was not found. | sasError |
Get headers for additional history information for a child document at a specific parent document version
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items
Gets headers for additional history information for a child document at a specific parent document version.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the child document's parent document. |
documentId | path | string | true | The ID of the child document's parent document. |
version | path | string | true | The version of the child document's parent document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. |
Detailed descriptions
objectTypeName: The object type of the child document's parent document.
documentId: The ID of the child document's parent document.
version: The version of the child document's parent document.
childDocType: The object type of the child document.
childDocId: The ID of the child document.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Additional history information was not available for the given child document. | None |
404 | Not Found | The specified parent document, child document, or parent document version was not found. | None |
Get additional history information for a child document at a specific parent document version
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items
Gets additional history information for a child document at a specific parent document version.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The object type of the child document's parent document. |
documentId | path | string | true | The ID of the child document's parent document. |
version | path | string | true | The version of the child document's parent document. |
childDocType | path | string | true | The object type of the child document. |
childDocId | path | string | true | The ID of the child document. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. |
Detailed descriptions
objectTypeName: The object type of the child document's parent document.
documentId: The ID of the child document's parent document.
version: The version of the child document's parent document.
childDocType: The object type of the child document.
childDocId: The ID of the child document.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/6/items?start=0&limit=40",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/6/items?start=0&limit=40",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.history.info"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/intel_report/uuid_502/versions/6/items",
"uri": "/svi-datahub/documents/intel_report/uuid_502/versions/6/items",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.history.info"
}
],
"name": "owner",
"accept": "application/vnd.sas.datahub.history.info",
"start": 0,
"count": 1,
"items": [
{
"historyInfoId": 501,
"itemRefId": "50",
"itemType": "Insight",
"itemLabel": "Insight-1",
"operation": "Added",
"ownerType": "intel_report",
"ownerId": "uuid_502",
"ownerVersion": "6"
}
],
"limit": 40,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | historyinfoCollection |
400 | Bad Request | Additional history information was not available for the given child document. | sasError |
404 | Not Found | The specified parent document, child document, or parent document version was not found. | sasError |
Lock a document for editing and deletion
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/locks/documents?type=string&id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = 'null';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/locks/documents?type=string&id=string',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/locks/documents', params={
'type': 'string', 'id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/locks/documents", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /locks/documents
Places a lock on a document prior to modifying or deleting the document. If another user has a lock on the object, the request fails. Be sure to delete the lock after editing the document. A document lock times out after two hours or when the session ends; whichever occurs first.
Body parameter
null
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | query | string | true | The entity type name of the document. |
id | query | string | true | The ID of the document. |
body | body | any | false | none |
Example responses
201 Response
{}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
409 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | A lock was placed on the document. There is no body in the response. | Inline |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The document was not found. | sasError |
409 | Conflict | Unable to place a lock on the document because another user has already locked it. | sasError |
Response Schema
Release a document lock
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-datahub/locks/documents?type=string&id=string
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/locks/documents?type=string&id=string',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-datahub/locks/documents', params={
'type': 'string', 'id': 'string'
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-datahub/locks/documents", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /locks/documents
Releases a document lock. A document lock times out after two hours or when the session ends; whichever occurs first.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | query | string | true | The entity type name of the document. |
id | query | string | true | The ID of the document. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The lock was released. If there was no lock, a 204 is still returned. | None |
Query document lock for user
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/locks/documents?type=string&id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/locks/documents?type=string&id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/locks/documents', params={
'type': 'string', 'id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/locks/documents", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /locks/documents
Determines whether the user has a lock on a document.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | query | string | true | The entity type name of the document. |
id | query | string | true | The ID of the document. |
Example responses
200 Response
true
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The response is a Boolean value that indicates whether the user has a lock on the document. | boolean |
404 | Not Found | The document was not found. | sasError |
Relationship Links
Contains the operations related to relationship links.
Create a new relationship link between two documents
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/links?includeEntityLabels=false \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links?includeEntityLabels=false',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/links', params={
'includeEntityLabels': 'false'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/links", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /links
Creates a new relationship link between two documents. A link is an instance of a relationship type. A relationship type that describes the link must already exist. The relationship type must have an internal bridge table to create links.
Body parameter
{
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
includeEntityLabels | query | boolean | true | Compute and include display labels for both to and from documents in the response. |
body | body | relationshipLink | false | An object that represents the link. |
Example responses
201 Response
{
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | A new relationship link between two documents was created. | maskedRelationshipLink |
400 | Bad Request | The request was invalid. | sasError |
Query a list of links or an individual link based on specific query parameters
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json' \
-H 'Accept-Item: application/json'
const headers = {
'Accept':'application/json',
'Accept-Item':'application/json'
};
fetch('https://example.com/svi-datahub/links',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Accept-Item': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/links', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Accept-Item": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links
Gets either a list of links that are associated with a document or an individual link. The type of request is determined by the included query parameters. Do not mix the query parameters for both types of requests.
- To fetch a list of all links that originate from a specific document, use these query parameters:
- _relationshipName
- _fromEntityTypeName
- _entityId
- _entityTypeName
- _includeEntityLabels
- To fetch an individual link between two documents, use these query parameters:
- relationshipName
- fromEntityTypeName
- fromEntityId
- toEntityTypeName
- toEntityId
- includeEntityLabels
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_relationshipName | query | string | false | The name of the relationship type upon which the link is based. |
_fromEntityTypeName | query | string | false | The entity type of the starting point of the link. |
_entityId | query | string | false | The unique identifier for the entity that is the starting point of the link. |
_entityTypeName | query | string | false | The same value as _fromEntityTypeName. (This is required for legacy reasons.) |
_includeEntityLabels | query | boolean | false | Compute and include display labels for both to and from documents. |
relationshipName | query | string | false | The name of the relationship type upon which the link is based. |
fromEntityTypeName | query | string | false | The entity type of the starting point of the link. |
fromEntityId | query | string | false | The unique identifier for the entity that is the starting point of the link. |
toEntityTypeName | query | string | false | The entity type of the destination point of the link. |
toEntityId | query | string | false | The unique identifier for the entity that is the destination point of the link. |
includeEntityLabels | query | boolean | false | Compute and include display labels for both the to document and the from document. |
Accept-Item | header | string | false | The media type that the client accepts for items within the response collection. This value is ignored when this operation is fetching a single relationship link. |
Detailed descriptions
Accept-Item: The media type that the client accepts for items within the response collection. This value is ignored when this operation is fetching a single relationship link.
Enumerated Values
Parameter | Value |
---|---|
Accept-Item | application/json |
Accept-Item | application/vnd.sas.investigation.data.masked.relationshiplink |
Accept-Item | application/vnd.sas.investigation.data.masked.relationshiplink+json |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.relationshiplink |
Accept-Item | application/vnd.sas.investigation.data.minimally.masked.relationshiplink+json |
Example responses
Example of a Relationship Link object.
{
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
}
Example of a Resource Collection that contains Relationship Link objects.
{
"links": [],
"name": "documentLinks",
"items": [
{
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
}
],
"version": 2
}
Example of a Resource Collection that contains Masked Relationship Link objects.
{
"links": [],
"name": "documentLinks",
"items": [
{
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"ssn": "•••••••••",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
}
],
"version": 2
}
Example of a Resource Collection that contains Relationship Link objects.
Example of a Resource Collection that contains Masked Relationship Link objects.
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
415 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The response is either an individual link or a Resource Collection of links. | Inline |
404 | Not Found | Unable to find a link or links based on the values that are provided in the request. | sasError |
415 | Unsupported Media Type | The endpoint cannot produce collection items of the type specified in the Accept-Item header. |
sasError |
Response Schema
Enumerated Values
Property | Value |
---|---|
fieldDataType | REFERENCE_DATA |
fieldDataType | USER_GROUP |
fieldDataType | BOOLEAN |
fieldDataType | STRING |
fieldDataType | SMALLINT |
fieldDataType | INTEGER |
fieldDataType | LONG |
fieldDataType | FLOAT |
fieldDataType | DOUBLE |
fieldDataType | NUMERIC |
fieldDataType | DATE |
fieldDataType | TIMESTAMP |
fieldDataType | TIMESTAMP_WITH_TIME_ZONE |
fieldDataType | JSON |
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
Update a relationship link
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-datahub/links/@item?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/@item?_id=string',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Accept': 'application/json'
}
r = requests.put('https://example.com/svi-datahub/links/@item', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-datahub/links/@item", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /links/@item
Updates an existing relationship link where the relationship type has an internal bridge table.
Body parameter
{
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
_includeEntityLabels | query | boolean | false | Specifies whether to compute and include display labels for both the to document and the from document in the response. |
Accept | header | string | false | For relationship link fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Accept" HTTP header can be used to control how masked fields are handled during updates. If this HTTP header is not provided or is set to "application/json", then masked field values that are set to null will be ignored. If the "Accept" header is set to "application/vnd.sas.investigation.data.masked.relationshiplink+json" then masked fields that are set to the mask template (nine dots) will be ignored. The "Accept" header value should match the data masking approach that was used to fetch data before an update is performed. |
body | body | relationshipLink | false | An object that represents the link. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
_includeEntityLabels: Specifies whether to compute and include display labels for both the to document and the from document in the response.
Accept: For relationship link fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Accept" HTTP header can be used to control how masked fields are handled during updates. If this HTTP header is not provided or is set to "application/json", then masked field values that are set to null will be ignored. If the "Accept" header is set to "application/vnd.sas.investigation.data.masked.relationshiplink+json" then masked fields that are set to the mask template (nine dots) will be ignored. The "Accept" header value should match the data masking approach that was used to fetch data before an update is performed.
Enumerated Values
Parameter | Value |
---|---|
Accept | application/json |
Accept | application/vnd.sas.investigation.data.masked.relationshiplink+json |
Example responses
200 Response
{
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
412 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
428 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | relationshipLink |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | Unable to find the link. | sasError |
412 | Precondition Failed | The link in the request body was out of date. | sasError |
428 | Precondition Required | The link in the request body did not contain a version. | sasError |
Query an individual link
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/@item?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/@item?_id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/links/@item', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/@item", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/@item
Retrieves an individual link using an ID string.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
_includeDisplayLabel | query | boolean | false | Specifies whether to compute and include display labels for both the to document and the from document in the response. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
_includeDisplayLabel: Specifies whether to compute and include display labels for both the to document and the from document in the response.
Example responses
200 Response
{
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. An individual link is returned. | maskedRelationshipLink |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | Unable to find the link. | sasError |
Patch a relationship link
Code samples
# You can also use wget
curl -X PATCH https://example.com/svi-datahub/links/@item?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'If-Match: 0'
const inputBody = '[
{
"path": "string",
"op": "string",
"value": null
}
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'If-Match':'0'
};
fetch('https://example.com/svi-datahub/links/@item?_id=string',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'If-Match': '0'
}
r = requests.patch('https://example.com/svi-datahub/links/@item', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"If-Match": []string{"0"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://example.com/svi-datahub/links/@item", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /links/@item
Applies a patch to a relationship link. This enables a client to make changes to a link without needing to load the entire link. The request body contains a description of changes to be made to the link, which is represented by a json-patch object. For more information about json-patch, refer to jsonpatch.com.
Body parameter
[
{
"path": "string",
"op": "string",
"value": null
}
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
_includeEntityLabels | query | boolean | false | Specifies whether to compute and include display labels for both the to document and the from document in the response. |
If-Match | header | integer | true | The version of the relationship link to update. This value must match the most recent version of the relationship link. If the value does not match the most recent version of the relationship link, the patch operation fails. This helps prevent conflicting edits from being applied to a relationship link. |
body | body | jsonPatch | false | A json-patch specification of changes to make to the relationship link. Copy and move operations cannot use a masked field value as their source. Test operations cannot reference masked field values. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
_includeEntityLabels: Specifies whether to compute and include display labels for both the to document and the from document in the response.
If-Match: The version of the relationship link to update. This value must match the most recent version of the relationship link. If the value does not match the most recent version of the relationship link, the patch operation fails. This helps prevent conflicting edits from being applied to a relationship link.
body: A json-patch specification of changes to make to the relationship link. Copy and move operations cannot use a masked field value as their source. Test operations cannot reference masked field values.
Example responses
200 Response
{
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
412 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
428 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The response body contains the relationship link after the application of the patch. | maskedRelationshipLink |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The relationship link was not found. | sasError |
412 | Precondition Failed | The relationship link in the request body was out of date. | sasError |
428 | Precondition Required | The relationship link in the request body did not contain a version. | sasError |
Delete a relationship link
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-datahub/links/@item?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/@item?_id=string',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.delete('https://example.com/svi-datahub/links/@item', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-datahub/links/@item", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /links/@item
Deletes an existing relationship link where the relationship type has an internal bridge table.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Example responses
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
404 | Not Found | Unable to find a link or links based on the values that are provided in the request. | sasError |
Get headers for field values for a relationship link
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/links/@item/fields?_id=string&fieldName=string
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/links/@item/fields?_id=string&fieldName=string',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/links/@item/fields', params={
'_id': 'string', 'fieldName': [
"string"
]
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/links/@item/fields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /links/@item/fields
Gets headers for a representation of multiple field values for a relationship link. Since the GET operation for this endpoint does not produce an error if the user is not authorized to reveal the value of a masked field, this HEAD operation does not either.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
fieldName | query | array[string] | true | The names of the fields. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The relationship link or field was not found. | None |
Get field values for a relationship link
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/@item/fields?_id=string&fieldName=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/@item/fields?_id=string&fieldName=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/links/@item/fields', params={
'_id': 'string', 'fieldName': [
"string"
]
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/@item/fields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/@item/fields
Gets a representation of multiple field values for a relationship link. If any of the fields is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If any of the fields are configured for masking and the requesting user is not authorized to reveal the value of the masked field, the value will be omitted from the response.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
fieldName | query | array[string] | true | The names of the fields. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Example responses
200 Response
{
"count": 2,
"items": [
{
"fieldName": "ssn",
"raw": "012345678"
},
{
"fieldName": "last_name",
"raw": "Smith"
}
]
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValueCollection |
404 | Not Found | The relationship link or field was not found. | sasError |
Get headers for field value for a relationship link
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/links/@item/fields/{fieldName}?_id=string
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/links/@item/fields/{fieldName}?_id=string',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/links/@item/fields/{fieldName}', params={
'_id': 'string'
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/links/@item/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /links/@item/fields/{fieldName}
Gets headers for a representation of a field value for a relationship link. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
fieldName | path | string | true | The name of the field. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The relationship link or field was not found. | None |
Get field value for a relationship link
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/@item/fields/{fieldName}?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/@item/fields/{fieldName}?_id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/links/@item/fields/{fieldName}', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/@item/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/@item/fields/{fieldName}
Gets a representation of a field value for a relationship link. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
fieldName | path | string | true | The name of the field. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Example responses
200 Response
{
"fieldName": "ssn",
"raw": "012345678"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValue |
404 | Not Found | The relationship link or field was not found. | sasError |
Get headers for historical field value for a relationship link
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/links/history/@item/fields/{fieldName}?_id=string&version=0
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/links/history/@item/fields/{fieldName}?_id=string&version=0',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/links/history/@item/fields/{fieldName}', params={
'_id': 'string', 'version': '0'
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/links/history/@item/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /links/history/@item/fields/{fieldName}
Gets headers for a representation of a field value for a relationship link at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
fieldName | path | string | true | The name of the field. |
version | query | integer | true | The version of the document in history. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The relationship link or field was not found. | None |
Get historical field value for a relationship link
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/history/@item/fields/{fieldName}?_id=string&version=0 \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/history/@item/fields/{fieldName}?_id=string&version=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/links/history/@item/fields/{fieldName}', params={
'_id': 'string', 'version': '0'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/history/@item/fields/{fieldName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/history/@item/fields/{fieldName}
Gets a representation of a field value for a relationship link at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
fieldName | path | string | true | The name of the field. |
version | query | integer | true | The version of the document in history. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Example responses
200 Response
{
"fieldName": "ssn",
"raw": "012345678"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fieldValue |
404 | Not Found | The relationship link or field was not found. | sasError |
Get summary of action history for a link
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/@item/actions?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json' \
-H 'Accept-Item: string'
const headers = {
'Accept':'application/json',
'Accept-Item':'string'
};
fetch('https://example.com/svi-datahub/links/@item/actions?_id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Accept-Item': 'string'
}
r = requests.get('https://example.com/svi-datahub/links/@item/actions', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Accept-Item": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/@item/actions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/@item/actions
Gets a summary of action history for a link. Action history summaries contain a link to fetch the full representation. The 'Accept-Item' request header can be used to fetch the 'available action types' for this link. If the 'Accept-Item' header is set to "application/vnd.sas.investigate.action.type", this endpoint returns a collection of action types. This collection represents all of the action types that exist historically for the specified link, providing an exhaustive list of all possible filter options.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
sortBy | query | string | false | The sort criteria for the request. Only sorting by the 'createdAt' field descending or ascending is supported. |
actionType | query | string | false | The filter criteria for the request. The Basic Selection filter syntax for the 'actionType' field is supported. For example: '?actionType=RELATIONSHIP_EDIT' would return only RELATIONSHIP_EDIT actions. |
Accept-Item | header | string | false | If set to 'application/vnd.sas.investigate.action.type', the 'available action types' are returned. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
sortBy: The sort criteria for the request. Only sorting by the 'createdAt' field descending or ascending is supported.
actionType: The filter criteria for the request. The Basic Selection filter syntax for the 'actionType' field is supported. For example: '?actionType=RELATIONSHIP_EDIT' would return only RELATIONSHIP_EDIT actions.
Accept-Item: If set to 'application/vnd.sas.investigate.action.type', the 'available action types' are returned.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/links/@item/actions?_id=witnessed_by%7C_%7Cintel_report%7C_%7Cperson%7C_%7Ce5343e0e-3d68-11e8-b467-0ed5f89f718b&start=0&limit=10",
"uri": "/svi-datahub/links/@item/actions?_id=witnessed_by%7C_%7Cintel_report%7C_%7Cperson%7C_%7Ce5343e0e-3d68-11e8-b467-0ed5f89f718b&start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigate.action.summary"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/links/@item/actions?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"uri": "/svi-datahub/links/@item/actions?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigate.action.summary"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/links/@item?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"uri": "/svi-datahub/links/@item?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"type": "application/vnd.sas.investigate.action.summary"
},
{
"method": "GET",
"rel": "availableActionTypes",
"href": "/svi-datahub/links/@item/actions?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"uri": "/svi-datahub/links/@item/actions?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigate.action.type"
}
],
"name": "actions",
"start": 0,
"count": 1,
"items": [
{
"actionId": "2",
"action": "Edited the relationship",
"actionType": "RELATIONSHIP_EDIT",
"objectType": "Witnessed by",
"objectId": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"objectVersion": "2",
"createdBy": "videmo",
"createdAt": "2023-06-29T22:17:51.061Z",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/links/@item/actions/2?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"uri": "/svi-datahub/links/@item/actions/2?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"type": "application/vnd.sas.investigate.action"
}
],
"version": 1
}
],
"limit": 10,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
400 | Bad Request | Action history was not available for the specified link. | sasError |
404 | Not Found | The specified link was not found. | sasError |
Response Schema
Enumerated Values
Property | Value |
---|---|
actionType | DOCUMENT_CREATE |
actionType | DOCUMENT_EDIT |
actionType | DOCUMENT_DELETE |
actionType | DOCUMENT_UNKNOWN |
actionType | RELATIONSHIP_CREATE |
actionType | RELATIONSHIP_EDIT |
actionType | RELATIONSHIP_DELETE |
actionType | RELATIONSHIP_UNKNOWN |
actionType | OBJECT_LINKED |
actionType | OBJECT_LINK_EDIT |
actionType | OBJECT_UNLINKED |
actionType | OBJECT_LINK_UNKNOWN |
actionType | COMMENT_CREATE |
actionType | COMMENT_EDIT |
actionType | FILE_UPLOAD |
actionType | FILE_DELETE |
Get headers for an action from the action history of a link
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/links/@item/actions/{actionId}?_id=string
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/links/@item/actions/{actionId}?_id=string',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/links/@item/actions/{actionId}', params={
'_id': 'string'
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/links/@item/actions/{actionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /links/@item/actions/{actionId}
Gets headers for the full representation of an action from a link's action history. A link to this representation is returned in the links property of an action summary.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
actionId | path | string | true | The ID of the action. |
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
Detailed descriptions
actionId: The ID of the action.
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Action history was not available for the specified link. | None |
404 | Not Found | The specified link or requested action was not found. | None |
Get an action from the action history of a link
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/@item/actions/{actionId}?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/@item/actions/{actionId}?_id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/links/@item/actions/{actionId}', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/@item/actions/{actionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/@item/actions/{actionId}
Gets the full representation of an action from a link's action history. A link to this representation is returned in the links property of an action summary.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
actionId | path | string | true | The ID of the action. |
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
Detailed descriptions
actionId: The ID of the action.
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
Example responses
200 Response
{
"actionId": "2",
"action": "Edited the relationship",
"actionType": "RELATIONSHIP_EDIT",
"objectType": "Witnessed by",
"objectId": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"objectVersion": "2",
"createdBy": "videmo",
"createdAt": "2023-06-29T00:00:00.000Z",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/links/@item/actions/2?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"uri": "/svi-datahub/links/@item/actions/2?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"type": "application/vnd.sas.investigate.action"
}
],
"version": 1,
"items": [
{
"type": "tableItem",
"action": "Changed properties",
"headings": [
"Property",
"Original Value",
"New Value"
],
"rows": [
[
{
"value": "Auto Generated Sk",
"type": "STRING"
},
{
"value": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"type": "STRING"
}
],
[
{
"value": "Person Id",
"type": "STRING"
},
{
"value": "uuid_102",
"type": "STRING"
}
],
[
{
"value": "Report Id",
"type": "STRING"
},
{
"value": "uuid_502",
"type": "STRING"
}
],
[
{
"value": "Description",
"type": "STRING"
},
{
"value": "some description",
"type": "STRING"
}
],
[
{
"value": "Created By User Id",
"type": "STRING"
},
{
"value": "unit_test",
"type": "STRING"
}
],
[
{
"value": "Last Updated By User Id",
"type": "STRING"
},
{
"value": "videmo",
"type": "STRING"
}
]
]
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | action |
400 | Bad Request | Action history was not available for the specified link. | sasError |
404 | Not Found | The specified link or requested action was not found. | sasError |
Get summary of version history for a link
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/@item/versions?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/@item/versions?_id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/links/@item/versions', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/@item/versions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/@item/versions
Gets a summary of version history for a link. Version summaries contain a link to fetch the full version representation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
includeDisplayLabel | query | boolean | false | Specifies whether to include the display label for the link. |
start | query | integer | false | The start index. This is used for paging. |
limit | query | integer | false | The maximum number of items to return in a page of results. |
Detailed descriptions
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
includeDisplayLabel: Specifies whether to include the display label for the link.
start: The start index. This is used for paging.
limit: The maximum number of items to return in a page of results.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/links/@item/versions?start=0&limit=40",
"uri": "/svi-datahub/links/@item/versions?start=0&limit=40",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigation.version.summary+json"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/links/@item/versions",
"uri": "/svi-datahub/links/@item/versions",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.investigation.version.summary+json"
}
],
"name": "versions",
"accept": "application/json application/vnd.sas.collection+json",
"count": 1,
"items": [
{
"typeName": "intel_report__witnessed_by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"version": "2",
"operation": "update",
"createdBy": "videmo",
"createdAt": "2023-06-29T22:17:51.061Z"
}
],
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | versionSummaryCollection |
400 | Bad Request | Version history was not available for the specified link. | sasError |
404 | Not Found | The specified link was not found. | sasError |
Get headers for a version from the version history of a link
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/links/@item/versions/{version}?_id=string
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/links/@item/versions/{version}?_id=string',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/links/@item/versions/{version}', params={
'_id': 'string'
})
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/links/@item/versions/{version}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /links/@item/versions/{version}
Gets headers for the full representation of a version from a link's version history. The link to fetch the full representation is returned with version summaries.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
version | path | string | true | - The version of the links history to fetch. |
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
includeDisplayLabel | query | boolean | false | Specifies whether to include the display label for the link in the version. |
changedOnly | query | boolean | false | Specifies whether to return only fields that have changed between the previous and requested link version. |
Detailed descriptions
version: - The version of the links history to fetch.
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
includeDisplayLabel: Specifies whether to include the display label for the link in the version.
changedOnly: Specifies whether to return only fields that have changed between the previous and requested link version.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | Version history was not available for the specified link. | None |
404 | Not Found | The specified link or the requested version was not found. | None |
Get a version from the version history of a link
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/@item/versions/{version}?_id=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/@item/versions/{version}?_id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/links/@item/versions/{version}', params={
'_id': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/@item/versions/{version}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/@item/versions/{version}
Gets the full representation of a version from a link's version history. The link to fetch the full representation is returned with version summaries.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
version | path | string | true | - The version of the links history to fetch. |
_id | query | string | true | The ID for an individual link. A link ID uses the following format: |
includeDisplayLabel | query | boolean | false | Specifies whether to include the display label for the link in the version. |
changedOnly | query | boolean | false | Specifies whether to return only fields that have changed between the previous and requested link version. |
Detailed descriptions
version: - The version of the links history to fetch.
_id: The ID for an individual link. A link ID uses the following format:
${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}
where |_|
is the delimiter between link ID components.
Link ID component details:
* relationshipName
- The relationship type name that defines the link.
* fromEntityTypeName
- The entity type name of the starting point for the link.
* fromEntityId
- The unique identifier of the entity that is the starting point for the link.
* toEntityTypeName
- The entity type name of the destination point for the link.
* toEntityId
- The unique identifier of the entity that is the destination point for the link.
When submitting the request, the pipe character (|
) must be percent-encoded as %7C
. See below for
an example of the pipe character properly encoded:
${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}
includeDisplayLabel: Specifies whether to include the display label for the link in the version.
changedOnly: Specifies whether to return only fields that have changed between the previous and requested link version.
Example responses
200 Response
{
"typeName": "intel_report__witnessed_by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"version": "2",
"operation": "update",
"createdBy": "videmo",
"createdAt": "2023-06-29T22:17:51.061Z",
"values": [
{
"name": "auto_generated_sk",
"label": "Auto Generated Sk",
"value": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"type": "STRING",
"valueChanged": true
},
{
"name": "personId",
"label": "Person Id",
"value": "uuid_102",
"type": "STRING",
"valueChanged": true
},
{
"name": "intelReportId",
"label": "Report Id",
"value": "uuid_502",
"type": "STRING",
"valueChanged": true
},
{
"name": "description",
"label": "Description",
"value": "updated description",
"type": "STRING",
"valueChanged": true
},
{
"name": "version",
"label": "Version",
"value": 2,
"type": "LONG",
"valueChanged": true
},
{
"name": "created_by_user_id",
"label": "Created By User Id",
"value": "unit_test",
"type": "STRING",
"valueChanged": true
},
{
"name": "created_at_dttm",
"label": "Created at Date/Time",
"value": "2015-10-01T18:30:03.656Z",
"type": "TIMESTAMP",
"valueChanged": true
},
{
"name": "last_updated_by_user_id",
"label": "Last Updated By User Id",
"value": "videmo",
"type": "STRING",
"valueChanged": true
},
{
"name": "last_updated_at_dttm",
"label": "Last Updated at Date/Time",
"value": "2023-06-29T22:17:51.061Z",
"type": "TIMESTAMP",
"valueChanged": true
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | version |
400 | Bad Request | Version history was not available for the specified link. | sasError |
404 | Not Found | The specified link or the requested version was not found. | sasError |
Bulk Create and Update links
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/links/bulk \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/links/bulk',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/links/bulk', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/links/bulk", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /links/bulk
Creates and Updates internal links in bulk. The input is a list of link objects. Each link represents either a Create or Update operation, depending on its form. The output is a list of operation summary results.
The input for the request is a SAS collection, which looks like the following:
json
{
"items":[...]
}
Each element in "items" represents a series of records to be inserted or updated. If a specified record includes a link id, then it is treated as an Update operation. Otherwise, it is a Create operation. All Create and Update operations are processed internally by the server.
The response from the request is another SAS collection with summary results for each item that was sent. Result items are in the same order as the input collection. If there is a problem, there will be an "error" property in the results for the item that had issues. If some items return errors, it does not prevent other valid records from being successfully processed.
Body parameter
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | sasCollection | false | none |
Example responses
200 Response
{
"links": [],
"name": "links",
"count": 2,
"items": [
{
"id": "primary_victim|_|police_report|_|person|_|id_600",
"relationshipTypeName": "primary_victim",
"fromId": "id_600",
"fromEntityType": "police_report",
"toId": "id_104",
"toEntityType": "person",
"operation": "UPDATE"
},
{
"error": {
"errorCode": 0,
"message": "The entity type with name \"TestChild\" was not found or the current user does not have the necessary permissions to view the entity type.",
"details": [
"From Entity Type: TestChild",
"From Entity ID: 3cf75c6d-439a-4b74-ac9f-ca2b5eb80c18",
"To Entity Type: Case",
"To Entity ID: 106f65d1-73be-4b7e-a78d-a33d38dbf057",
"Relationship Type Name: case_rev"
],
"id": "DH6106",
"version": 2,
"httpStatusCode": 404
}
}
],
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Links were created or updated. See items in the collection to determine whether the operation for an individual link succeeded or failed. | linkBulkOperationResultCollection |
400 | Bad Request | The request was invalid. | sasError |
Retrieve a count of the number of links between an entity and its related entities
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/links/count?entityTypeName=string&entityId=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json' \
-H 'Accept-Item: application/vnd.sas.investigation.link.count'
const headers = {
'Accept':'application/json',
'Accept-Item':'application/vnd.sas.investigation.link.count'
};
fetch('https://example.com/svi-datahub/links/count?entityTypeName=string&entityId=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Accept-Item': 'application/vnd.sas.investigation.link.count'
}
r = requests.get('https://example.com/svi-datahub/links/count', params={
'entityTypeName': 'string', 'entityId': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Accept-Item": []string{"application/vnd.sas.investigation.link.count"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/links/count", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /links/count
For a given entityTypeName and entityId, searches for all related entities and returns a summary of the total number of links found for each related entity type. This method finds all links that are related to an entity and from an entity.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | query | string | true | Specifies the name of the entity type for which to search. |
entityId | query | string | true | Specifies the ID of the entity for which to search. |
Accept-Item | header | string | true | When making a request to count links, specifies the media type of the items returned. |
Enumerated Values
Parameter | Value |
---|---|
Accept-Item | application/vnd.sas.investigation.link.count |
Example responses
200 Response
{
"links": [],
"name": "links",
"count": 2,
"items": [
{
"relationshipId": 101300,
"relationshipName": "customer_to_order",
"relationshipLabel": "Customer to Order",
"relationshipQualifiedName": "customer__customer_to_order",
"relationshipReverseName": "order_to_customer",
"relationshipReverseLabel": "Order to Customer",
"fromEntityTypeName": "customer",
"fromEntityTypeLabel": "Customer",
"toEntityTypeName": "order",
"toEntityTypeLabel": "Order",
"linkCount": 4
},
{
"relationshipId": 104200,
"relationshipName": "customer_to_address",
"relationshipLabel": "Customer to Address",
"relationshipQualifiedName": "customer__customer_to_address",
"relationshipReverseName": "address_to_customer",
"relationshipReverseLabel": "Address to Customer",
"fromEntityTypeName": "customer",
"fromEntityTypeLabel": "Customer",
"toEntityTypeName": "address",
"toEntityTypeLabel": "Address",
"linkCount": 2
}
],
"version": 2
}
{
"links": [],
"name": "links",
"count": 2,
"items": [
{
"relationshipId": 101300,
"relationshipName": "customer_to_order",
"relationshipLabel": "Customer to Order",
"relationshipQualifiedName": "customer__customer_to_order",
"relationshipReverseName": "order_to_customer",
"relationshipReverseLabel": "Order to Customer",
"fromEntityTypeName": "customer",
"fromEntityTypeLabel": "Customer",
"toEntityTypeName": "order",
"toEntityTypeLabel": "Order",
"linkCount": 4
},
{
"relationshipId": 104200,
"relationshipName": "customer_to_address",
"relationshipLabel": "Customer to Address",
"relationshipQualifiedName": "customer__customer_to_address",
"relationshipReverseName": "address_to_customer",
"relationshipReverseLabel": "Address to Customer",
"fromEntityTypeName": "customer",
"fromEntityTypeLabel": "Customer",
"toEntityTypeName": "address",
"toEntityTypeLabel": "Address",
"linkCount": 2
}
],
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A summary of all related links is returned. | countLinksResultCollection |
400 | Bad Request | The request was invalid. | sasError |
Entity Types
Contains the operations related to managing entity type metadata.
Retrieve an entity type object by name
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/storedObjects \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/storedObjects',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/storedObjects', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/storedObjects", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/storedObjects
Retrieves an entity type by name. An entity type is the metadata that is associated with documents.
The client can request a representation that contains additional metadata from this endpoint by specifying one of the following media types in the Accept header.
Value in Accept header | Additional data in representation |
---|---|
application/json | No additional data beyond the default Entity Type representation. |
application/vnd.sas.investigation.meta.entity.type.admin+json;version=2 | The default Entity Type representation, plus additional File Category metadata1. |
application/vnd.sas.investigation.meta.entity.type.admin.audit+json | The default Entity Type representation, plus additional File Category metadata1, plus metadata for audit object virtual fields2. |
1 Additional File Category metadata includes, for each File Category in the Entity Type metadata, whether files exist under that File Category, and a collection of Templates that reference that File Category.
2 Audit object virtual fields expose the values in "Created By User" fields and "Last Updated By User" fields as serialized JSON objects that can be consumed by User/Group Selection controls. An Entity Type without a "Created By User" field (that is, a field that has a name similar to "created_by_user") will not have an audit object virtual field for "Created By User." Likewise, an Entity Type without a "Last Updated By User" field (as defined by the field's role) will not have a "Last Updated By User" audit object virtual field.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | query | string | false | The name of an entity type object. |
excludeUnauthorized | query | boolean | false | Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true. |
Detailed descriptions
excludeUnauthorized: Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true.
Example responses
200 Response
{
"id": 100924,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.513Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.984Z",
"label": "Person",
"description": "Person",
"localizedLabels": [
{
"id": 102942,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Person",
"version": 0,
"localeCd": "en-US"
}
],
"localizedDescriptions": [
{
"id": 101015,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"description": "Person",
"version": 0,
"localeCd": "en-US"
}
],
"name": "person",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "person",
"systemReserved": false,
"historyEnabled": true,
"version": 6,
"validFromFieldName": "birthday",
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"displayTextFields": [
{
"name": "first_name",
"displayIndex": 0
},
{
"name": "last_name",
"displayIndex": 1
}
],
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "person",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"deleteTableName": "VdkDmdiNifqGgq8jOL3QwNHwZQxVkD",
"updateFlagHistoryColumnName": "updated_flg",
"type": "MANAGED",
"markerColor": "#0293a0",
"nodeShape": "square",
"nodeColor": "#ffffff",
"borderColor": "#BFBFBF",
"borderWidth": 1,
"scale": 1,
"nodeDecoration": {},
"elementGroupRoot": false,
"indexedForSearch": true,
"attachmentsIndexedForSearch": false,
"reindexRequired": false,
"fields": [
{
"id": 102858,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 102948,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 6,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102856,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "First Name",
"localizedLabels": [
{
"id": 102946,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "First Name",
"version": 0,
"localeCd": "en-US"
}
],
"name": "first_name",
"columnName": "first_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102859,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Name",
"localizedLabels": [
{
"id": 102949,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Name",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_name",
"columnName": "last_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102853,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Birthday",
"localizedLabels": [
{
"id": 102943,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Birthday",
"version": 0,
"localeCd": "en-US"
}
],
"name": "birthday",
"columnName": "birthday",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102862,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Version",
"localizedLabels": [
{
"id": 102952,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102855,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Created By",
"localizedLabels": [
{
"id": 102945,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Created By",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102854,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Created At",
"localizedLabels": [
{
"id": 102944,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Created At",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102861,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Updated By",
"localizedLabels": [
{
"id": 102951,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Updated By",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102860,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Updated At",
"localizedLabels": [
{
"id": 102950,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Updated At",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102857,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Gender",
"localizedLabels": [
{
"id": 102947,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Gender",
"version": 0,
"localeCd": "en-US"
}
],
"name": "gender",
"columnName": "gender",
"dataType": "REFERENCE_DATA",
"length": 10,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 9,
"version": 6,
"constrainingListName": "Gender",
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 103052,
"createdBy": "videmo",
"createdAt": "2023-06-28T17:22:53.701Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Ps Inc",
"localizedLabels": [
{
"id": 103282,
"createdBy": "videmo",
"createdAt": "2023-06-28T17:22:53.702Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T17:22:53.702Z",
"label": "Ps Inc",
"version": 0,
"localeCd": "en-US"
}
],
"name": "ps_inc",
"columnName": "ps_inc",
"dataType": "NUMERIC",
"precision": 6,
"scale": 6,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 10,
"version": 2,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
}
],
"relationshipsTo": [
{
"id": 101324,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.117Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Primary Victim",
"localizedLabels": [
{
"id": 103227,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Primary Victim",
"version": 0,
"localeCd": "en-US"
}
],
"name": "primary_victim",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "primary_victim",
"systemReserved": false,
"historyEnabled": true,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "primary_victim",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "police_report",
"reverseLabel": "Police Report",
"fromObjectName": "police_report",
"fromObjectLabel": "Police Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_ONE",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "police_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "police_report_id"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "person_id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101570,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103228,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101576,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Police Report ID",
"localizedLabels": [
{
"id": 103234,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Police Report ID",
"version": 0,
"localeCd": "en-US"
}
],
"name": "police_report_id",
"columnName": "police_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101575,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103233,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "person_id",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 2,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101577,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Version",
"localizedLabels": [
{
"id": 103235,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 3,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101572,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103230,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101571,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103229,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101574,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103232,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101573,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103231,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103236,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Police Report",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "police_report__primary_victim"
},
{
"id": 101323,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.750Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Witnessed by",
"localizedLabels": [
{
"id": 103216,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Witnessed by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "witnessed_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "witnessed_by",
"systemReserved": false,
"historyEnabled": true,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "witnessed_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "witnessed",
"reverseLabel": "Witnessed",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101561,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103217,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101568,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103224,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101565,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103221,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101564,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Description",
"localizedLabels": [
{
"id": 103220,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Description",
"version": 0,
"localeCd": "en-US"
}
],
"name": "description",
"columnName": "description",
"dataType": "STRING",
"length": 100,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101569,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Version",
"localizedLabels": [
{
"id": 103225,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 3,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101563,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103219,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101562,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103218,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101567,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103223,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101566,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103222,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103226,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Witnessed",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__witnessed_by"
},
{
"id": 101321,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.039Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Reported by",
"localizedLabels": [
{
"id": 103196,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.042Z",
"label": "Reported by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "reported_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "reported_by",
"systemReserved": false,
"historyEnabled": false,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "reported_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "reported",
"reverseLabel": "Reported",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101545,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103197,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101548,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103200,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101551,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103203,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101552,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Version",
"localizedLabels": [
{
"id": 103204,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101547,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103199,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101546,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103198,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101550,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103202,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101549,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103201,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103205,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Reported",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__reported_by"
}
],
"defaultRegularIcon": {
"id": 1011,
"createdBy": "sas.datahub",
"createdAt": "2016-08-29T20:28:03.829Z",
"lastUpdatedBy": "sas.svi-datahub",
"lastUpdatedAt": "2023-06-23T20:22:49.225Z",
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"version": 1,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
},
"allowElementGroupRootAssignment": false,
"urnType": "UUID",
"requireSearchBeforeCreate": false,
"mobileOfflineEnabled": false,
"enableCasDistributedDataLoad": false,
"publishCode": "OPEN",
"readOnly": false,
"icons": [
{
"id": 1011,
"createdBy": "sas.datahub",
"createdAt": "2016-08-29T20:28:03.829Z",
"lastUpdatedBy": "sas.svi-datahub",
"lastUpdatedAt": "2023-06-23T20:22:49.225Z",
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"version": 1,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
}
]
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | entityType |
404 | Not Found | The request did not find an entity type with a matching name. | sasError |
Retrieve headers for an entity type object by ID
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/storedObjects/{entityTypeId}
Retrieves headers for an entity type by ID. An entity type is the metadata that is associated with documents.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeId | path | string | true | The ID of the entity type object. |
excludeUnauthorized | query | boolean | false | Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true. |
Detailed descriptions
excludeUnauthorized: Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The request did not find an entity type with a matching name. | None |
Retrieve an entity type object by ID
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/storedObjects/{entityTypeId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/storedObjects/{entityTypeId}
Retrieves an entity type by ID. An entity type is the metadata that is associated with documents.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeId | path | string | true | The ID of the entity type object. |
excludeUnauthorized | query | boolean | false | Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true. |
Detailed descriptions
excludeUnauthorized: Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true.
Example responses
200 Response
{
"id": 100924,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.513Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.984Z",
"label": "Person",
"description": "Person",
"localizedLabels": [
{
"id": 102942,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Person",
"version": 0,
"localeCd": "en-US"
}
],
"localizedDescriptions": [
{
"id": 101015,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"description": "Person",
"version": 0,
"localeCd": "en-US"
}
],
"name": "person",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "person",
"systemReserved": false,
"historyEnabled": true,
"version": 6,
"validFromFieldName": "birthday",
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"displayTextFields": [
{
"name": "first_name",
"displayIndex": 0
},
{
"name": "last_name",
"displayIndex": 1
}
],
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "person",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"deleteTableName": "VdkDmdiNifqGgq8jOL3QwNHwZQxVkD",
"updateFlagHistoryColumnName": "updated_flg",
"type": "MANAGED",
"markerColor": "#0293a0",
"nodeShape": "square",
"nodeColor": "#ffffff",
"borderColor": "#BFBFBF",
"borderWidth": 1,
"scale": 1,
"nodeDecoration": {},
"elementGroupRoot": false,
"indexedForSearch": true,
"attachmentsIndexedForSearch": false,
"reindexRequired": false,
"fields": [
{
"id": 102858,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 102948,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 6,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102856,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "First Name",
"localizedLabels": [
{
"id": 102946,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "First Name",
"version": 0,
"localeCd": "en-US"
}
],
"name": "first_name",
"columnName": "first_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102859,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Name",
"localizedLabels": [
{
"id": 102949,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Name",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_name",
"columnName": "last_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102853,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Birthday",
"localizedLabels": [
{
"id": 102943,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Birthday",
"version": 0,
"localeCd": "en-US"
}
],
"name": "birthday",
"columnName": "birthday",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102862,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Version",
"localizedLabels": [
{
"id": 102952,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102855,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Created By",
"localizedLabels": [
{
"id": 102945,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Created By",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102854,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Created At",
"localizedLabels": [
{
"id": 102944,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Created At",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102861,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Updated By",
"localizedLabels": [
{
"id": 102951,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Updated By",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102860,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Updated At",
"localizedLabels": [
{
"id": 102950,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Updated At",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102857,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Gender",
"localizedLabels": [
{
"id": 102947,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Gender",
"version": 0,
"localeCd": "en-US"
}
],
"name": "gender",
"columnName": "gender",
"dataType": "REFERENCE_DATA",
"length": 10,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 9,
"version": 6,
"constrainingListName": "Gender",
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 103052,
"createdBy": "videmo",
"createdAt": "2023-06-28T17:22:53.701Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Ps Inc",
"localizedLabels": [
{
"id": 103282,
"createdBy": "videmo",
"createdAt": "2023-06-28T17:22:53.702Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T17:22:53.702Z",
"label": "Ps Inc",
"version": 0,
"localeCd": "en-US"
}
],
"name": "ps_inc",
"columnName": "ps_inc",
"dataType": "NUMERIC",
"precision": 6,
"scale": 6,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 10,
"version": 2,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
}
],
"relationshipsTo": [
{
"id": 101324,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.117Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Primary Victim",
"localizedLabels": [
{
"id": 103227,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Primary Victim",
"version": 0,
"localeCd": "en-US"
}
],
"name": "primary_victim",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "primary_victim",
"systemReserved": false,
"historyEnabled": true,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "primary_victim",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "police_report",
"reverseLabel": "Police Report",
"fromObjectName": "police_report",
"fromObjectLabel": "Police Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_ONE",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "police_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "police_report_id"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "person_id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101570,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103228,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101576,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Police Report ID",
"localizedLabels": [
{
"id": 103234,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Police Report ID",
"version": 0,
"localeCd": "en-US"
}
],
"name": "police_report_id",
"columnName": "police_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101575,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103233,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "person_id",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 2,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101577,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Version",
"localizedLabels": [
{
"id": 103235,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 3,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101572,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103230,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101571,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103229,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101574,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103232,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101573,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103231,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103236,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Police Report",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "police_report__primary_victim"
},
{
"id": 101323,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.750Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Witnessed by",
"localizedLabels": [
{
"id": 103216,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Witnessed by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "witnessed_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "witnessed_by",
"systemReserved": false,
"historyEnabled": true,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "witnessed_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "witnessed",
"reverseLabel": "Witnessed",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101561,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103217,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101568,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103224,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101565,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103221,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101564,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Description",
"localizedLabels": [
{
"id": 103220,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Description",
"version": 0,
"localeCd": "en-US"
}
],
"name": "description",
"columnName": "description",
"dataType": "STRING",
"length": 100,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101569,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Version",
"localizedLabels": [
{
"id": 103225,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 3,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101563,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103219,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101562,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103218,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101567,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103223,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101566,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103222,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103226,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Witnessed",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__witnessed_by"
},
{
"id": 101321,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.039Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Reported by",
"localizedLabels": [
{
"id": 103196,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.042Z",
"label": "Reported by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "reported_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "reported_by",
"systemReserved": false,
"historyEnabled": false,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "reported_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "reported",
"reverseLabel": "Reported",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101545,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103197,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101548,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103200,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101551,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103203,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101552,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Version",
"localizedLabels": [
{
"id": 103204,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101547,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103199,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101546,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103198,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101550,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103202,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101549,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103201,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103205,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Reported",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__reported_by"
}
],
"defaultRegularIcon": {
"id": 1011,
"createdBy": "sas.datahub",
"createdAt": "2016-08-29T20:28:03.829Z",
"lastUpdatedBy": "sas.svi-datahub",
"lastUpdatedAt": "2023-06-23T20:22:49.225Z",
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"version": 1,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
},
"allowElementGroupRootAssignment": false,
"urnType": "UUID",
"requireSearchBeforeCreate": false,
"mobileOfflineEnabled": false,
"enableCasDistributedDataLoad": false,
"publishCode": "OPEN",
"readOnly": false,
"icons": [
{
"id": 1011,
"createdBy": "sas.datahub",
"createdAt": "2016-08-29T20:28:03.829Z",
"lastUpdatedBy": "sas.svi-datahub",
"lastUpdatedAt": "2023-06-23T20:22:49.225Z",
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"version": 1,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
}
]
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | entityType |
404 | Not Found | The request did not find an entity type with a matching name. | sasError |
Retrieve all entity types
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/storedObjects/all \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/storedObjects/all',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/storedObjects/all', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/storedObjects/all", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/storedObjects/all
Retrieves all entity types in the full representation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
excludeUnauthorized | query | boolean | false | Specifies whether to exclude the results that the user is not authorized to view. Only administrative users can set this to true. |
Detailed descriptions
excludeUnauthorized: Specifies whether to exclude the results that the user is not authorized to view. Only administrative users can set this to true.
Example responses
200 Response
[
{
"id": 100924,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.513Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.984Z",
"label": "Person",
"description": "Person",
"localizedLabels": [
{
"id": 102942,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Person",
"version": 0,
"localeCd": "en-US"
}
],
"localizedDescriptions": [
{
"id": 101015,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"description": "Person",
"version": 0,
"localeCd": "en-US"
}
],
"name": "person",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "person",
"systemReserved": false,
"historyEnabled": true,
"version": 6,
"validFromFieldName": "birthday",
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"displayTextFields": [
{
"name": "first_name",
"displayIndex": 0
},
{
"name": "last_name",
"displayIndex": 1
}
],
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "person",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"deleteTableName": "VdkDmdiNifqGgq8jOL3QwNHwZQxVkD",
"updateFlagHistoryColumnName": "updated_flg",
"type": "MANAGED",
"markerColor": "#0293a0",
"nodeShape": "square",
"nodeColor": "#ffffff",
"borderColor": "#BFBFBF",
"borderWidth": 1,
"scale": 1,
"nodeDecoration": {},
"elementGroupRoot": false,
"indexedForSearch": true,
"attachmentsIndexedForSearch": false,
"reindexRequired": false,
"fields": [
{
"id": 102858,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 102948,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 6,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102856,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "First Name",
"localizedLabels": [
{
"id": 102946,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "First Name",
"version": 0,
"localeCd": "en-US"
}
],
"name": "first_name",
"columnName": "first_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102859,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Name",
"localizedLabels": [
{
"id": 102949,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Name",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_name",
"columnName": "last_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102853,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Birthday",
"localizedLabels": [
{
"id": 102943,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Birthday",
"version": 0,
"localeCd": "en-US"
}
],
"name": "birthday",
"columnName": "birthday",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102862,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Version",
"localizedLabels": [
{
"id": 102952,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102855,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Created By",
"localizedLabels": [
{
"id": 102945,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Created By",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102854,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Created At",
"localizedLabels": [
{
"id": 102944,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Created At",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102861,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Updated By",
"localizedLabels": [
{
"id": 102951,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Updated By",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102860,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Updated At",
"localizedLabels": [
{
"id": 102950,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Updated At",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102857,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Gender",
"localizedLabels": [
{
"id": 102947,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Gender",
"version": 0,
"localeCd": "en-US"
}
],
"name": "gender",
"columnName": "gender",
"dataType": "REFERENCE_DATA",
"length": 10,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 9,
"version": 6,
"constrainingListName": "Gender",
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 103052,
"createdBy": "videmo",
"createdAt": "2023-06-28T17:22:53.701Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Ps Inc",
"localizedLabels": [
{
"id": 103282,
"createdBy": "videmo",
"createdAt": "2023-06-28T17:22:53.702Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T17:22:53.702Z",
"label": "Ps Inc",
"version": 0,
"localeCd": "en-US"
}
],
"name": "ps_inc",
"columnName": "ps_inc",
"dataType": "NUMERIC",
"precision": 6,
"scale": 6,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 10,
"version": 2,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
}
],
"relationshipsTo": [
{
"id": 101324,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.117Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Primary Victim",
"localizedLabels": [
{
"id": 103227,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Primary Victim",
"version": 0,
"localeCd": "en-US"
}
],
"name": "primary_victim",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "primary_victim",
"systemReserved": false,
"historyEnabled": true,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "primary_victim",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "police_report",
"reverseLabel": "Police Report",
"fromObjectName": "police_report",
"fromObjectLabel": "Police Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_ONE",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "police_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "police_report_id"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "person_id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101570,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103228,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101576,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Police Report ID",
"localizedLabels": [
{
"id": 103234,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Police Report ID",
"version": 0,
"localeCd": "en-US"
}
],
"name": "police_report_id",
"columnName": "police_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101575,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103233,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "person_id",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 2,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101577,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Version",
"localizedLabels": [
{
"id": 103235,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 3,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101572,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103230,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101571,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103229,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101574,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103232,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"7label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101573,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103231,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103236,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Police Report",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "police_report__primary_victim"
},
{
"id": 101323,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.750Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Witnessed by",
"localizedLabels": [
{
"id": 103216,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Witnessed by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "witnessed_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "witnessed_by",
"systemReserved": false,
"historyEnabled": true,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "witnessed_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "witnessed",
"reverseLabel": "Witnessed",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101561,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103217,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101568,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103224,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101565,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103221,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101564,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Description",
"localizedLabels": [
{
"id": 103220,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Description",
"version": 0,
"localeCd": "en-US"
}
],
"name": "description",
"columnName": "description",
"dataType": "STRING",
"length": 100,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101569,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Version",
"localizedLabels": [
{
"id": 103225,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 3,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101563,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103219,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101562,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103218,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101567,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103223,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101566,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103222,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103226,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Witnessed",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__witnessed_by"
},
{
"id": 101321,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.039Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Reported by",
"localizedLabels": [
{
"id": 103196,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.042Z",
"label": "Reported by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "reported_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "reported_by",
"systemReserved": false,
"historyEnabled": false,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "reported_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "reported",
"reverseLabel": "Reported",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101545,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103197,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101548,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103200,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101551,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103203,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101552,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Version",
"localizedLabels": [
{
"id": 103204,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101547,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103199,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101546,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103198,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101550,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103202,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101549,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103201,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103205,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Reported",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__reported_by"
}
],
"defaultRegularIcon": {
"id": 1011,
"createdBy": "sas.datahub",
"createdAt": "2016-08-29T20:28:03.829Z",
"lastUpdatedBy": "sas.svi-datahub",
"lastUpdatedAt": "2023-06-23T20:22:49.225Z",
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"version": 1,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
},
"allowElementGroupRootAssignment": false,
"urnType": "UUID",
"requireSearchBeforeCreate": false,
"mobileOfflineEnabled": false,
"enableCasDistributedDataLoad": false,
"publishCode": "OPEN",
"readOnly": false,
"icons": [
{
"id": 1011,
"createdBy": "sas.datahub",
"createdAt": "2016-08-29T20:28:03.829Z",
"lastUpdatedBy": "sas.svi-datahub",
"lastUpdatedAt": "2023-06-23T20:22:49.225Z",
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"version": 1,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
}
]
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [allOf] | false | none | [The metadata that defines a class of entities. This definition includes a list of fields, language-specific labels, icons, and other relevant information. ] |
» Entity Type | any | false | none | The metadata that defines a class of entities. This definition includes a list of fields, language-specific labels, icons, and other relevant information. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | dataObject | false | none | Reserved for internal use. An abstract object for representing an object that is associated with a data table. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»» anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
»»»»» id | integer | false | none | The primary key that uniquely identifies this metadata object. |
»»»»» createdBy | string | false | none | The user ID that created this metadata object. |
»»»»» createdAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was created. |
»»»»» lastUpdatedBy | string | false | none | The user ID that most recently modified this metadata object. |
»»»»» lastUpdatedAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was last modified. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»» anonymous | object | false | none | none |
»»»»» label | string | false | none | The locale neutral label for this metadata object. |
»»»»» description | string | false | none | The locale neutral description for this metadata object. |
»»»»» localizedLabels | [allOf] | false | none | The localized labels that are associated with this metadata object. |
»»»»»» Localized Label | any | false | none | The description text that is associated with a specific locale. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» anonymous | object | false | none | none |
»»»»»»»» version | integer | false | none | The internal Data Hub version for the localized text entry. |
»»»»»»»» locale | string | false | none | A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN". |
»»»»»»»» label | string | false | none | The text value that is expressed in a specific language. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» localizedDescriptions | [allOf] | false | none | The localized descriptions that are associated with this metadata object. |
»»»»»» Localized Description | any | false | none | The description text that is associated with a specific locale. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» anonymous | object | false | none | none |
»»»»»»»» version | integer | false | none | The internal Data Hub version for the localized text entry. |
»»»»»»»» locale | string | false | none | A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN". |
»»»»»»»» description | string | false | none | The text value that is expressed in a specific language. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»» anonymous | object | false | none | none |
»»»» name | string | false | none | The name of this metadata object. |
»»»» dataStoreName | string | false | none | The name of the data store where this type of metadata will be stored. |
»»»» tableName | string | false | none | The name of the database table where this type of metadata will be stored. |
»»»» systemReserved | boolean | false | none | Specifies whether this metadata object is reserved for internal use only. |
»»»» historyEnabled | boolean | false | none | Specifies whether changes to instances of this entity will be audited. |
»»»» version | integer | false | none | The internal Data Hub version for this metadata object. |
»»»» validFromFieldName | string | false | none | The name of the field that contain the validFrom date/time value. |
»»»» validToFieldName | string | false | none | The name of the field that contains the validTo date/time value. |
»»»» lastUpdatedAtTimeFieldName | string | false | none | The name of the field that contains the last updated date/time value. |
»»»» createdAtTimeFieldName | string | false | none | The name of the field that contains the creation date/time value. |
»»»» displayTextFields | [sortableNameReference] | false | none | Specifies the fields to be concatenated to form the display label. The values of any masked fields will appear in their raw, unmasked form in the display label. |
»»»»» Sortable Name Reference | object | false | none | A name (typically a field name) with an ordinal that indicates its position in a sequence. |
»»»»»» name | string | false | none | The name of the reference. |
»»»»»» displayIndex | integer | false | none | The ordinal for the name. This is typically a field name. |
»»»» dataStoreAssignedTimeZone | string | false | none | The value of the "assignedTimeZone" property in the data store that is associated with this metadata object. This property is read-only. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | object | false | none | none |
»»» type | string | false | none | Indicates whether the entity type is managed internally or exists in an external read-only database:
|
»»» markerColor | string | false | none | The color that is used to display the marker for this entity type on a network diagram. |
»»» nodeShape | string | false | none | The shape that is used to display the marker for this entity type on a network diagram. |
»»» nodeColor | string | false | none | The color that is used to display the marker for this entity type on a network diagram. |
»»» borderColor | string | false | none | The color that is used to display the border for this entity type on a network diagram. |
»»» borderWidth | number(double) | false | none | The width of the border when displaying this entity type as a selected node on a network diagram. |
»»» scale | number(double) | false | none | A value that adjusts the relative size when selecting a node of this entity type on a network diagram. The value is applied as a ratio to 1. For example, a value of 2 doubles the size and a value of 1 does not change the size. |
»»» styles | [allOf] | false | none | Additional styling that is conditional. |
»»»» Entity Style | any | false | none | The properties for styling an icon, nodes, and map pins for an entity type. The style is tied to a condition. When the condition is true, the style is applied. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | object | false | none | The shared style icon properties for a condition. When the condition is true, the style is applied. |
»»»»»» id | string | false | none | A unique ID value for the style properties. |
»»»»»» conditionId | string | false | none | The ID of the condition with which the style is associated. |
»»»»»» evaluationOrder | integer | false | none | The order in which the condition should be evaluated. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | object | false | none | none |
»»»»»» iconName | string | false | none | The name of the icon properties. |
»»»»»» markerCode | string | false | none | A hexadecimal color value for the background color to use for map pins. |
»»»»»» nodeColor | string | false | none | A hexadecimal color value to use when an object is represented as a node. |
»»»»»» borderColor | string | false | none | A hexadecimal color value to use for the node border. |
»»»»»» borderWidth | number(double) | false | none | The width of the node border. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»» elementGroupRoot | boolean | false | none | Indicates whether this entity type is the root for an element group. |
»»» indexedForSearch | boolean | false | none | Indicates whether this entity type should be indexed for full text searching. |
»»» fields | [allOf] | false | none | An array that contains the fields that are associated with this entity type. |
»»»» Entity Type Field | entityTypeField | false | none | A single field that is associated with an entity type object. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | dataField | false | none | Reserved for internal use. An abstract object representing the metadata that all data object fields have in common. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»» anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»» anonymous | object | false | none | none |
»»»»»»» name | string | false | none | The name of the field. |
»»»»»»» columnName | string | false | none | The name of the database column that is associated with this field. |
»»»»»»» dataType | string | false | none | The type of the database column that is associated with this field. Note: The "json" data type is only partially supported for internal use with Postgres. |
»»»»»»» length | integer | false | none | The size of the data type. This value is used primarily for managing the length of string fields. |
»»»»»»» precision | integer | false | none | The number of significant digits for a numeric type. The maximum value for precision is database dependent. For example, it is 38 for Oracle. |
»»»»»»» scale | integer | false | none | The number of decimal digits for a numeric type. Integers have a scale of zero. A negative scale value can be used to control the maximum number of digits to the left of the decimal point. |
»»»»»»» required | boolean | false | none | Indicates whether the field value must be provided. |
»»»»»»» primaryKeyField | boolean | false | none | Indicates whether the field value is used as part of primary key. Primary key fields cannot be masked. |
»»»»»»» unique | boolean | false | none | Indicates whether duplicate values are allowed for the field. |
»»»»»»» autoGenerated | boolean | false | none | Indicates whether the values for this field are automatically generated. |
»»»»»»» systemReserved | boolean | false | none | Indicates whether modifications are allowed for this field type. Some fields are created for internal use only. System reserved fields cannot be masked. |
»»»»»»» displayIndex | integer | false | none | The order in which fields occur within the database. This index is one-based. |
»»»»»»» version | integer | false | none | The internal Data Hub version for this field. |
»»»»»»» constrainingListName | string | false | none | The name of a Reference List that determines the list of valid values for this field. |
»»»»»»» userSelectionStrategy | string | false | none | Indicates the types of values that are allowed in this field. |
»»»»»»» allowMultipleSelections | boolean | false | none | Indicates whether multiple selections are allowed. |
»»»»»»» primaryKeySeqNo | integer | false | none | The position this field occupies in a primary key. This index is one-based. |
»»»»»»» readOnly | boolean | false | none | Indicates whether modifications are allowed for this field type. |
»»»»»»» indexedForSearch | boolean | false | none | Indicates whether this field should be added to the search index. |
»»»»»»» logicalDataType | string | false | none | Optional data subtype value for handling user groups and reference data. |
»»»»»»» masked | boolean | false | none | Indicates whether this field should be masked from users and groups that are not authorized to reveal the masking. Fields cannot be masked if they are system reserved, if they participate in a primary key, or if they are referenced in a Relationship Type or Transaction Type's join configuration. |
»»»»»»» authorizedToRevealMasked | [userGroupChooserSelection] | false | none | A list of users or groups that identifies who is authorized to reveal the field if it is masked. |
»»»»»»»» User Group Chooser Selection | object | false | none | A user or group account. |
»»»»»»»»» id | string | false | none | The name of the user or group. |
»»»»»»»»» type | string | false | none | Denotes whether the account is a user or group. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | object | false | none | none |
»»»»»» ownerName | string | false | none | The name of the owner. |
»»»»»» relatedElementName | string | false | none | The name of the related element. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»» relationshipsFrom | [allOf] | false | none | A collection of relationships that point from this entity type. |
»»»» Relationship Type | any | false | none | The definition of a connection that can be established between two entities. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | dataObject | false | none | Reserved for internal use. An abstract object for representing an object that is associated with a data table. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | object | false | none | none |
»»»»»» reverseName | string | false | none | The name of the relationship from the opposite perspective. |
»»»»»» reverseLabel | string | false | none | The label for the relationship from the opposite perspective. |
»»»»»» fromObjectName | string | false | none | The name of the side of the relationship that is pointed away from another entity. |
»»»»»» fromObjectLabel | string | false | none | The label for the side of the relationship that is pointed away from another entity. |
»»»»»» toObjectName | string | false | none | The name of the side of the relationship that is pointed toward another entity. |
»»»»»» toObjectLabel | string | false | none | The label for the side of the relationship that is pointed toward another entity. |
»»»»»» required | boolean | false | none | Indicates whether the relationship is required. |
»»»»»» cardinality | string | false | none | The cardinality for the relationship. The possible values are: "ONE_TO_ONE", "ONE_TO_MANY", "MANY_TO_ONE", "MANY_TO_MANY" |
»»»»»» sortCriteria | object | false | none | The criteria that specifies how to sort a collection. |
»»»»»»» fieldName | string | false | none | The name of the field. |
»»»»»»» sortOrder | string | false | none | The order in which to sort the field. |
»»»»»» type | string | false | none | The type of relationship. DIRECT_CHILD relationships are parent-child relationships. LINK relationships are general relationships between one type and another. |
»»»»»» symmetric | boolean | false | none | Indicates whether the relationship is symmetric. |
»»»»»» managed | boolean | false | none | Indicates whether the relationship is managed. |
»»»»»» toObjectTypeFieldName | string | false | none | Only used for heterogeneous relationships with no bridge table. The value indicates a field in the "from" entity type. If a document of the "from" entity type has a value for this field, it will contain the entity type name of a document of the "to" entity type to which it is linked under this relationship type. This field in the "from" entity type may not be masked. |
»»»»»» toObjectTypeNames | [string] | false | none | The names of the entity types on the "to" side of the relationship. |
»»»»»» joinKeyFieldName | string | false | none | Only used for heterogeneous relationships with no bridge table. The value indicates a field in "from" entity type. If a document of the "from" entity type has a value for this field, it will contain the entity ID of a document of the "to" entity type to which it is linked under this relationship type. This field in the "from" entity type may not be masked. |
»»»»»» joinConditions | [allOf] | false | none | The list of expressions that are used to perform the join. Join conditions may not reference masked fields. |
»»»»»»» Boolean Expression | entityTypeExpressionBoolean | false | none | The abstract type that represents a conditional or a logical expression. |
»»»»»»»» type | string | false | none | The type of expression. Valid values include:
|
»»»»»» fields | [allOf] | false | none | The list of fields that are part of the relationship. |
»»»»»»» Relationship Type Field | any | false | none | A field within a relationship type. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»»» anonymous | dataField | false | none | Reserved for internal use. An abstract object representing the metadata that all data object fields have in common. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»»» anonymous | object | false | none | none |
»»»»»»»»» ownerName | string | false | none | The owner of the relationship type. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»» localizedReverseLabels | [allOf] | false | none | [The description text that is associated with a specific locale.] |
»»»»»»» Localized Label | any | false | none | The description text that is associated with a specific locale. |
»»»»»» deleteTableName | string | false | none | The name of the table that is used for tracking deleted records. |
»»»»»» useCustomIndex | boolean | false | none | Indicates whether the relationship should use a custom index. |
»»»»»» color | string | false | none | The color of links displayed in network view for this relationship type. |
»»»»»» width | number(double) | false | none | The width of links displayed in network view for this relationship type. |
»»»»»» dashType | string | false | none | The type of line displayed when viewing a relationship link. |
»»»»»» styles | [allOf] | false | none | Additional styling that is conditional. |
»»»»»»» Relationship Style | relationshipStyle | false | none | The properties for styling of links for a relationship type. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»»» anonymous | object | false | none | The shared style icon properties for a condition. When the condition is true, the style is applied. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»»» anonymous | object | false | none | none |
»»»»»»»»» color | string | false | none | The color of links that are displayed in network view for this relationship type. |
»»»»»»»»» width | number(double) | false | none | The width of links that are displayed in network view for this relationship type. Specify a whole number. |
»»»»»»»»» dashType | string | false | none | The type of line that is displayed when viewing a relationship link. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»» reindexRequired | boolean | false | none | Indicates whether reindexing is required. After a relationship type is updated, this value is true if the relationship needs to be reindexed. |
»»» relationshipsTo | [allOf] | false | none | A collection of relationships that point toward this entity type. |
»»»» Relationship Type | any | false | none | The definition of a connection that can be established between two entities. |
»»» defaultRegularIcon | icon | false | none | The icon that is displayed in the Network-Link Diagram. |
»»» defaultMapIcon | icon | false | none | Deprecated. Should not be used. |
»»» parentName | string | false | none | The name of the parent entity type for this entity type. |
»»» allowElementGroupRootAssignment | boolean | false | none | Indicates whether this entity can be used as an element group root. |
»»» deleteTableName | string | false | none | The name of SQL table where deleted records are tracked. |
»»» urnFormat | string | false | none | The URN format string that is used to automatically generate primary keys. |
»»» urnLength | integer | false | none | The maximum length of the generated URN. |
»»» urnStartValue | integer(int64) | false | none | If sequential numbers are used as part of the URN, the start value to use for that sequence. |
»»» urnType | string | false | none | The type of URN generation that this entity uses. |
»»» requireSearchBeforeCreate | boolean | false | none | Indicates whether a search operation must be performed before inserting a new instance of this entity. Set to true to require this. |
»»» enableCasDistributedDataLoad | boolean | false | none | Indicates whether all nodes on the grid are used for table loading. This option affects only data for use with Scenario Administration. When set to true, this option uses the value distribution of the first numeric column in the table to structure the shared load. Therefore, you should confirm that the first numeric column contains well-dispersed values. For example, if the first numeric column contains binary flag data with a 90/10 value distribution, 90% of the table is loaded to one node and the remaining 10% is loaded to a second node. |
»»» attachmentsIndexedForSearch | boolean | false | none | Indicates whether entity type attachment content is added to the search index. When instances of this entity type have files attached to them, if this flag is set to "true", the contents of those attachments are extracted and added to the search index. This allows users to find instances of this entity type by searching for terms that might be in files attached to them. When this flag is updated from "false" to "true", if there are attachments to any instances of this entity type, the entity type must be reindexed before searching can match on attachment contents as described above. |
»»» reindexRequired | boolean | false | none | Read only. Setting this property on input has no effect. Certain Update operations on entity types require the entity type to be reindexed before changes can be fully active. When such an update has been made, this flag is set to "true" in the representation of the entity type that is provided in the response to the update. This is not a persistent state of the entity type. It is provided as advice to the client once per such an update. Subsequent responses representing the entity type might not have this flag set, even if the advised reindex has not been performed. For example, a client sends a PUT request to update an entity type's attachmentsIndexedForSearch flag from "false" to "true". There are instances of the entity type that have attachments; therefore reindexing becomes necessary before searching can match based on attachment contents. This is indicated by a "true" value in this property in the response to the PUT request. Subsequent GET or PUT requests that return a representation of the entity type might have reindexRequired set to "false" even if the entity type has not been reindexed. This is because in that subsequent request, no update was made that would require reindexing before taking effect. |
»»» mobileOfflineEnabled | boolean | false | none | Indicates whether offline support is enabled for SAS Mobile Investigator. |
»»» publishCode | string | false | none | Indicates the publication status that is assigned to an item:
|
Enumerated Values
Property | Value |
---|---|
type | MANAGED |
type | SOURCE |
nodeShape | circle |
nodeShape | square |
nodeShape | diamond |
nodeShape | ellipse |
nodeShape | hexagon |
nodeShape | pentagon |
nodeShape | triangle |
dataType | BOOLEAN |
dataType | STRING |
dataType | SMALLINT |
dataType | INTEGER |
dataType | LONG |
dataType | FLOAT |
dataType | DOUBLE |
dataType | NUMERIC |
dataType | DATE |
dataType | TIMESTAMP |
dataType | TIMESTAMP_WITH_TIME_ZONE |
dataType | REFERENCE_DATA |
dataType | JSON |
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
logicalDataType | USER_GROUP |
logicalDataType | REFERENCE_DATA |
type | user |
type | group |
cardinality | ONE_TO_ONE |
cardinality | ONE_TO_MANY |
cardinality | MANY_TO_ONE |
cardinality | MANY_TO_MANY |
sortOrder | asc |
sortOrder | desc |
type | DIRECT_CHILD |
type | LINK |
type | Conditional |
type | FieldRef |
type | Literal |
type | StrExpr |
type | BoolExpr |
type | Function |
type | ArithExpr |
dashType | solid |
dashType | dotted |
dashType | dashed |
dashType | shortDash |
dashType | dashDot |
dashType | longDash |
dashType | longDashDot |
dashType | longDashDotDot |
dashType | solid |
dashType | dotted |
dashType | dashed |
dashType | shortDash |
dashType | dashDot |
dashType | longDash |
dashType | longDashDot |
dashType | longDashDotDot |
urnType | UUID |
urnType | RANDOM_DIGITS |
urnType | SEQUENTIAL |
publishCode | OPEN |
publishCode | PUBLISHED |
publishCode | MODIFIED |
Retrieve all entity types in a summary representation
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/storedObjects/listAll \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/storedObjects/listAll',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/storedObjects/listAll', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/storedObjects/listAll", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/storedObjects/listAll
Retrieves all entity types where each object is a summary representation of the entity type.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
excludeUnauthorized | query | boolean | false | Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true. |
Detailed descriptions
excludeUnauthorized: Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true.
Example responses
200 Response
[
{
"id": 100924,
"label": "Person",
"description": "Person",
"name": "person",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "person",
"systemReserved": false,
"historyEnabled": true,
"validFromFieldName": "birthday",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"deleteTableName": "VdkDmdiNifqGgq8jOL3QwNHwZQxVkD",
"type": "MANAGED",
"markerColor": "#0293a0",
"nodeShape": "square",
"nodeColor": "#ffffff",
"borderColor": "#BFBFBF",
"borderWidth": 1,
"scale": 1,
"nodeDecoration": {},
"indexedForSearch": true,
"attachmentsIndexedForSearch": false,
"reindexRequired": false,
"fields": [
{
"id": 102858,
"label": "Person Id",
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102856,
"label": "First Name",
"name": "first_name",
"columnName": "first_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102859,
"label": "Last Name",
"name": "last_name",
"columnName": "last_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102853,
"label": "Birthday",
"name": "birthday",
"columnName": "birthday",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102862,
"label": "Version",
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102855,
"label": "Created By",
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102854,
"label": "Created At",
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102861,
"label": "Last Updated By",
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102860,
"label": "Last Updated At",
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102857,
"label": "Gender",
"name": "gender",
"columnName": "gender",
"dataType": "REFERENCE_DATA",
"length": 10,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 9,
"constrainingListName": "Gender",
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 103052,
"label": "Ps Inc",
"name": "ps_inc",
"columnName": "ps_inc",
"dataType": "NUMERIC",
"precision": 6,
"scale": 6,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 10,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
}
],
"allowElementGroupRootAssignment": false,
"icons": [
{
"id": 1011,
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"solutionLabel": "SAS Visual Investigator"
}
]
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [entityTypeSummary] | false | none | [A short summary of an entity type.] |
» Entity Type Summary | entityTypeSummary | false | none | A short summary of an entity type. |
»» id | integer(int64) | false | none | The primary key that uniquely identifies this entity type. |
»» label | string | false | none | The locale neutral label for this entity type. |
»» name | string | false | none | The name of this entity type. |
»» dataStoreName | string | false | none | The name of the data store where this type of entity is stored. |
»» tableName | string | false | none | The name of the database table where this type of entity is stored. |
»» systemReserved | boolean | false | none | Indicates whether this entity is reserved for internal use only. |
»» validFromFieldName | string | false | none | The name of the field that contains the validFrom date/time value. |
»» type | string | false | none | Indicates whether this entity is managed internally or if it resides in an external read-only database. |
»» markerColor | string | false | none | The color that is used to display the marker for this entity on a map. |
»» indexedForSearch | boolean | false | none | Indicates whether this entity should be indexed for search. |
»» fields | [allOf] | false | none | An array that contains the fields that are associated with this entity type. |
»»» Entity Type Field | entityTypeField | false | none | A single field that is associated with an entity type object. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»» anonymous | dataField | false | none | Reserved for internal use. An abstract object representing the metadata that all data object fields have in common. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
»»»»»»» id | integer | false | none | The primary key that uniquely identifies this metadata object. |
»»»»»»» createdBy | string | false | none | The user ID that created this metadata object. |
»»»»»»» createdAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was created. |
»»»»»»» lastUpdatedBy | string | false | none | The user ID that most recently modified this metadata object. |
»»»»»»» lastUpdatedAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was last modified. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»» anonymous | object | false | none | none |
»»»»»»» label | string | false | none | The locale neutral label for this metadata object. |
»»»»»»» description | string | false | none | The locale neutral description for this metadata object. |
»»»»»»» localizedLabels | [allOf] | false | none | The localized labels that are associated with this metadata object. |
»»»»»»»» Localized Label | any | false | none | The description text that is associated with a specific locale. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»»»» anonymous | object | false | none | none |
»»»»»»»»»» version | integer | false | none | The internal Data Hub version for the localized text entry. |
»»»»»»»»»» locale | string | false | none | A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN". |
»»»»»»»»»» label | string | false | none | The text value that is expressed in a specific language. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» localizedDescriptions | [allOf] | false | none | The localized descriptions that are associated with this metadata object. |
»»»»»»»» Localized Description | any | false | none | The description text that is associated with a specific locale. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»»»» anonymous | object | false | none | none |
»»»»»»»»»» version | integer | false | none | The internal Data Hub version for the localized text entry. |
»»»»»»»»»» locale | string | false | none | A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN". |
»»»»»»»»»» description | string | false | none | The text value that is expressed in a specific language. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | object | false | none | none |
»»»»»» name | string | false | none | The name of the field. |
»»»»»» columnName | string | false | none | The name of the database column that is associated with this field. |
»»»»»» dataType | string | false | none | The type of the database column that is associated with this field. Note: The "json" data type is only partially supported for internal use with Postgres. |
»»»»»» length | integer | false | none | The size of the data type. This value is used primarily for managing the length of string fields. |
»»»»»» precision | integer | false | none | The number of significant digits for a numeric type. The maximum value for precision is database dependent. For example, it is 38 for Oracle. |
»»»»»» scale | integer | false | none | The number of decimal digits for a numeric type. Integers have a scale of zero. A negative scale value can be used to control the maximum number of digits to the left of the decimal point. |
»»»»»» required | boolean | false | none | Indicates whether the field value must be provided. |
»»»»»» primaryKeyField | boolean | false | none | Indicates whether the field value is used as part of primary key. Primary key fields cannot be masked. |
»»»»»» unique | boolean | false | none | Indicates whether duplicate values are allowed for the field. |
»»»»»» autoGenerated | boolean | false | none | Indicates whether the values for this field are automatically generated. |
»»»»»» systemReserved | boolean | false | none | Indicates whether modifications are allowed for this field type. Some fields are created for internal use only. System reserved fields cannot be masked. |
»»»»»» displayIndex | integer | false | none | The order in which fields occur within the database. This index is one-based. |
»»»»»» version | integer | false | none | The internal Data Hub version for this field. |
»»»»»» constrainingListName | string | false | none | The name of a Reference List that determines the list of valid values for this field. |
»»»»»» userSelectionStrategy | string | false | none | Indicates the types of values that are allowed in this field. |
»»»»»» allowMultipleSelections | boolean | false | none | Indicates whether multiple selections are allowed. |
»»»»»» primaryKeySeqNo | integer | false | none | The position this field occupies in a primary key. This index is one-based. |
»»»»»» readOnly | boolean | false | none | Indicates whether modifications are allowed for this field type. |
»»»»»» indexedForSearch | boolean | false | none | Indicates whether this field should be added to the search index. |
»»»»»» logicalDataType | string | false | none | Optional data subtype value for handling user groups and reference data. |
»»»»»» masked | boolean | false | none | Indicates whether this field should be masked from users and groups that are not authorized to reveal the masking. Fields cannot be masked if they are system reserved, if they participate in a primary key, or if they are referenced in a Relationship Type or Transaction Type's join configuration. |
»»»»»» authorizedToRevealMasked | [userGroupChooserSelection] | false | none | A list of users or groups that identifies who is authorized to reveal the field if it is masked. |
»»»»»»» User Group Chooser Selection | object | false | none | A user or group account. |
»»»»»»»» id | string | false | none | The name of the user or group. |
»»»»»»»» type | string | false | none | Denotes whether the account is a user or group. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»» anonymous | object | false | none | none |
»»»»» ownerName | string | false | none | The name of the owner. |
»»»»» relatedElementName | string | false | none | The name of the related element. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» parentName | string | false | none | The name of parent entity type for this entity type. |
»» allowElementGroupRootAssignment | boolean | false | none | Indicates whether this entity can be used as an element group root. |
Enumerated Values
Property | Value |
---|---|
type | MANAGED |
type | SOURCE |
dataType | BOOLEAN |
dataType | STRING |
dataType | SMALLINT |
dataType | INTEGER |
dataType | LONG |
dataType | FLOAT |
dataType | DOUBLE |
dataType | NUMERIC |
dataType | DATE |
dataType | TIMESTAMP |
dataType | TIMESTAMP_WITH_TIME_ZONE |
dataType | REFERENCE_DATA |
dataType | JSON |
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
logicalDataType | USER_GROUP |
logicalDataType | REFERENCE_DATA |
type | user |
type | group |
Trigger entity type metadata reconstruction
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}/reconstruct \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = 'null';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}/reconstruct',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}/reconstruct', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/admin/storedObjects/{entityTypeId}/reconstruct", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/storedObjects/{entityTypeId}/reconstruct
Synchronizes an entity type's field metadata with the schema for the database table that contains the entity type's records. This can be used to repair the entity type's metadata if the table that backs the entity type changes. Care should be taken when using this operation as it does not automatically update other services in SAS Visual Investigator to reflect the metadata changes. Users who do not understand how their metadata is used in SAS Visual Investigator or are not prepared to repair inconsistencies downstream from Data Hub are not advised to use this endpoint. The request body should be empty.
Body parameter
null
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeId | path | string | true | The id of the entity type object. |
body | body | any | false | The request body should be empty. |
Example responses
200 Response
{
"id": 100924,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.513Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.984Z",
"label": "Person",
"description": "Person",
"localizedLabels": [
{
"id": 102942,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Person",
"version": 0,
"localeCd": "en-US"
}
],
"localizedDescriptions": [
{
"id": 101015,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"description": "Person",
"version": 0,
"localeCd": "en-US"
}
],
"name": "person",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "person",
"systemReserved": false,
"historyEnabled": true,
"version": 6,
"validFromFieldName": "birthday",
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"displayTextFields": [
{
"name": "first_name",
"displayIndex": 0
},
{
"name": "last_name",
"displayIndex": 1
}
],
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "person",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"deleteTableName": "VdkDmdiNifqGgq8jOL3QwNHwZQxVkD",
"updateFlagHistoryColumnName": "updated_flg",
"type": "MANAGED",
"markerColor": "#0293a0",
"nodeShape": "square",
"nodeColor": "#ffffff",
"borderColor": "#BFBFBF",
"borderWidth": 1,
"scale": 1,
"nodeDecoration": {},
"elementGroupRoot": false,
"indexedForSearch": true,
"attachmentsIndexedForSearch": false,
"reindexRequired": false,
"fields": [
{
"id": 102858,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 102948,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 6,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102856,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "First Name",
"localizedLabels": [
{
"id": 102946,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "First Name",
"version": 0,
"localeCd": "en-US"
}
],
"name": "first_name",
"columnName": "first_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102859,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Name",
"localizedLabels": [
{
"id": 102949,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Name",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_name",
"columnName": "last_name",
"dataType": "STRING",
"length": 15,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102853,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Birthday",
"localizedLabels": [
{
"id": 102943,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Birthday",
"version": 0,
"localeCd": "en-US"
}
],
"name": "birthday",
"columnName": "birthday",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"version": 6,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102862,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Version",
"localizedLabels": [
{
"id": 102952,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102855,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Created By",
"localizedLabels": [
{
"id": 102945,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Created By",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102854,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Created At",
"localizedLabels": [
{
"id": 102944,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.514Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.514Z",
"label": "Created At",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102861,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Updated By",
"localizedLabels": [
{
"id": 102951,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Updated By",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102860,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Last Updated At",
"localizedLabels": [
{
"id": 102950,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Last Updated At",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 6,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 102857,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Gender",
"localizedLabels": [
{
"id": 102947,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:03.515Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:03.515Z",
"label": "Gender",
"version": 0,
"localeCd": "en-US"
}
],
"name": "gender",
"columnName": "gender",
"dataType": "REFERENCE_DATA",
"length": 10,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 9,
"version": 6,
"constrainingListName": "Gender",
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
},
{
"id": 103052,
"createdBy": "videmo",
"createdAt": "2023-06-28T17:22:53.701Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T18:19:17.986Z",
"label": "Ps Inc",
"localizedLabels": [
{
"id": 103282,
"createdBy": "videmo",
"createdAt": "2023-06-28T17:22:53.702Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-28T17:22:53.702Z",
"label": "Ps Inc",
"version": 0,
"localeCd": "en-US"
}
],
"name": "ps_inc",
"columnName": "ps_inc",
"dataType": "NUMERIC",
"precision": 6,
"scale": 6,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 10,
"version": 2,
"readOnly": false,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "person",
"masked": false
}
],
"relationshipsTo": [
{
"id": 101324,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.117Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Primary Victim",
"localizedLabels": [
{
"id": 103227,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Primary Victim",
"version": 0,
"localeCd": "en-US"
}
],
"name": "primary_victim",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "primary_victim",
"systemReserved": false,
"historyEnabled": true,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "primary_victim",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "police_report",
"reverseLabel": "Police Report",
"fromObjectName": "police_report",
"fromObjectLabel": "Police Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_ONE",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "police_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "police_report_id"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "person_id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101570,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103228,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101576,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Police Report ID",
"localizedLabels": [
{
"id": 103234,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Police Report ID",
"version": 0,
"localeCd": "en-US"
}
],
"name": "police_report_id",
"columnName": "police_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101575,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103233,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "person_id",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 2,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101577,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Version",
"localizedLabels": [
{
"id": 103235,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 3,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101572,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103230,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101571,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103229,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101574,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103232,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
},
{
"id": 101573,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.144Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103231,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.119Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.119Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "police_report.primary_victim",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103236,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:09.120Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:09.120Z",
"label": "Police Report",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "police_report__primary_victim"
},
{
"id": 101323,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.750Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Witnessed by",
"localizedLabels": [
{
"id": 103216,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Witnessed by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "witnessed_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "witnessed_by",
"systemReserved": false,
"historyEnabled": true,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "witnessed_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "witnessed",
"reverseLabel": "Witnessed",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101561,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103217,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101568,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103224,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101565,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103221,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101564,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.363Z",
"label": "Description",
"localizedLabels": [
{
"id": 103220,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Description",
"version": 0,
"localeCd": "en-US"
}
],
"name": "description",
"columnName": "description",
"dataType": "STRING",
"length": 100,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101569,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Version",
"localizedLabels": [
{
"id": 103225,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 3,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101563,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103219,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101562,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103218,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101567,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103223,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
},
{
"id": 101566,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:29.364Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103222,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.753Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.753Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.witnessed_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103226,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.754Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.754Z",
"label": "Witnessed",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__witnessed_by"
},
{
"id": 101321,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.039Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Reported by",
"localizedLabels": [
{
"id": 103196,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.042Z",
"label": "Reported by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "reported_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "reported_by",
"systemReserved": false,
"historyEnabled": false,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "reported_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "reported",
"reverseLabel": "Reported",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101545,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103197,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101548,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103200,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101551,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103203,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101552,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Version",
"localizedLabels": [
{
"id": 103204,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101547,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103199,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101546,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103198,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101550,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103202,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101549,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103201,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103205,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Reported",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__reported_by"
}
],
"defaultRegularIcon": {
"id": 1011,
"createdBy": "sas.datahub",
"createdAt": "2016-08-29T20:28:03.829Z",
"lastUpdatedBy": "sas.svi-datahub",
"lastUpdatedAt": "2023-06-23T20:22:49.225Z",
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"version": 1,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
},
"allowElementGroupRootAssignment": false,
"urnType": "UUID",
"requireSearchBeforeCreate": false,
"mobileOfflineEnabled": false,
"enableCasDistributedDataLoad": false,
"publishCode": "OPEN",
"readOnly": false,
"icons": [
{
"id": 1011,
"createdBy": "sas.datahub",
"createdAt": "2016-08-29T20:28:03.829Z",
"lastUpdatedBy": "sas.svi-datahub",
"lastUpdatedAt": "2023-06-23T20:22:49.225Z",
"name": "Individual16Teal",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Individual16Teal/image",
"version": 1,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | entityType |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The request did not find an entity type with a matching ID or the entity type was found but the table backing it was not found. | sasError |
Reference Lists
Contains the operations related to managing reference list metadata.
Fetch all reference list or lists
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/lists \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/lists',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/lists', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/lists", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/lists
Fetches all reference lists or a single reference list by specifying the name of the list.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | query | string | false | The name of a reference list. If this parameter is specified, only the reference list with that name is returned. If this parameter is omitted, all reference lists are returned. |
Example responses
200 Response
{
"id": 100606,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:46:52.571Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:46:52.571Z",
"label": "Dispresn Insurance Domain",
"localizedLabels": [
{
"id": 101663,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:46:52.571Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:46:52.571Z",
"label": "Dispresn Insurance Domain",
"version": 0,
"localeCd": "en-US"
}
],
"name": "DispResn_insurance_domain",
"archived": false,
"maxCodeLength": 20,
"alphabeticalSort": false,
"hierarchyLevel": 0,
"referenceListType": "LIST",
"usedByField": false,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | referenceListSummaryCollection |
404 | Not Found | The reference list was not found. | sasError |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | string | date-time | A timestamp that indicates when the reference list was last modified. |
Create a new reference list
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/admin/lists \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"archived": true,
"maxCodeLength": 0,
"alphabeticalSort": true,
"items": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"code": "string",
"archived": true,
"displayIndex": 0
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/lists',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/admin/lists', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/admin/lists", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/lists
Creates a new reference list.
Body parameter
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"archived": true,
"maxCodeLength": 0,
"alphabeticalSort": true,
"items": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"code": "string",
"archived": true,
"displayIndex": 0
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | referenceList | false | The reference list to be created. |
Example responses
201 Response
{
"id": 100606,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:46:52.571Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:46:52.571Z",
"label": "Dispresn Insurance Domain",
"localizedLabels": [
{
"id": 101663,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:46:52.571Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:46:52.571Z",
"label": "Dispresn Insurance Domain",
"version": 0,
"localeCd": "en-US"
}
],
"name": "DispResn_insurance_domain",
"archived": false,
"maxCodeLength": 20,
"alphabeticalSort": false,
"hierarchyLevel": 0,
"referenceListType": "LIST",
"usedByField": false,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | A new reference list was created. | referenceList |
400 | Bad Request | The request was invalid. | sasError |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Last-Modified | string | date-time | A timestamp that indicates when the reference list was last modified. |
201 | Location | string | The URI of the newly created reference list. |
Update a reference list
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-datahub/admin/lists/{referenceListId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"archived": true,
"maxCodeLength": 0,
"alphabeticalSort": true,
"items": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"code": "string",
"archived": true,
"displayIndex": 0
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/lists/{referenceListId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.put('https://example.com/svi-datahub/admin/lists/{referenceListId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-datahub/admin/lists/{referenceListId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /admin/lists/{referenceListId}
Updates a reference list by ID.
Body parameter
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"archived": true,
"maxCodeLength": 0,
"alphabeticalSort": true,
"items": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"code": "string",
"archived": true,
"displayIndex": 0
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
referenceListId | path | string | true | The ID of the reference list to update. |
body | body | referenceList | false | The reference list to be updated. |
Example responses
200 Response
{
"id": 100606,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:46:52.571Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:46:52.571Z",
"label": "Dispresn Insurance Domain",
"localizedLabels": [
{
"id": 101663,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:46:52.571Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:46:52.571Z",
"label": "Dispresn Insurance Domain",
"version": 0,
"localeCd": "en-US"
}
],
"name": "DispResn_insurance_domain",
"archived": false,
"maxCodeLength": 20,
"alphabeticalSort": false,
"hierarchyLevel": 0,
"referenceListType": "LIST",
"usedByField": false,
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator"
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
412 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
428 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | referenceList |
400 | Bad Request | The request was invalid. | sasError |
412 | Precondition Failed | The reference list in the request body was out of date. | sasError |
428 | Precondition Required | The reference list in the request body did not contain a version. | sasError |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | string | date-time | A timestamp that indicates when the reference list was last modified. |
200 | Location | string | The URI of the newly created reference list. |
Relationship Types
Contains the operations related to managing relationship type metadata.
Fetch a single relationship type or an array of relationship types
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/relationships \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/relationships',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/relationships', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/relationships", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/relationships
Depending on the query parameter used, returns either a single relationship by qualified name or all relationships of a given type. Using both query parameters in a single request is not supported. Use the "qualifiedName" parameter when the looking up an individual relationship by its qualified name. The qualified name can be determined from the "qualifiedName" property in the relationship type or by constructing one. Use the "type" parameter when looking up all relationships of a given type.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | query | string | false | Specifies the type of the relationships for which to search. LINK relationships are all relationships that link one Entity Type to one or many other Entity Types. DIRECT_CHILD relationships are a relationship between a parent Entity Type and a child Entity Type. |
qualifiedName | query | string | false | The qualified name that uniquely identifies the relationship type. The components of a qualified name are: |
Detailed descriptions
type: Specifies the type of the relationships for which to search. LINK relationships are all relationships that link one Entity Type to one or many other Entity Types. DIRECT_CHILD relationships are a relationship between a parent Entity Type and a child Entity Type.
qualifiedName: The qualified name that uniquely identifies the relationship type. The components of a qualified name are: {"from" Entity Type name} + "__" + {Relationship Type name}
Enumerated Values
Parameter | Value |
---|---|
type | DIRECT_CHILD |
type | LINK |
Example responses
200 Response
{
"id": 101321,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.039Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Reported by",
"localizedLabels": [
{
"id": 103196,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.042Z",
"label": "Reported by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "reported_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "reported_by",
"systemReserved": false,
"historyEnabled": false,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "reported_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "reported",
"reverseLabel": "Reported",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101545,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103197,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101548,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103200,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101551,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103203,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101552,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Version",
"localizedLabels": [
{
"id": 103204,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101547,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103199,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101546,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103198,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101550,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103202,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101549,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103201,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103205,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Reported",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__reported_by"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. Either a single relationship type or an array of relationship types are returned. | relationshipType |
404 | Not Found | The relationship type specified in qualifiedName was not found. | sasError |
Trigger relationship type metadata reconstruction
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/admin/relationships/{relationshipTypeId}/reconstruct \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = 'null';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/relationships/{relationshipTypeId}/reconstruct',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/admin/relationships/{relationshipTypeId}/reconstruct', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/admin/relationships/{relationshipTypeId}/reconstruct", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/relationships/{relationshipTypeId}/reconstruct
Synchronizes the relationship type's field metadata with the schema for the database table that contains the relationship type's records. This can be used to repair the relationship type's metadata if the table that backs the relationship type changes. Care should be taken when using this operation as it does not automatically update other services in SAS Visual Investigator to reflect the metadata changes. Users who do not understand how their metadata is used in SAS Visual Investigator or are not prepared to repair inconsistencies downstream from Data Hub are not advised to use this endpoint. The request body should be empty.
Body parameter
null
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
relationshipTypeId | path | string | true | The numerical ID of the relationship type object. |
body | body | any | false | Request body should be empty. |
Example responses
200 Response
{
"id": 101321,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.039Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Reported by",
"localizedLabels": [
{
"id": 103196,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.042Z",
"label": "Reported by",
"version": 0,
"localeCd": "en-US"
}
],
"name": "reported_by",
"dataStoreName": "DEFAULT_STORE",
"dataStoreDefaultSchemaName": "fdhdata",
"tableName": "reported_by",
"systemReserved": false,
"historyEnabled": false,
"version": 1,
"lastUpdatedAtTimeFieldName": "last_updated_at_dttm",
"createdAtTimeFieldName": "created_at_dttm",
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"historyTableName": "reported_by",
"lastUpdatedByUserIdFieldName": "last_updated_by_user_id",
"versionNumberFieldName": "version",
"createFlagHistoryColumnName": "created_flg",
"deleteFlagHistoryColumnName": "archived_flg",
"updateFlagHistoryColumnName": "updated_flg",
"reverseName": "reported",
"reverseLabel": "Reported",
"fromObjectName": "intel_report",
"fromObjectLabel": "Intelligence Report",
"toObjectName": "person",
"toObjectLabel": "Person",
"required": false,
"cascadeType": "NONE",
"cardinality": "MANY_TO_MANY",
"type": "LINK",
"symmetric": false,
"managed": true,
"joinConditions": [
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "intel_report",
"fieldName": "id"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "intelReportId"
}
],
"operator": "EQ"
},
{
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "personId"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "person",
"fieldName": "id"
}
],
"operator": "EQ"
}
],
"fields": [
{
"id": 101545,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.042Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Auto Generated Sk",
"localizedLabels": [
{
"id": 103197,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Auto Generated Sk",
"version": 0,
"localeCd": "en-US"
}
],
"name": "auto_generated_sk",
"columnName": "auto_generated_sk",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 1,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101548,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.024Z",
"label": "Report Id",
"localizedLabels": [
{
"id": 103200,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Report Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "intelReportId",
"columnName": "intel_report_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101551,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Person Id",
"localizedLabels": [
{
"id": 103203,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Person Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "personId",
"columnName": "person_id",
"dataType": "STRING",
"length": 36,
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 1,
"version": 1,
"readOnly": false,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101552,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Version",
"localizedLabels": [
{
"id": 103204,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Version",
"version": 0,
"localeCd": "en-US"
}
],
"name": "version",
"columnName": "version",
"dataType": "LONG",
"required": true,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 4,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101547,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created By User Id",
"localizedLabels": [
{
"id": 103199,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_by_user_id",
"columnName": "created_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 5,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101546,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Created at Date/Time",
"localizedLabels": [
{
"id": 103198,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.043Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.043Z",
"label": "Created at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "created_at_dttm",
"columnName": "created_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 6,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101550,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated By User Id",
"localizedLabels": [
{
"id": 103202,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated By User Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_by_user_id",
"columnName": "last_updated_by_user_id",
"dataType": "STRING",
"length": 255,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 7,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
},
{
"id": 101549,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:30.025Z",
"label": "Last Updated at Date/Time",
"localizedLabels": [
{
"id": 103201,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Last Updated at Date/Time",
"version": 0,
"localeCd": "en-US"
}
],
"name": "last_updated_at_dttm",
"columnName": "last_updated_at_dttm",
"dataType": "TIMESTAMP",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": true,
"displayIndex": 8,
"version": 1,
"readOnly": true,
"indexedForSearch": false,
"showTimeZone": false,
"ownerName": "intel_report.reported_by",
"masked": false
}
],
"localizedReverseLabels": [
{
"id": 103205,
"createdBy": "sasboot",
"createdAt": "2023-06-23T20:47:08.044Z",
"lastUpdatedBy": "sasboot",
"lastUpdatedAt": "2023-06-23T20:47:08.044Z",
"label": "Reported",
"version": 0,
"localeCd": "en-US"
}
],
"useCustomIndex": false,
"color": "#c3c3c3",
"width": 1,
"dashType": "solid",
"reindexRequired": false,
"readOnly": false,
"qualifiedName": "intel_report__reported_by"
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | relationshipType |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The request did not find a relationship type with a matching ID or the relationship type was found but the table backing it was not found. | sasError |
Solutions
Contains the operations related to managing solution metadata.
Mark the items in a solution as published
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/solutions/{solutionName}/publish \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = 'null';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/solutions/{solutionName}/publish',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/solutions/{solutionName}/publish', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/solutions/{solutionName}/publish", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /solutions/{solutionName}/publish
Marks all entity types, page templates, and page contexts as published. This makes it possible to differentiate published items from open and modified items.
Body parameter
null
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
solutionName | path | string | true | The name of the solution. |
body | body | any | false | The request body should be empty. |
Example responses
200 Response
{
"solutionName": "my_solution",
"solutionLabel": "My Solution",
"successful": 2,
"failed": 1,
"results": [
{
"type": "ENTITY_TYPE",
"label": "My Entity Type",
"successful": 1,
"failed": 0,
"errors": []
},
{
"type": "PAGE_TEMPLATE",
"label": "My Page Template",
"successful": 1,
"failed": 0,
"errors": []
},
{
"type": "ENTITY_TYPE",
"label": "Some Other Entity Type",
"successful": 0,
"failed": 1,
"errors": [
{
"name": "some_other_entity_type",
"label": "Some Other Entity Type",
"message": "Some error message describing the error encountered while attempting to publish Some Other Entity Type."
}
]
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The solution was published. | solutionPublishResult |
400 | Bad Request | There was a problem with the solution in the request body. | sasError |
404 | Not Found | The solution was not found. | sasError |
Transaction Types
Contains the operations related to managing transaction type metadata.
Retrieve a transaction type by name
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/transactions \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/transactions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/transactions', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/transactions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/transactions
Retrieves a transaction type object by name. Transaction types are metadata describing transaction links.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | query | string | false | The name of a transaction type object. |
Example responses
200 Response
{
"id": 103401,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.241Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.241Z",
"label": "Business Transactions",
"localizedLabels": [
{
"id": 103618,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.246Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.246Z",
"label": "Business Transactions",
"version": 0,
"localeCd": "en-US"
}
],
"name": "business_transactions",
"dataStoreName": "FINANCE_STORE",
"dataStoreDefaultSchemaName": "finance",
"tableName": "business_transactions",
"systemReserved": false,
"version": 0,
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"fromObjectName": "business_account",
"toObjectName": "business_customers",
"fromObjJoinCondition": {
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "business_account",
"fieldName": "primary_account_number"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "primary_account_number"
}
],
"operator": "EQ"
},
"toObjJoinCondition": {
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "customer_id_number"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "business_customers",
"fieldName": "customer_id_number"
}
],
"operator": "EQ"
},
"fields": [
{
"id": 103533,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.248Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.248Z",
"label": "Transaction Id",
"localizedLabels": [
{
"id": 103619,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.248Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.248Z",
"label": "Transaction Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "transaction_id",
"columnName": "transaction_id",
"dataType": "STRING",
"length": 14,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 0,
"version": 0,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103534,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Customer Id Number",
"localizedLabels": [
{
"id": 103620,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Customer Id Number",
"version": 0,
"localeCd": "en-US"
}
],
"name": "customer_id_number",
"columnName": "customer_id_number",
"dataType": "NUMERIC",
"precision": 32,
"scale": 0,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103535,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Primary Account Number",
"localizedLabels": [
{
"id": 103621,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Primary Account Number",
"version": 0,
"localeCd": "en-US"
}
],
"name": "primary_account_number",
"columnName": "primary_account_number",
"dataType": "NUMERIC",
"precision": 32,
"scale": 0,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103536,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Transaction Date",
"localizedLabels": [
{
"id": 103622,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Transaction Date",
"version": 0,
"localeCd": "en-US"
}
],
"name": "transaction_date",
"columnName": "transaction_date",
"dataType": "TIMESTAMP_WITH_TIME_ZONE",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103537,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Id",
"localizedLabels": [
{
"id": 103623,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 2,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 4,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103538,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Desc",
"localizedLabels": [
{
"id": 103624,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Desc",
"version": 0,
"localeCd": "en-US"
}
],
"name": "tran_desc",
"columnName": "tran_desc",
"dataType": "STRING",
"length": 24,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 5,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103539,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Orig Tran Amt Cash",
"localizedLabels": [
{
"id": 103625,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Orig Tran Amt Cash",
"version": 0,
"localeCd": "en-US"
}
],
"name": "orig_tran_amt_cash",
"columnName": "orig_tran_amt_cash",
"dataType": "NUMERIC",
"precision": 15,
"scale": 2,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 6,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103540,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Unique Id",
"localizedLabels": [
{
"id": 103626,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Unique Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "tran_unique_id",
"columnName": "tran_unique_id",
"dataType": "STRING",
"length": 25,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 7,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
}
],
"readOnly": true,
"transactionDateFieldName": "transaction_date"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | transactionType |
404 | Not Found | The request did not find a transaction type with a matching name. | sasError |
Retrieve headers for a transaction type object by ID
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/admin/transactions/{transactionTypeId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/admin/transactions/{transactionTypeId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/admin/transactions/{transactionTypeId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/admin/transactions/{transactionTypeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/transactions/{transactionTypeId}
Retrieves headers for a transaction type object by ID. Transaction types are metadata that describe transaction links.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
transactionTypeId | path | string | true | The ID of the transaction type object. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The request did not find a transaction type with a matching name. | None |
Retrieve a transaction type object by ID
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/transactions/{transactionTypeId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/transactions/{transactionTypeId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/transactions/{transactionTypeId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/transactions/{transactionTypeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/transactions/{transactionTypeId}
Retrieves a transaction type object by ID. Transaction types are metadata that describe transaction links.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
transactionTypeId | path | string | true | The ID of the transaction type object. |
Example responses
200 Response
{
"id": 103401,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.241Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.241Z",
"label": "Business Transactions",
"localizedLabels": [
{
"id": 103618,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.246Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.246Z",
"label": "Business Transactions",
"version": 0,
"localeCd": "en-US"
}
],
"name": "business_transactions",
"dataStoreName": "FINANCE_STORE",
"dataStoreDefaultSchemaName": "finance",
"tableName": "business_transactions",
"systemReserved": false,
"version": 0,
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"fromObjectName": "business_account",
"toObjectName": "business_customers",
"fromObjJoinCondition": {
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "business_account",
"fieldName": "primary_account_number"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "primary_account_number"
}
],
"operator": "EQ"
},
"toObjJoinCondition": {
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "customer_id_number"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "business_customers",
"fieldName": "customer_id_number"
}
],
"operator": "EQ"
},
"fields": [
{
"id": 103533,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.248Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.248Z",
"label": "Transaction Id",
"localizedLabels": [
{
"id": 103619,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.248Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.248Z",
"label": "Transaction Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "transaction_id",
"columnName": "transaction_id",
"dataType": "STRING",
"length": 14,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 0,
"version": 0,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103534,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Customer Id Number",
"localizedLabels": [
{
"id": 103620,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Customer Id Number",
"version": 0,
"localeCd": "en-US"
}
],
"name": "customer_id_number",
"columnName": "customer_id_number",
"dataType": "NUMERIC",
"precision": 32,
"scale": 0,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103535,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Primary Account Number",
"localizedLabels": [
{
"id": 103621,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Primary Account Number",
"version": 0,
"localeCd": "en-US"
}
],
"name": "primary_account_number",
"columnName": "primary_account_number",
"dataType": "NUMERIC",
"precision": 32,
"scale": 0,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103536,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Transaction Date",
"localizedLabels": [
{
"id": 103622,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Transaction Date",
"version": 0,
"localeCd": "en-US"
}
],
"name": "transaction_date",
"columnName": "transaction_date",
"dataType": "TIMESTAMP_WITH_TIME_ZONE",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103537,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Id",
"localizedLabels": [
{
"id": 103623,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 2,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 4,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103538,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Desc",
"localizedLabels": [
{
"id": 103624,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Desc",
"version": 0,
"localeCd": "en-US"
}
],
"name": "tran_desc",
"columnName": "tran_desc",
"dataType": "STRING",
"length": 24,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 5,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103539,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Orig Tran Amt Cash",
"localizedLabels": [
{
"id": 103625,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Orig Tran Amt Cash",
"version": 0,
"localeCd": "en-US"
}
],
"name": "orig_tran_amt_cash",
"columnName": "orig_tran_amt_cash",
"dataType": "NUMERIC",
"precision": 15,
"scale": 2,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 6,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103540,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Unique Id",
"localizedLabels": [
{
"id": 103626,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Unique Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "tran_unique_id",
"columnName": "tran_unique_id",
"dataType": "STRING",
"length": 25,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 7,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
}
],
"readOnly": true,
"transactionDateFieldName": "transaction_date"
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | transactionType |
404 | Not Found | The request did not find a transaction type with a matching name. | sasError |
Retrieve all transaction types
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/admin/transactions/all \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/transactions/all',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/admin/transactions/all', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/admin/transactions/all", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/transactions/all
Retrieves all transaction types. Transaction types are metadata that describe transaction links.
Example responses
200 Response
[
{
"id": 103401,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.241Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.241Z",
"label": "Business Transactions",
"localizedLabels": [
{
"id": 103618,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.246Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.246Z",
"label": "Business Transactions",
"version": 0,
"localeCd": "en-US"
}
],
"name": "business_transactions",
"dataStoreName": "FINANCE_STORE",
"dataStoreDefaultSchemaName": "finance",
"tableName": "business_transactions",
"systemReserved": false,
"version": 0,
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"fromObjectName": "business_account",
"toObjectName": "business_customers",
"fromObjJoinCondition": {
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "business_account",
"fieldName": "primary_account_number"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "primary_account_number"
}
],
"operator": "EQ"
},
"toObjJoinCondition": {
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "customer_id_number"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "business_customers",
"fieldName": "customer_id_number"
}
],
"operator": "EQ"
},
"fields": [
{
"id": 103533,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.248Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.248Z",
"label": "Transaction Id",
"localizedLabels": [
{
"id": 103619,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.248Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.248Z",
"label": "Transaction Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "transaction_id",
"columnName": "transaction_id",
"dataType": "STRING",
"length": 14,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 0,
"version": 0,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103534,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Customer Id Number",
"localizedLabels": [
{
"id": 103620,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Customer Id Number",
"version": 0,
"localeCd": "en-US"
}
],
"name": "customer_id_number",
"columnName": "customer_id_number",
"dataType": "NUMERIC",
"precision": 32,
"scale": 0,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103535,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Primary Account Number",
"localizedLabels": [
{
"id": 103621,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Primary Account Number",
"version": 0,
"localeCd": "en-US"
}
],
"name": "primary_account_number",
"columnName": "primary_account_number",
"dataType": "NUMERIC",
"precision": 32,
"scale": 0,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103536,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Transaction Date",
"localizedLabels": [
{
"id": 103622,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Transaction Date",
"version": 0,
"localeCd": "en-US"
}
],
"name": "transaction_date",
"columnName": "transaction_date",
"dataType": "TIMESTAMP_WITH_TIME_ZONE",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103537,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Id",
"localizedLabels": [
{
"id": 103623,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 2,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 4,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103538,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Desc",
"localizedLabels": [
{
"id": 103624,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Desc",
"version": 0,
"localeCd": "en-US"
}
],
"name": "tran_desc",
"columnName": "tran_desc",
"dataType": "STRING",
"length": 24,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 5,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103539,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Orig Tran Amt Cash",
"localizedLabels": [
{
"id": 103625,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Orig Tran Amt Cash",
"version": 0,
"localeCd": "en-US"
}
],
"name": "orig_tran_amt_cash",
"columnName": "orig_tran_amt_cash",
"dataType": "NUMERIC",
"precision": 15,
"scale": 2,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 6,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103540,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Unique Id",
"localizedLabels": [
{
"id": 103626,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Unique Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "tran_unique_id",
"columnName": "tran_unique_id",
"dataType": "STRING",
"length": 25,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 7,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
}
],
"readOnly": true,
"transactionDateFieldName": "transaction_date"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [allOf] | false | none | [The metadata that defines a class of transactions. This definition includes a "from" entity type, a "to" entity type, a date-time field, as well as on optional list of additional fields. A transaction, which is an instance of a transaction type, defines an action that was performed between two entities at a specific point in time. ] |
» Transaction Type | any | false | none | The metadata that defines a class of transactions. This definition includes a "from" entity type, a "to" entity type, a date-time field, as well as on optional list of additional fields. A transaction, which is an instance of a transaction type, defines an action that was performed between two entities at a specific point in time. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | dataObject | false | none | Reserved for internal use. An abstract object for representing an object that is associated with a data table. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»» anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
»»»»» id | integer | false | none | The primary key that uniquely identifies this metadata object. |
»»»»» createdBy | string | false | none | The user ID that created this metadata object. |
»»»»» createdAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was created. |
»»»»» lastUpdatedBy | string | false | none | The user ID that most recently modified this metadata object. |
»»»»» lastUpdatedAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was last modified. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»» anonymous | object | false | none | none |
»»»»» label | string | false | none | The locale neutral label for this metadata object. |
»»»»» description | string | false | none | The locale neutral description for this metadata object. |
»»»»» localizedLabels | [allOf] | false | none | The localized labels that are associated with this metadata object. |
»»»»»» Localized Label | any | false | none | The description text that is associated with a specific locale. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» anonymous | object | false | none | none |
»»»»»»»» version | integer | false | none | The internal Data Hub version for the localized text entry. |
»»»»»»»» locale | string | false | none | A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN". |
»»»»»»»» label | string | false | none | The text value that is expressed in a specific language. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» localizedDescriptions | [allOf] | false | none | The localized descriptions that are associated with this metadata object. |
»»»»»» Localized Description | any | false | none | The description text that is associated with a specific locale. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»»» anonymous | object | false | none | none |
»»»»»»»» version | integer | false | none | The internal Data Hub version for the localized text entry. |
»»»»»»»» locale | string | false | none | A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN". |
»»»»»»»» description | string | false | none | The text value that is expressed in a specific language. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»» anonymous | object | false | none | none |
»»»» name | string | false | none | The name of this metadata object. |
»»»» dataStoreName | string | false | none | The name of the data store where this type of metadata will be stored. |
»»»» tableName | string | false | none | The name of the database table where this type of metadata will be stored. |
»»»» systemReserved | boolean | false | none | Specifies whether this metadata object is reserved for internal use only. |
»»»» historyEnabled | boolean | false | none | Specifies whether changes to instances of this entity will be audited. |
»»»» version | integer | false | none | The internal Data Hub version for this metadata object. |
»»»» validFromFieldName | string | false | none | The name of the field that contain the validFrom date/time value. |
»»»» validToFieldName | string | false | none | The name of the field that contains the validTo date/time value. |
»»»» lastUpdatedAtTimeFieldName | string | false | none | The name of the field that contains the last updated date/time value. |
»»»» createdAtTimeFieldName | string | false | none | The name of the field that contains the creation date/time value. |
»»»» displayTextFields | [sortableNameReference] | false | none | Specifies the fields to be concatenated to form the display label. The values of any masked fields will appear in their raw, unmasked form in the display label. |
»»»»» Sortable Name Reference | object | false | none | A name (typically a field name) with an ordinal that indicates its position in a sequence. |
»»»»»» name | string | false | none | The name of the reference. |
»»»»»» displayIndex | integer | false | none | The ordinal for the name. This is typically a field name. |
»»»» dataStoreAssignedTimeZone | string | false | none | The value of the "assignedTimeZone" property in the data store that is associated with this metadata object. This property is read-only. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | object | false | none | none |
»»» fromObjectName | string | false | none | The entity type on the "from" side of the transaction. |
»»» toObjectName | string | false | none | The entity type on the "to" side of the transaction. |
»»» fromObjJoinCondition | entityTypeExpressionBoolean | false | none | The join condition that identifies the "from" entity type. Join conditions cannot reference masked fields. |
»»» toObjJoinCondition | entityTypeExpressionBoolean | false | none | The join condition that identifies the "to" entity type. Join conditions cannot reference masked fields. |
»»» fromObjectRefFieldName | string | false | none | The name of the field that contains the reference key to the "from" entity. This field cannot be masked. |
»»» toObjectRefFieldName | string | false | none | The name of the field that contains the reference key to the "to" entity. This field cannot be masked. |
»»» fromObjectTypeFieldName | string | false | none | If the transactions can have different "from" entity types, the name of the field that contains the "from" entity type. This field cannot be masked. |
»»» toObjectTypeFieldName | string | false | none | If the transactions can have different "to" entity types, name of the field that contains the "to" entity type. This field cannot be masked. |
»»» lineWidthFieldName | string | false | none | The field that is used to calculate the line width used when displaying the transaction on a network diagram. |
»»» lineWidthFunctionType | string | false | none | The aggregate function that is used (on the field identified in lineWidthFieldName property) to calculate the line width when displaying the transaction on a network diagram. |
»»» lineColorFieldName | string | false | none | The field that is used to determine line color when displaying the transaction on a network diagram. |
»»» lineColorFunctionType | string | false | none | The aggregate function that is used (on field identified in lineColorFieldName property) to determine the line color when displaying the transaction on a network diagram. |
»»» validFromFieldName | string | false | none | The field that is used to determine the earliest time this transaction is valid. This field cannot be masked. |
»»» fields | [allOf] | false | none | The array that contains the fields that are associated with this transaction type. |
»»»» Transaction Type Field | transactionTypeField | false | none | A single field that is associated with a transaction type object. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | dataField | false | none | Reserved for internal use. An abstract object representing the metadata that all data object fields have in common. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»» anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»»» anonymous | object | false | none | none |
»»»»»»» name | string | false | none | The name of the field. |
»»»»»»» columnName | string | false | none | The name of the database column that is associated with this field. |
»»»»»»» dataType | string | false | none | The type of the database column that is associated with this field. Note: The "json" data type is only partially supported for internal use with Postgres. |
»»»»»»» length | integer | false | none | The size of the data type. This value is used primarily for managing the length of string fields. |
»»»»»»» precision | integer | false | none | The number of significant digits for a numeric type. The maximum value for precision is database dependent. For example, it is 38 for Oracle. |
»»»»»»» scale | integer | false | none | The number of decimal digits for a numeric type. Integers have a scale of zero. A negative scale value can be used to control the maximum number of digits to the left of the decimal point. |
»»»»»»» required | boolean | false | none | Indicates whether the field value must be provided. |
»»»»»»» primaryKeyField | boolean | false | none | Indicates whether the field value is used as part of primary key. Primary key fields cannot be masked. |
»»»»»»» unique | boolean | false | none | Indicates whether duplicate values are allowed for the field. |
»»»»»»» autoGenerated | boolean | false | none | Indicates whether the values for this field are automatically generated. |
»»»»»»» systemReserved | boolean | false | none | Indicates whether modifications are allowed for this field type. Some fields are created for internal use only. System reserved fields cannot be masked. |
»»»»»»» displayIndex | integer | false | none | The order in which fields occur within the database. This index is one-based. |
»»»»»»» version | integer | false | none | The internal Data Hub version for this field. |
»»»»»»» constrainingListName | string | false | none | The name of a Reference List that determines the list of valid values for this field. |
»»»»»»» userSelectionStrategy | string | false | none | Indicates the types of values that are allowed in this field. |
»»»»»»» allowMultipleSelections | boolean | false | none | Indicates whether multiple selections are allowed. |
»»»»»»» primaryKeySeqNo | integer | false | none | The position this field occupies in a primary key. This index is one-based. |
»»»»»»» readOnly | boolean | false | none | Indicates whether modifications are allowed for this field type. |
»»»»»»» indexedForSearch | boolean | false | none | Indicates whether this field should be added to the search index. |
»»»»»»» logicalDataType | string | false | none | Optional data subtype value for handling user groups and reference data. |
»»»»»»» masked | boolean | false | none | Indicates whether this field should be masked from users and groups that are not authorized to reveal the masking. Fields cannot be masked if they are system reserved, if they participate in a primary key, or if they are referenced in a Relationship Type or Transaction Type's join configuration. |
»»»»»»» authorizedToRevealMasked | [userGroupChooserSelection] | false | none | A list of users or groups that identifies who is authorized to reveal the field if it is masked. |
»»»»»»»» User Group Chooser Selection | object | false | none | A user or group account. |
»»»»»»»»» id | string | false | none | The name of the user or group. |
»»»»»»»»» type | string | false | none | Denotes whether the account is a user or group. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»»»»» anonymous | object | false | none | none |
»»»»»» ownerName | string | false | none | The name of the owner. |
Enumerated Values
Property | Value |
---|---|
lineWidthFunctionType | SUM |
lineWidthFunctionType | COUNT |
lineWidthFunctionType | AVERAGE |
lineWidthFunctionType | MIN |
lineWidthFunctionType | MAX |
lineColorFunctionType | SUM |
lineColorFunctionType | COUNT |
lineColorFunctionType | AVERAGE |
lineColorFunctionType | MIN |
lineColorFunctionType | MAX |
dataType | BOOLEAN |
dataType | STRING |
dataType | SMALLINT |
dataType | INTEGER |
dataType | LONG |
dataType | FLOAT |
dataType | DOUBLE |
dataType | NUMERIC |
dataType | DATE |
dataType | TIMESTAMP |
dataType | TIMESTAMP_WITH_TIME_ZONE |
dataType | REFERENCE_DATA |
dataType | JSON |
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
logicalDataType | USER_GROUP |
logicalDataType | REFERENCE_DATA |
type | user |
type | group |
Trigger transaction type metadata reconstruction
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/admin/transactions/{transactionTypeId}/reconstruct \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = 'null';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/admin/transactions/{transactionTypeId}/reconstruct',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/admin/transactions/{transactionTypeId}/reconstruct', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/admin/transactions/{transactionTypeId}/reconstruct", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/transactions/{transactionTypeId}/reconstruct
Synchronizes the transaction type's field metadata with the schema for the database table that contains the transaction type's records. This can be used to repair the transaction type's metadata if the table that backs the transaction type changes. Care should be taken when using this operation as it does not automatically update other services in SAS Visual Investigator to reflect the metadata changes. Users who do not understand how their metadata is used in SAS Visual Investigator or are not prepared to repair inconsistencies downstream from Data Hub are not advised to use this endpoint. The request body should be empty.
Body parameter
null
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
transactionTypeId | path | string | true | The numerical ID of the transaction type object. |
body | body | any | false | The request body should be empty. |
Example responses
200 Response
{
"id": 103401,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.241Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.241Z",
"label": "Business Transactions",
"localizedLabels": [
{
"id": 103618,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.246Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.246Z",
"label": "Business Transactions",
"version": 0,
"localeCd": "en-US"
}
],
"name": "business_transactions",
"dataStoreName": "FINANCE_STORE",
"dataStoreDefaultSchemaName": "finance",
"tableName": "business_transactions",
"systemReserved": false,
"version": 0,
"dataStoreAssignedTimeZone": "Etc/UTC",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"fromObjectName": "business_account",
"toObjectName": "business_customers",
"fromObjJoinCondition": {
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "business_account",
"fieldName": "primary_account_number"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "primary_account_number"
}
],
"operator": "EQ"
},
"toObjJoinCondition": {
"type": "Conditional",
"leftOperand": {
"type": "FieldRef",
"objectName": "^RELATION^",
"fieldName": "customer_id_number"
},
"rightOperands": [
{
"type": "FieldRef",
"objectName": "business_customers",
"fieldName": "customer_id_number"
}
],
"operator": "EQ"
},
"fields": [
{
"id": 103533,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.248Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.248Z",
"label": "Transaction Id",
"localizedLabels": [
{
"id": 103619,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.248Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.248Z",
"label": "Transaction Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "transaction_id",
"columnName": "transaction_id",
"dataType": "STRING",
"length": 14,
"required": true,
"primaryKeyField": true,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 0,
"version": 0,
"primaryKeySeqNo": 1,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103534,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Customer Id Number",
"localizedLabels": [
{
"id": 103620,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Customer Id Number",
"version": 0,
"localeCd": "en-US"
}
],
"name": "customer_id_number",
"columnName": "customer_id_number",
"dataType": "NUMERIC",
"precision": 32,
"scale": 0,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 1,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103535,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Primary Account Number",
"localizedLabels": [
{
"id": 103621,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Primary Account Number",
"version": 0,
"localeCd": "en-US"
}
],
"name": "primary_account_number",
"columnName": "primary_account_number",
"dataType": "NUMERIC",
"precision": 32,
"scale": 0,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 2,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103536,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Transaction Date",
"localizedLabels": [
{
"id": 103622,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Transaction Date",
"version": 0,
"localeCd": "en-US"
}
],
"name": "transaction_date",
"columnName": "transaction_date",
"dataType": "TIMESTAMP_WITH_TIME_ZONE",
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 3,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103537,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Id",
"localizedLabels": [
{
"id": 103623,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "id",
"columnName": "id",
"dataType": "STRING",
"length": 2,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 4,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103538,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Desc",
"localizedLabels": [
{
"id": 103624,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Desc",
"version": 0,
"localeCd": "en-US"
}
],
"name": "tran_desc",
"columnName": "tran_desc",
"dataType": "STRING",
"length": 24,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 5,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103539,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Orig Tran Amt Cash",
"localizedLabels": [
{
"id": 103625,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Orig Tran Amt Cash",
"version": 0,
"localeCd": "en-US"
}
],
"name": "orig_tran_amt_cash",
"columnName": "orig_tran_amt_cash",
"dataType": "NUMERIC",
"precision": 15,
"scale": 2,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 6,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
},
{
"id": 103540,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Unique Id",
"localizedLabels": [
{
"id": 103626,
"createdBy": "videmo",
"createdAt": "2023-06-30T15:38:17.249Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2023-06-30T15:38:17.249Z",
"label": "Tran Unique Id",
"version": 0,
"localeCd": "en-US"
}
],
"name": "tran_unique_id",
"columnName": "tran_unique_id",
"dataType": "STRING",
"length": 25,
"required": false,
"primaryKeyField": false,
"unique": false,
"autoGenerated": false,
"systemReserved": false,
"displayIndex": 7,
"version": 0,
"readOnly": true,
"indexedForSearch": true,
"showTimeZone": false,
"ownerName": "business_transactions",
"masked": false
}
],
"readOnly": true,
"transactionDateFieldName": "transaction_date"
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | transactionType |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The request did not find a transaction type with a matching ID or the transaction type was found but the table backing it was not found. | sasError |
Attachments
Contains the operations related to attachments.
Get headers for all file attachment metadata associated with a document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{entityTypeName}/{documentId}/attachments
Gets headers for all file attachment metadata that is associated with a document. The "location" property in the response contains the relative URI path to the document. To retrieve the contents of an attachment, use that URI to download the document from the Files service:
GET ${hostAndPort}${valueOfLocationProperty}
.
Note that hostAndPort
is the host and port of the Files service.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
start | query | integer | false | The starting index of the first document in a page. |
limit | query | integer | false | The maximum number of attachments to return in this page of results. The actual number of returned items is fewer if the collection is exhausted. |
sortBy | query | string | false | The criteria by which to sort the attachments. |
filter | query | string | false | The criteria by which to filter the attachments. |
Detailed descriptions
limit: The maximum number of attachments to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | The request was invalid. | errorResponse |
Get all file attachment metadata associated with a document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{entityTypeName}/{documentId}/attachments
The "location" property in the response contains the relative URI path to the document. To retrieve the contents of an attachment, use that URI to download the document from the Files service:
GET ${hostAndPort}${valueOfLocationProperty}
.
Note that hostAndPort
is the host and port of the Files service.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
start | query | integer | false | The starting index of the first document in a page. |
limit | query | integer | false | The maximum number of attachments to return in this page of results. The actual number of returned items is fewer if the collection is exhausted. |
sortBy | query | string | false | The criteria by which to sort the attachments. |
filter | query | string | false | The criteria by which to filter the attachments. |
Detailed descriptions
limit: The maximum number of attachments to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
],
"name": "files",
"accept": "application/vnd.sas.datahub.file",
"start": 0,
"count": 2,
"items": [
{
"version": 1,
"id": "237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"name": "DocumentsPdf.pdf",
"originalName": "DocumentsPdf.pdf",
"category": "Attachment",
"location": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"type": "application/pdf",
"size": 22159,
"uploadedAt": "2022-05-31T12:23:14.493Z",
"uploadedBy": "videmo",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"type": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "content",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content",
"type": "application/pdf"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "addFile",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
]
},
{
"version": 1,
"id": "1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"name": "super.txt",
"originalName": "super.txt",
"category": "Attachment",
"location": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"type": "text/plain",
"size": 5,
"uploadedAt": "2022-05-31T12:22:42.067Z",
"uploadedBy": "videmo",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"type": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "content",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content",
"type": "text/plain"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "addFile",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
]
}
],
"limit": 10,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | fileCollection |
400 | Bad Request | The request was invalid. | sasError |
Create file attachment metadata on a document
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of a file association object.",
"value": {
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3,
"x-widdershins-oldRef": "#/components/examples/fileExample/value"
},
"x-widdershins-oldRef": "#/components/examples/fileExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /documents/{entityTypeName}/{documentId}/attachments
Creates file attachment metadata on a document. To create an attachment, upload the file to the SAS Viya Files service, and then use the Files service response to construct a request to the Data Hub createDocumentAttachment endpoint. Here is an example of how to upload a file to the Files service (as of version 1.1 of the Files service):
POST /files/files?parentFolderUri=/folders/folders/${clientGeneratedUuid}
The payload of the request is the file. Refer to the Files API documentation for complete information about how to upload a file.
The client generates the UUID, which
acts as the file name. That UUID is used in the Data Hub attachments request
in the "id" and "location" properties. The "location" property is the relative URI path to download the document from the Files service. Obtain additional property values, such as "type" and "size", from the response of the POST request to the Files service.
Body parameter
{
"description": "Example of a file association object.",
"value": {
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3,
"x-widdershins-oldRef": "#/components/examples/fileExample/value"
},
"x-widdershins-oldRef": "#/components/examples/fileExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
body | body | file | true | The metadata that associates a file with a document. |
Example responses
201 Response
{
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The file attachment metadata on a document was created. | file |
400 | Bad Request | The request was invalid. | sasError |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Location | string | A path to the newly created attachment. |
Get headers for file attachment metadata associated with a document
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{entityTypeName}/{documentId}/attachments/{attachmentId}
Gets headers for the file attachment metadata that is associated with a document. The "location" property is the relative URI path to download the document from the Files service. To retrieve the contents of an attachment, use the URI that is provided in the "location" field:
GET ${hostAndPort}${valueOfLocationProperty}
.
Note that hostAndPort
is the host and port of the Files service.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
attachmentId | path | string | true | The ID for the attachment metadata. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | The request was invalid. | errorResponse |
404 | Not Found | The attachment was not found. | None |
Get file attachment metadata associated with a document
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{entityTypeName}/{documentId}/attachments/{attachmentId}
Gets the file attachment metadata that is associated with a document. The "location" property is the relative URI path to download the document from the Files service. To retrieve the contents of an attachment, use the URI that is provided in the "location" field:
GET ${hostAndPort}${valueOfLocationProperty}
.
Note that hostAndPort
is the host and port of the Files service.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
attachmentId | path | string | true | The ID for the attachment metadata. |
Example responses
200 Response
{
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | file |
400 | Bad Request | The request was invalid. | sasError |
404 | Not Found | The attachment was not found. | sasError |
Delete an attachment from a document
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.delete('https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-datahub/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /documents/{entityTypeName}/{documentId}/attachments/{attachmentId}
Deletes an attachment that is associated with a document. The metadata and the file that are stored by the Files service are deleted.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityTypeName | path | string | true | The name of the entity type to which the document belongs. |
documentId | path | string | true | The ID for the document. |
attachmentId | path | string | true | The ID for the attachment metadata. |
Example responses
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The attachment was deleted. | None |
404 | Not Found | The attachment was not found. | sasError |
Administration
Contains the operations related to administering the service.
Clear and reload the rules caches
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-datahub/admin/rules/cache
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/admin/rules/cache',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-datahub/admin/rules/cache')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-datahub/admin/rules/cache", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/rules/cache
Deletes the data that is contained in rules caches, and then reloads the data. Includes data for page rules, field rules, and node link diagram rules.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The data in the rules caches was cleared and reloaded. | None |
Comments
Contains the operations related to comments.
Get headers for a collection of comments associated with an object
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/comments
Gets headers for a collection of comments by object type and ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object from which to get the comments. |
start | query | integer | false | The starting index of the first comment on the object. |
limit | query | integer | false | The maximum number of comments to return in this page of results. The actual number of returned comments is fewer if the collection is exhausted. |
sortBy | query | string | false | The sort criteria for the request. |
filter | query | string | false | The filter criteria for the request. |
Detailed descriptions
limit: The maximum number of comments to return in this page of results. The actual number of returned comments is fewer if the collection is exhausted.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | The request was invalid. The objectTypeName or ID was null or empty. | None |
404 | Not Found | The object was not found or the user did not have permission to view it. | None |
Get a collection of comments associated with an object
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/comments
Gets a collection of comments by object type and ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object from which to get the comments. |
start | query | integer | false | The starting index of the first comment on the object. |
limit | query | integer | false | The maximum number of comments to return in this page of results. The actual number of returned comments is fewer if the collection is exhausted. |
sortBy | query | string | false | The sort criteria for the request. |
filter | query | string | false | The filter criteria for the request. |
Detailed descriptions
limit: The maximum number of comments to return in this page of results. The actual number of returned comments is fewer if the collection is exhausted.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/example_entity/entity_id/comments",
"uri": "/svi-datahub/documents/example_entity/entity_id/comments",
"type": "application/vnd.sas.collection"
},
{
"method": "GET",
"rel": "next",
"href": "/svi-datahub/documents/example_entity/entity_id/comments?start=10&limit=10",
"uri": "/svi-datahub/documents/example_entity/entity_id/comments?start=10&limit=10",
"type": "application/vnd.sas.collection"
},
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/example_entity/entity_id/comments?start=0&limit=10",
"uri": "/svi-datahub/documents/example_entity/entity_id/comments?start=0&limit=10",
"type": "application/vnd.sas.collection"
}
],
"name": "comments",
"start": 0,
"count": 2,
"items": [
{
"id": 2,
"category": "ExampleCategory2",
"author": {
"id": "example",
"name": "TestExample"
},
"createDate": "2022-03-17T18:29:08.689Z",
"lastUpdatedAt": "2022-03-17T18:29:08.689Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment2"
},
{
"id": 1,
"category": "ExampleCategory",
"author": {
"id": "example",
"name": "TestExample"
},
"createDate": "2022-03-17T17:47:41.845Z",
"lastUpdatedAt": "2022-03-17T17:47:41.845Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment"
}
],
"limit": 10,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | commentCollection |
400 | Bad Request | The request was invalid. The objectTypeName or ID was null or empty. | sasError |
404 | Not Found | The object was not found or the user did not have permission to view it. | sasError |
Create a new comment
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of a comment object.",
"value": {
"id": 1,
"category": "ExampleCategory",
"author": {
"id": "example",
"name": "ExampleUser"
},
"createDate": "2022-03-17T17:47:41.845Z",
"lastUpdatedAt": "2022-03-17T17:47:41.845Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment",
"x-widdershins-oldRef": "#/components/examples/commentExample/value"
},
"x-widdershins-oldRef": "#/components/examples/commentExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /documents/{objectTypeName}/{objectId}/comments
Creates a new comment for the specified object type and object ID.
Body parameter
{
"description": "Example of a comment object.",
"value": {
"id": 1,
"category": "ExampleCategory",
"author": {
"id": "example",
"name": "ExampleUser"
},
"createDate": "2022-03-17T17:47:41.845Z",
"lastUpdatedAt": "2022-03-17T17:47:41.845Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment",
"x-widdershins-oldRef": "#/components/examples/commentExample/value"
},
"x-widdershins-oldRef": "#/components/examples/commentExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object to which to post the comment. |
body | body | comment | false | The comment was created. |
Example responses
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The comment was successfully created. | None |
400 | Bad Request | Potential reasons for a 400 error: -The objectTypeName was null or empty. -The ID was null or empty. -The comment was null. -The comment detail was empty. | |
The error message that is returned clarifies the reason for the 400 error. | sasError | ||
404 | Not Found | The object was not found or the user did not have permission to view it. | sasError |
Update a comment
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of a comment object.",
"value": {
"id": 1,
"category": "ExampleCategory",
"author": {
"id": "example",
"name": "ExampleUser"
},
"createDate": "2022-03-17T17:47:41.845Z",
"lastUpdatedAt": "2022-03-17T17:47:41.845Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment",
"x-widdershins-oldRef": "#/components/examples/commentExample/value"
},
"x-widdershins-oldRef": "#/components/examples/commentExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.put('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /documents/{objectTypeName}/{objectId}/comments
Updates a comment on an object by specifying the object type and ID. During an Update operation, all properties of a comment are read-only except the category. This is for security and audit purposes in order to keep historical data accurate.
Body parameter
{
"description": "Example of a comment object.",
"value": {
"id": 1,
"category": "ExampleCategory",
"author": {
"id": "example",
"name": "ExampleUser"
},
"createDate": "2022-03-17T17:47:41.845Z",
"lastUpdatedAt": "2022-03-17T17:47:41.845Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment",
"x-widdershins-oldRef": "#/components/examples/commentExample/value"
},
"x-widdershins-oldRef": "#/components/examples/commentExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object in which to update the comment. |
body | body | comment | false | The comment to update. |
Example responses
200 Response
{
"id": 1,
"category": "ExampleCategory",
"author": {
"id": "example",
"name": "ExampleUser"
},
"createDate": "2022-03-17T17:47:41.845Z",
"lastUpdatedAt": "2022-03-17T17:47:41.845Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment"
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The comment was created. | comment |
400 | Bad Request | Potential reasons for a 400 error: - The objectTypeName was null or empty. - The ID was null or empty. - The comment was null. - Anything other than the comment category was changed. | |
The error message that is returned clarifies the reason for the 400 error. | sasError | ||
404 | Not Found | The object was not found, the user did not have permission to view it, or the comment does not exist. | sasError |
Get headers for a collection of comment category summaries that are associated with an object
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments/categories
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments/categories',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments/categories')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments/categories", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/comments/categories
Gets headers for a collection of comment category summaries by object type and ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object from which to get the comments. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | The objectTypeName or ID was null or empty. | None |
404 | Not Found | The object was not found or the user did not have permission to view it. | None |
Get a collection of comment category summaries that are associated with an object
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments/categories \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments/categories',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments/categories', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/comments/categories", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/comments/categories
Gets a collection of comment category summaries by object type and ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object from which to get the comments. |
Example responses
200 Response
[
{
"category": "ExampleCategory",
"count": 2
},
{
"category": "ExampleCategory2",
"count": 1
}
]
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
400 | Bad Request | The objectTypeName or ID was null or empty. | sasError |
404 | Not Found | The object was not found or the user did not have permission to view it. | sasError |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [commentCategorySummary] | false | none | [Contains the comment category name and the count of that category on the object.] |
» Comment Category Summary | commentCategorySummary | false | none | Contains the comment category name and the count of that category on the object. |
»» category | string | false | none | The name of the category. |
»» count | integer | false | none | The number of comments that have the category on the object. |
Files
Contains the operations related to files.
Create a file association object and associate it with an object
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"description": "Example of a file association object.",
"value": {
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
},
"x-widdershins-oldRef": "#/components/examples/fileExample"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /documents/{objectTypeName}/{objectId}/files
Creates a file association. You can create a file association by using the representation that is contained in the request body or by reusing a file that is already associated with an object. To create a file association using the representation that is contained in the request body, the file to which the file association points (via its Location property) must exist in the Files service and must not be associated with another object. To create a file association by using a file that is already associated with an object, call this endpoint without a request body and use the copyFileFrom parameter to identify the file. The Data Hub service copies the file enabling it to be associated with a different object. The object that is identified by the objectTypeName and objectId in the path is associated with the copied file.
Body parameter
{
"description": "Example of a file association object.",
"value": {
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
},
"x-widdershins-oldRef": "#/components/examples/fileExample"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object. |
copyFileFrom | query | string | false | The ID of the file to copy. If this parameter is used, do not include a request body. |
body | body | file | true | The metadata that associates a file with a document. If the copyFileFrom parameter is used, do not include a request body. |
Detailed descriptions
body: The metadata that associates a file with a document. If the copyFileFrom parameter is used, do not include a request body.
Example responses
201 Response
{
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The file metadata was created and associated with the object. | file |
400 | Bad Request | The request failed. The file association in the request body was invalid. | sasError |
404 | Not Found | The object does not exist or the user does not have the correct permissions to view the object. | sasError |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Location | string | The path to the newly created file. |
Get headers for the files that are associated with an object
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/files
Gets headers for the files that are associated with an object and returns them as a collection.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object. |
start | query | integer | false | The starting index of the first file in the collection. |
limit | query | integer | false | The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted. |
sortBy | query | string | false | The criteria by which to sort the files. |
filter | query | string | false | The criteria by which to filter the files. |
Detailed descriptions
limit: The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
],
"name": "files",
"accept": "application/vnd.sas.datahub.file",
"start": 0,
"count": 2,
"items": [
{
"version": 1,
"id": "237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"name": "DocumentsPdf.pdf",
"originalName": "DocumentsPdf.pdf",
"category": "Attachment",
"location": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"type": "application/pdf",
"size": 22159,
"uploadedAt": "2022-05-31T12:23:14.493Z",
"uploadedBy": "videmo",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"type": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "content",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content",
"type": "application/pdf"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "addFile",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
]
},
{
"version": 1,
"id": "1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"name": "super.txt",
"originalName": "super.txt",
"category": "Attachment",
"location": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"type": "text/plain",
"size": 5,
"uploadedAt": "2022-05-31T12:22:42.067Z",
"uploadedBy": "videmo",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"type": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "content",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content",
"type": "text/plain"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "addFile",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
]
}
],
"limit": 10,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A collection of metadata for the files that are associated with the object was returned. | fileCollection |
400 | Bad Request | The start or limit parameter was invalid. | None |
404 | Not Found | The object does not exist or the user does not have the correct permissions to view the object. | None |
Get the files that are associated with an object
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/files
Gets the files that are associated with an object and returns them as a collection.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object. |
start | query | integer | false | The starting index of the first file in the collection. |
limit | query | integer | false | The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted. |
sortBy | query | string | false | The criteria by which to sort the files. |
filter | query | string | false | The criteria by which to filter the files. |
Detailed descriptions
limit: The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
],
"name": "files",
"accept": "application/vnd.sas.datahub.file",
"start": 0,
"count": 2,
"items": [
{
"version": 1,
"id": "237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"name": "DocumentsPdf.pdf",
"originalName": "DocumentsPdf.pdf",
"category": "Attachment",
"location": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"type": "application/pdf",
"size": 22159,
"uploadedAt": "2022-05-31T12:23:14.493Z",
"uploadedBy": "videmo",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"type": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "content",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content",
"type": "application/pdf"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "addFile",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
]
},
{
"version": 1,
"id": "1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"name": "super.txt",
"originalName": "super.txt",
"category": "Attachment",
"location": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"type": "text/plain",
"size": 5,
"uploadedAt": "2022-05-31T12:22:42.067Z",
"uploadedBy": "videmo",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"type": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "content",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content",
"type": "text/plain"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "addFile",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
]
}
],
"limit": 10,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A collection of metadata for the files that are associated with the object was returned. | fileCollection |
400 | Bad Request | The start or limit parameter was invalid. | sasError |
404 | Not Found | The object does not exist or the user does not have the correct permissions to view the object. | sasError |
Get headers for file metadata
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/files/{fileId}
Gets headers for the file metadata for the file with the specified object type, object type ID, and file ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object. |
fileId | path | string | true | The ID of the file. |
includeExtractedContent | query | boolean | false | If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response. |
Detailed descriptions
includeExtractedContent: If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The file metadata request was successful. | None |
400 | Bad Request | The request was invalid. The file ID cannot be null. | None |
404 | Not Found | The object does not exist or the user does not have the correct permissions to view the object. | None |
Get file metadata
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/files/{fileId}
Gets the file metadata for the file with the specified object type, object type ID, and file ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object. |
fileId | path | string | true | The ID of the file. |
includeExtractedContent | query | boolean | false | If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response. |
Detailed descriptions
includeExtractedContent: If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response.
Example responses
200 Response
{
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The file metadata request was successful. | file |
400 | Bad Request | The request was invalid. The file ID cannot be null. | sasError |
404 | Not Found | The object does not exist or the user does not have the correct permissions to view the object. | sasError |
Update the file association object with the specified file ID
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.put('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /documents/{objectTypeName}/{objectId}/files/{fileId}
Updates the file metadata for the file with the specified object type, object type ID, and file ID. You can update the following fields: name, description, displayOrder and properties. If the file association is a link to an external file, you can also update the extractedContent field. Updates to any other fields are ignored.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object. |
fileId | path | string | true | The ID of the file. |
includeExtractedContent | query | boolean | false | If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response. |
Detailed descriptions
includeExtractedContent: If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response.
Example responses
200 Response
{
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
412 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The file metadata update was successful. | file |
400 | Bad Request | The request was invalid. The file ID cannot be null. | sasError |
404 | Not Found | The object does not exist, the user does not have the correct permissions to view the object, or the file ID in the request body does not match the file ID in the URI path. | sasError |
412 | Precondition Failed | The file association in the request body was out of date or it did not include a version number. | sasError |
Delete the file with the specified file ID
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-datahub/files/{fileId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/files/{fileId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.delete('https://example.com/svi-datahub/files/{fileId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-datahub/files/{fileId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /files/{fileId}
Deletes the file with the specified ID, if it is not attached to an object. Use the /documents/{objectTypeName}/{objectId}/files/{fileId} endpoint if the file is attached to an object.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fileId | path | string | true | The ID of the file. |
Example responses
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
403 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The file was successfully deleted. | None |
400 | Bad Request | The request failed because the file ID could not be parsed correctly. The file ID must be a UUID. | sasError |
403 | Forbidden | The request failed. The object does not exist, the user does not have the correct permissions to view the object, or the file is attached to an object. | sasError |
404 | Not Found | The request failed. The file could not be deleted. | sasError |
Gets headers when downloading the file with the specified file ID
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}/content \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'range: Range' \
-H 'ifRange: If-Range'
const headers = {
'range':'Range',
'ifRange':'If-Range'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}/content',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'range': 'Range',
'ifRange': 'If-Range'
}
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}/content', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"range": []string{"Range"},
"ifRange": []string{"If-Range"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/files/{fileId}/content
Gets the headers when downloading the file with the specified ID from the object that is specified in the path.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object. |
fileId | path | string | true | The ID of the file. |
range | header | string | false | Sets the range of the file that is downloaded. |
ifRange | header | string | false | Sets the end of the range of the file that is downloaded. |
changeContentDisposition | query | boolean | false | A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header. |
Detailed descriptions
changeContentDisposition: A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The file with the specified file ID was returned. | None |
400 | Bad Request | The file location is not valid. | None |
404 | Not Found | The object does not exist, the user does not have the correct permissions to view the object, or the file association is a link to an external file. External files cannot be downloaded via this endpoint. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Location | string | The path to the file. |
Download the file with the specified file ID
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}/content \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: */*' \
-H 'range: Range' \
-H 'ifRange: If-Range'
const headers = {
'Accept':'*/*',
'range':'Range',
'ifRange':'If-Range'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}/content',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'range': 'Range',
'ifRange': 'If-Range'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}/content', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"range": []string{"Range"},
"ifRange": []string{"If-Range"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/files/{fileId}/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/files/{fileId}/content
Downloads the file with the specified ID from the object that is specified in the path.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type to which the object belongs. |
objectId | path | string | true | The ID of the object. |
fileId | path | string | true | The ID of the file. |
range | header | string | false | Sets the range of the file that is downloaded. |
ifRange | header | string | false | Sets the end of the range of the file that is downloaded. |
changeContentDisposition | query | boolean | false | A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header. |
Detailed descriptions
changeContentDisposition: A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
Example responses
200 Response
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The file with the specified file ID was returned. | Inline |
400 | Bad Request | The file location is not valid. | sasError |
404 | Not Found | The object does not exist, the user does not have the correct permissions to view the object, or the file association is a link to an external file. External files cannot be downloaded via this endpoint. | sasError |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Location | string | The path to the file. |
Gets headers for downloading the detached file with the specified file ID
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/files/{fileId}/content \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'range: Range' \
-H 'ifRange: If-Range'
const headers = {
'range':'Range',
'ifRange':'If-Range'
};
fetch('https://example.com/svi-datahub/files/{fileId}/content',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'range': 'Range',
'ifRange': 'If-Range'
}
r = requests.head('https://example.com/svi-datahub/files/{fileId}/content', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"range": []string{"Range"},
"ifRange": []string{"If-Range"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/files/{fileId}/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /files/{fileId}/content
Gets the headers when downloading the file with the specified ID, for a file that is not attached to an object. Use the /documents/{objectTypeName}/{objectId}/files/{fileId}/content endpoint for a file that is attached to an object.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fileId | path | string | true | The ID of the file. |
range | header | string | false | Sets the range of the file that is downloaded. |
ifRange | header | string | false | Sets the end of the range of the file that is downloaded. |
changeContentDisposition | query | boolean | false | A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header. |
Detailed descriptions
changeContentDisposition: A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The file with the specified file ID was returned. | None |
400 | Bad Request | The request failed because the file ID could not be parsed correctly. The file ID must be a UUID. | None |
403 | Forbidden | The request failed. The object does not exist, the user does not have the correct permissions to view the object, or the file is attached to an object. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Location | string | The path to the file. |
Download the detached file with the specified file ID
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/files/{fileId}/content \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: */*' \
-H 'range: Range' \
-H 'ifRange: If-Range'
const headers = {
'Accept':'*/*',
'range':'Range',
'ifRange':'If-Range'
};
fetch('https://example.com/svi-datahub/files/{fileId}/content',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'range': 'Range',
'ifRange': 'If-Range'
}
r = requests.get('https://example.com/svi-datahub/files/{fileId}/content', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"range": []string{"Range"},
"ifRange": []string{"If-Range"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/files/{fileId}/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /files/{fileId}/content
Downloads the file with the specified ID, for a file that is not attached to an object. Use the /documents/{objectTypeName}/{objectId}/files/{fileId}/content endpoint for a file that ißs attached to an object.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fileId | path | string | true | The ID of the file. |
range | header | string | false | Sets the range of the file that is downloaded. |
ifRange | header | string | false | Sets the end of the range of the file that is downloaded. |
changeContentDisposition | query | boolean | false | A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header. |
Detailed descriptions
changeContentDisposition: A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
Example responses
200 Response
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
403 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The file with the specified file ID was returned. | Inline |
400 | Bad Request | The request failed because the file ID could not be parsed correctly. The file ID must be a UUID. | sasError |
403 | Forbidden | The request failed. The object does not exist, the user does not have the correct permissions to view the object, or the file is attached to an object. | sasError |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Location | string | The path to the file. |
Get headers for the files that are associated with a child object
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files
Gets headers for the files that are associated with a child object and returns them as a collection.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the parent object type to which the parent object belongs. |
objectId | path | string | true | The ID of the parent object. |
childDocType | path | string | true | The name of the child document type to which the child document belongs. |
childDocId | path | string | true | The ID of the child document. |
start | query | integer | false | The starting index of the first file in the collection. |
limit | query | integer | false | The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted. |
sortBy | query | string | false | The criteria by which to sort the files. |
filter | query | string | false | The criteria by which to filter the files. |
Detailed descriptions
limit: The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A collection of metadata for the files that are associated with the child object was returned. | None |
400 | Bad Request | The request failed. The parent object type name, parent object ID, child document type name, and child ID cannot be null or empty. | None |
404 | Not Found | The request failed. One or more of the following conditions could have caused the failure: the parent object does not exist, the child object does not exist, or the user does not have the correct permissions to view the object. | None |
Get the files that are associated with a child object
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files
Gets the files that are associated with a child object and returns them as a collection.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the parent object type to which the parent object belongs. |
objectId | path | string | true | The ID of the parent object. |
childDocType | path | string | true | The name of the child document type to which the child document belongs. |
childDocId | path | string | true | The ID of the child document. |
start | query | integer | false | The starting index of the first file in the collection. |
limit | query | integer | false | The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted. |
sortBy | query | string | false | The criteria by which to sort the files. |
filter | query | string | false | The criteria by which to filter the files. |
Detailed descriptions
limit: The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
Example responses
200 Response
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
],
"name": "files",
"accept": "application/vnd.sas.datahub.file",
"start": 0,
"count": 2,
"items": [
{
"version": 1,
"id": "237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"name": "DocumentsPdf.pdf",
"originalName": "DocumentsPdf.pdf",
"category": "Attachment",
"location": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"type": "application/pdf",
"size": 22159,
"uploadedAt": "2022-05-31T12:23:14.493Z",
"uploadedBy": "videmo",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"type": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "content",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content",
"type": "application/pdf"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "addFile",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
]
},
{
"version": 1,
"id": "1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"name": "super.txt",
"originalName": "super.txt",
"category": "Attachment",
"location": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"type": "text/plain",
"size": 5,
"uploadedAt": "2022-05-31T12:22:42.067Z",
"uploadedBy": "videmo",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"type": "application/vnd.sas.datahub.file"
},
{
"method": "GET",
"rel": "content",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content",
"type": "text/plain"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.datahub.file"
},
{
"method": "POST",
"rel": "addFile",
"href": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"uri": "/svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files",
"type": "application/vnd.sas.datahub.file",
"responseType": "application/vnd.sas.datahub.file"
}
]
}
],
"limit": 10,
"version": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A collection of metadata for the files that are associated with the child object was returned. | fileCollection |
400 | Bad Request | The request failed. The parent object type name, parent object ID, child document type name, and child ID cannot be null or empty. | sasError |
404 | Not Found | The request failed. One or more of the following conditions could have caused the failure: the parent object does not exist, the child object does not exist, or the user does not have the correct permissions to view the object. | sasError |
Download a file associated with a child object
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: */*' \
-H 'range: Range' \
-H 'ifRange: If-Range'
const headers = {
'Accept':'*/*',
'range':'Range',
'ifRange':'If-Range'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'range': 'Range',
'ifRange': 'If-Range'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"range": []string{"Range"},
"ifRange": []string{"If-Range"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content
Downloads the file with the specified ID from the child object that is specified in the path.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the parent object type to which the parent object belongs. |
objectId | path | string | true | The ID of the parent object. |
childDocType | path | string | true | The name of the child document type to which the child document belongs. |
childDocId | path | string | true | The ID of the child document. |
fileId | path | string | true | The ID of the file. |
range | header | string | false | Sets the range of the file that is downloaded. |
ifRange | header | string | false | Sets the end of the range of the file that is downloaded. |
changeContentDisposition | query | boolean | false | A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header. |
Detailed descriptions
changeContentDisposition: A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
Example responses
200 Response
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The file with the specified file ID was returned. | Inline |
400 | Bad Request | The request failed. One or more of the following conditions could have caused the failure: the parent object type name was null or empty, the parent object ID was null or empty, the child document type name was null or empty, the child document ID was null or empty, or the file location was invalid. | sasError |
404 | Not Found | The request failed. One or more of the following conditions could have caused the failure: the parent object does not exist, the child object does not exist, the user does not have the correct permissions to view the object, the file with the given ID does not exist, or the file association is a link to an external file. External files cannot be downloaded via this endpoint. | sasError |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Location | string | The path to the file. |
Get headers when downloading a file associated with a child object
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'range: Range' \
-H 'ifRange: If-Range'
const headers = {
'range':'Range',
'ifRange':'If-Range'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'range': 'Range',
'ifRange': 'If-Range'
}
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"range": []string{"Range"},
"ifRange": []string{"If-Range"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content
Gets the headers when downloading the file with the specified ID from the child object that is specified in the path.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the parent object type to which the parent object belongs. |
objectId | path | string | true | The ID of the parent object. |
childDocType | path | string | true | The name of the child document type to which the child document belongs. |
childDocId | path | string | true | The ID of the child document. |
fileId | path | string | true | The ID of the file. |
range | header | string | false | Sets the range of the file that is downloaded. |
ifRange | header | string | false | Sets the end of the range of the file that is downloaded. |
changeContentDisposition | query | boolean | false | A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header. |
Detailed descriptions
changeContentDisposition: A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The file with the specified file ID was returned. | None |
400 | Bad Request | The request failed. One or more of the following conditions could have caused the failure: the parent object type name was null or empty, the parent object ID was null or empty, the child document type name was null or empty, the child document ID was null or empty, or the file location was invalid. | None |
404 | Not Found | The request failed. One or more of the following conditions could have caused the failure: the parent object does not exist, the child object does not exist, the user does not have the correct permissions to view the object, the file with the given ID does not exist, or the file association is a link to an external file. External files cannot be downloaded via this endpoint. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Location | string | The path to the file. |
Sheets
Contains the operations related to sheets.
Get headers for a list of sheets by object type and object ID
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/sheets
Gets headers for a list of the sheets that are associated with the object specified in the path. To modify a sheet, update the sheets property on the object using a separate endpoint.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type. |
objectId | path | string | true | The ID of the object. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A list of sheets was returned. | None |
400 | Bad Request | The request failed. The parameters cannot be null or empty. | None |
404 | Not Found | The request failed. The object was not found or the user did not have permission to view the object. | None |
Get a list of sheets by object type and object ID
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/sheets
Gets a list of the sheets that are associated with the object specified in the path. To modify a sheet, update the sheets property on the object using a separate endpoint.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type. |
objectId | path | string | true | The ID of the object. |
Example responses
200 Response
[
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
},
{
"id": 305,
"type": "WORKSHEET",
"name": "Workspace-2",
"version": 2,
"created": "2020-05-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-05-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 401,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
]
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. A list of sheets was returned. | Inline |
400 | Bad Request | The request failed. The parameters cannot be null or empty. | sasError |
404 | Not Found | The request failed. The object was not found or the user did not have permission to view the object. | sasError |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [sheet] | false | none | [An instance of an insight or workspace.] |
» Sheet | sheet | false | none | An instance of an insight or workspace. |
»» id | integer(int64) | false | none | A value that uniquely identifies the insight or workspace. |
»» name | string | false | none | The name of the insight or workspace. |
»» tabOrder | integer | false | none | The tab order for the insight or workspace. |
»» type | string | false | none | Indicates the type of "sheet", either a workspace or an insight:
|
»» cells | [sheetCell] | false | none | The individual cells on the sheet. |
»»» Cell | sheetCell | false | none | An individual cell on a workspace or an insight. |
»»»» id | integer(int64) | false | none | A value that uniquely identifies the cell. |
»»»» row | integer | false | none | The row of the worksight or insight in which the cell exists. |
»»»» position | integer | false | none | The position of the cell in the row. |
»»»» type | string | false | none | The type of the cell:
|
»»»» height | integer | false | none | The height of the cell. |
»»»» width | integer | false | none | The width of the cell. |
»»»» lastModified | string(date-time) | false | none | The timestamp that indicates when this cell was last modified. |
»» lastModified | string(date-time) | false | none | The timestamp that indicates when this cell was last modified. |
Enumerated Values
Property | Value |
---|---|
type | WORKSHEET |
type | NOTESHEET |
type | LIVE |
type | STATIC |
type | IMAGE |
type | TEXT |
Copy selected sheets to the provided object
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"sheetIds": [
0
],
"objectTypeName": "string",
"objectId": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /documents/{objectTypeName}/{objectId}/sheets
The sheet copy selection included in the request body is used to copy the sheets from their location. The sheets are copied to the object specified in the path. The object to which the sheets were copied is returned as an enriched document.
Body parameter
{
"sheetIds": [
0
],
"objectTypeName": "string",
"objectId": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type. |
objectId | path | string | true | The ID of the object. |
body | body | sheetCopySelection | false | The sheet copy selection identifies the sheets to copy to the target object. |
Example responses
201 Response
{
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The request succeeded. The enriched document to which the sheets were copied was returned. | enrichedDocument |
400 | Bad Request | The request failed. The parameters and the sheet IDs cannot be null or empty. | sasError |
404 | Not Found | The request failed. The object or sheet was not found or the user did not have permission to view the object. | sasError |
Get headers for a sheet
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets/{sheetId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets/{sheetId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets/{sheetId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets/{sheetId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /documents/{objectTypeName}/{objectId}/sheets/{sheetId}
Gets headers for the sheet with the given ID from the object that is specified in the path. To modify a sheet, update the sheets property on the object using a separate endpoint.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type. |
objectId | path | string | true | The ID of the object. |
sheetId | path | string | true | The ID of the sheet. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The sheet with the specified ID was returned. | None |
400 | Bad Request | The request failed. The parameters cannot be null or empty. | None |
404 | Not Found | The request failed. The object or sheet was not found or the user did not have permission to view the object. | None |
Get a sheet
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets/{sheetId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets/{sheetId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets/{sheetId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/documents/{objectTypeName}/{objectId}/sheets/{sheetId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /documents/{objectTypeName}/{objectId}/sheets/{sheetId}
Gets a sheet with the given ID from the object that is specified in the path. To modify a sheet, update the sheets property on the object using a separate endpoint.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | path | string | true | The name of the object type. |
objectId | path | string | true | The ID of the object. |
sheetId | path | string | true | The ID of the sheet. |
Example responses
200 Response
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. The sheet with the specified ID was returned. | sheet |
400 | Bad Request | The request failed. The parameters cannot be null or empty. | sasError |
404 | Not Found | The request failed. The object or sheet was not found or the user did not have permission to view the object. | sasError |
Icons
Contains the operations related to icons.
Retrieve metadata for one or more icons
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/icons \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/icons',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/icons', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/icons", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /icons
Retrieves metadata for one or more icons.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | query | string | false | The name of the icon. If an objectTypeName is specified, then only one icon is returned. Without an objectTypeName, this call returns all icons. |
Detailed descriptions
objectTypeName: The name of the icon. If an objectTypeName is specified, then only one icon is returned. Without an objectTypeName, this call returns all icons.
Example responses
200 Response
{
"description": "Example of an Icon object.",
"value": [
{
"id": 1007,
"name": "Address16Brown",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Address16Brown/image",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"version": 1
}
]
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
404 | Not Found | The request did not find an icon with a matching object type name. | sasError |
Response Schema
Enumerated Values
Property | Value |
---|---|
imageType | GIF |
imageType | JPEG |
imageType | PNG |
imageType | SVG |
imageType | SVG+XML |
Request header for icon metadata by object type name
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/icons?objectTypeName=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/icons?objectTypeName=string',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.head('https://example.com/svi-datahub/icons', params={
'objectTypeName': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/icons", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /icons
Retrieves an icon's metadata by name. Icon metadata contains information about an image.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | query | string | true | The name of the icon. |
Example responses
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The request did not find an icon with a matching object type name. | sasError |
Response Schema
Retrieve icon metadata by name
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/icons/{name} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/icons/{name}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/icons/{name}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/icons/{name}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /icons/{name}
Retrieves an icon's metadata by name. Icon metadata contains information about an image.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | path | string | true | The name of the icon. |
Example responses
200 Response
{
"description": "Example of an Icon object.",
"value": [
{
"id": 1007,
"name": "Address16Brown",
"imageType": "SVG",
"imageLocation": "/svi-datahub/icons/Address16Brown/image",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"version": 1
}
]
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | icon |
404 | Not Found | The request did not find an icon with a matching name. | sasError |
Request header for icon metadata by name
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/icons/{name} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/icons/{name}',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.head('https://example.com/svi-datahub/icons/{name}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/icons/{name}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /icons/{name}
Retrieves an icon's metadata by name. Icon metadata contains information about an image.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | path | string | true | The name of the icon. |
Example responses
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The request did not find an icon with a matching name. | sasError |
Response Schema
Retrieve an icon image by name
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/icons/{name}/image \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: */*'
const headers = {
'Accept':'*/*'
};
fetch('https://example.com/svi-datahub/icons/{name}/image',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*'
}
r = requests.get('https://example.com/svi-datahub/icons/{name}/image', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/icons/{name}/image", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /icons/{name}/image
Retrieves the bytes comprising an icon image.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | path | string | true | The name of the icon. |
Example responses
200 Response
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
404 | Not Found | The request did not find an icon with a matching name. | sasError |
Response Schema
Request header for an icon image by name
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/icons/{name}/image \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/icons/{name}/image',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.head('https://example.com/svi-datahub/icons/{name}/image', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/icons/{name}/image", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /icons/{name}/image
Retrieves the bytes comprising an icon image.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | path | string | true | The name of the icon. |
Example responses
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The request did not find an icon with a matching name. | sasError |
Response Schema
Retrieve an icon image by filter
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/icons/image?objectTypeName=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: */*'
const headers = {
'Accept':'*/*'
};
fetch('https://example.com/svi-datahub/icons/image?objectTypeName=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*'
}
r = requests.get('https://example.com/svi-datahub/icons/image', params={
'objectTypeName': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/icons/image", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /icons/image
Retrieves the bytes comprising an icon image.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | query | string | true | The name of the icon. |
Example responses
200 Response
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
404 | Not Found | The request did not find an icon with a matching object type name. | sasError |
Response Schema
Request header for an icon image by filter
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/icons/image?objectTypeName=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/icons/image?objectTypeName=string',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.head('https://example.com/svi-datahub/icons/image', params={
'objectTypeName': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/icons/image", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /icons/image
Retrieves the bytes comprising an icon image.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | query | string | true | The name of the icon. |
Example responses
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The request did not find an icon with a matching name. | sasError |
Response Schema
Retrieve the decoration for an icon
Code samples
# You can also use wget
curl -X GET https://example.com/svi-datahub/icons/decoration?objectTypeName=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/icons/decoration?objectTypeName=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/svi-datahub/icons/decoration', params={
'objectTypeName': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-datahub/icons/decoration", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /icons/decoration
Retrieves a node decorator for an Entity or Document.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | query | string | true | The name of the icon. |
Example responses
200 Response
{
"description": "Example of a Node Decoration object.",
"value": {
"label": "Officer Smith",
"icons": [
{
"field": "f1",
"position": "p1"
},
{
"field": "f2",
"position": "p2"
}
]
}
}
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | nodeDecoration |
404 | Not Found | The request did not find an icon with a matching object type name. | sasError |
Request header for the decoration for an icon
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-datahub/icons/decoration?objectTypeName=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/icons/decoration?objectTypeName=string',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.head('https://example.com/svi-datahub/icons/decoration', params={
'objectTypeName': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-datahub/icons/decoration", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /icons/decoration
Retrieves a node decorator for an Entity or Document.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
objectTypeName | query | string | true | The name of the icon. |
Example responses
404 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The request did not find an icon with a matching name. | sasError |
Response Schema
Conditions
Contains the operations related to conditions.
Bulk evaluate conditions
Code samples
# You can also use wget
curl -X POST https://example.com/svi-datahub/conditionEvaluations \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
const inputBody = '{
"requests": [
{
"conditionId": "string",
"objectTypeName": "string",
"objectId": "string"
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://example.com/svi-datahub/conditionEvaluations',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://example.com/svi-datahub/conditionEvaluations', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-datahub/conditionEvaluations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /conditionEvaluations
Evaluate a bulk condition evaluation request. The response is a bulk condition evaluation response indicating the results of evaluating the conditions. Each individual evaluation request in the bulk request can succeed or fail independently. Each successful evaluation yields a condition evaluation response object that contains a result
property. Each failed evaluation yields a condition evaluation response object that contains error details. Duplicate condition evaluation request objects in the REST request are ignored, and together result in only one condition evaluation response object in the REST response. The order of the condition evaluation response objects in the REST response is not guaranteed. In order to determine which condition evaluation response corresponds to which condition evaluation request, do not use the ordering. Instead, check the requested
property of the condition evaluation response object to determine which request it corresponds to.
Body parameter
{
"requests": [
{
"conditionId": "string",
"objectTypeName": "string",
"objectId": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | bulkConditionEvaluationRequest | false | The bulk condition evaluation request. |
Example responses
201 Response
{
"responses": [
{
"requested": {
"conditionId": "1c4cdebb-c125-41ea-99c2-ac0aeedb646e",
"objectTypeName": "person",
"objectId": "9da58bba-3961-41fb-be16-cdbf8b504451"
},
"result": true
},
{
"requested": {
"conditionId": "1c4cdebb-c125-41ea-99c2-ac0aeedb646e",
"objectTypeName": "person",
"objectId": "4688f7e9-cd70-4a87-930e-55b6f8cbb264"
},
"result": false
},
{
"requested": {
"conditionId": "590acf3d-b226-4db0-b92f-001c44aa6503",
"objectTypeName": "account",
"objectId": "89bf6f8f-a307-4116-ba3c-90d16ddd177b"
},
"result": true
},
{
"requested": {
"conditionId": "590acf3d-b226-4db0-b92f-001c44aa6503",
"objectTypeName": "account",
"objectId": "6007d257-dd08-4247-b29c-6e685452df0c"
},
"errorCode": "DH6200",
"errorMessage": "The object with the ID \"6007d257-dd08-4247-b29c-6e685452df0c\" was not found for the \"account\" entity type.\n"
}
]
}
400 Response
{
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The condition evaluation requests were processed. | bulkConditionEvaluationResponse |
400 | Bad Request | The request was invalid. | sasError |
Schemas
task
{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"status": "pending",
"message": "string",
"parent": "string",
"startedAt": "2019-08-24T14:15:22Z",
"endedAt": "2019-08-24T14:15:22Z",
"parameters": {
"property1": "string",
"property2": "string"
},
"subTasks": [
null
]
}
Task
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | true | none | This media type's schema version number. This representation is version 1. |
id | string | false | none | A system-assigned unique identifier (UUID) for this task |
name | string | true | none | A human readable name that could help in identifying this task |
description | string | false | none | A brief description of this task |
status | string | false | none | Execution status of this task |
message | string | false | none | Messages - generally about any failures or cancellations |
parent | string | false | none | UUID of the parent job or task |
startedAt | string(date-time) | false | none | Execution start timestamp |
endedAt | string(date-time) | false | none | Execution end timestamp |
parameters | object | true | none | Parameters required for the task |
» additionalProperties | string | false | none | none |
subTasks | [task] | false | none | Sub-tasks, if any |
Enumerated Values
Property | Value |
---|---|
status | pending |
status | running |
status | cancelled |
status | completed |
status | failed |
status | reverted |
status | invalid |
job
{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"status": "pending",
"message": "string",
"startedBy": "string",
"startedAt": "2019-08-24T14:15:22Z",
"endedAt": "2019-08-24T14:15:22Z",
"parameters": {
"property1": "string",
"property2": "string"
},
"tasks": [
{
"version": 0,
"id": "string",
"name": "string",
"description": "string",
"status": "pending",
"message": "string",
"parent": "string",
"startedAt": "2019-08-24T14:15:22Z",
"endedAt": "2019-08-24T14:15:22Z",
"parameters": {
"property1": "string",
"property2": "string"
},
"subTasks": [
null
]
}
]
}
Job
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | true | none | This media type's schema version number. This representation is version 1. |
id | string | false | none | A system-assigned unique identifier (UUID) for this job |
name | string | false | none | A human readable name that could help in identifying this job |
description | string | false | none | A brief description of this job |
tags | [string] | false | none | A list of tags that could be used to search this job |
status | string | false | none | Execution status of this job |
message | string | false | none | Messages - generally about any failures or cancellations |
startedBy | string | false | none | User who submitted this job for execution |
startedAt | string(date-time) | false | none | Execution start timestamp |
endedAt | string(date-time) | false | none | Execution end timestamp |
parameters | object | true | none | Parameters required for the job |
» additionalProperties | string | false | none | none |
tasks | [task] | false | none | Tasks that are part of this job |
Enumerated Values
Property | Value |
---|---|
status | pending |
status | running |
status | cancelled |
status | completed |
status | failed |
status | reverted |
status | invalid |
file
{
"description": "Example of a file association object.",
"value": {
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
},
"x-widdershins-oldRef": "#/components/examples/fileExample"
}
File Association Object
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | linkableObject | false | none | Reserved for internal use. Abstract object that contains links to other resources. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» id | string(uuid) | false | none | A UUID that uniquely identifies this file. |
» name | string | false | none | The name of the file. |
» originalName | string | false | none | The original name of the file when it was uploaded. |
» category | string | false | none | The category to which the file belongs. |
» location | string | false | none | A URI for the content of the file. |
» type | string | false | none | The MIME type of the file. |
» size | integer(base64) | false | none | The size (in KB) of the file. |
» description | string | false | none | A description of the file. |
» properties | object | false | none | The properties to associate with the file. |
»» additionalProperties | string | false | none | none |
» uploadedAt | string(date-time) | false | none | The timestamp that indicates when the file was uploaded. |
» uploadedBy | string | false | none | The user who uploaded the file. |
» extractedContent | string | false | none | Any content that has been extracted for indexing. If the file assocation is an external link, this field can be used to provide extracted content that will be indexed. |
» isLink | boolean | false | none | Identifies the location of the content. True is assigned if the file association is a link to an external file. False is assigned if the file has been uploaded to the system as an attachment. This field is read-only. Incoming values are ignored. |
fileCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"description": "Example of a file association object.",
"value": {
"creationTimeStamp": "2019-11-06T22:01:23.809Z",
"modifiedTimeStamp": "2019-11-06T22:01:23.809Z",
"createdBy": "videmo",
"modifiedBy": "videmo",
"id": "608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"location": "/svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"properties": {},
"contentDisposition": "attachment; filename=\"2cb2668d-218a-2f8a-a5aa-6a9ce54ff739\"",
"contentType": "text/plain",
"encoding": "UTF-8",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file"
},
{
"method": "GET",
"rel": "alternate",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.summary"
},
{
"method": "PATCH",
"rel": "patch",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "PUT",
"rel": "update",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"type": "application/vnd.sas.file",
"responseType": "application/vnd.sas.file"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84"
},
{
"method": "GET",
"rel": "content",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "updateContent",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content",
"type": "*/*",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "copyFile",
"href": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"uri": "/files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy",
"responseType": "application/vnd.sas.file"
},
{
"method": "POST",
"rel": "create",
"href": "/files/files",
"uri": "/files/files",
"type": "*/*",
"responseType": "application/vnd.sas.file"
}
],
"name": "2cb2668d-218a-2f8a-a5aa-6a9ce54ff739",
"originalName": "My Attachment.txt",
"size": 443,
"typeDefName": "file",
"isLink": false,
"version": 3
}
}
]
}
File Association Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [file] | true | none | The array that contains the files. |
bulkOperationResult
{
"id": "string",
"entityType": "string",
"operation": "CREATE",
"error": {
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
}
Bulk Operation Result
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The ID for the document. |
entityType | string | false | none | The entity type of the document. |
operation | string | false | none | The type of operation being performed for the document. |
error | sasCollection | false | none | Details about why the operation failed for this document. If this property has a value, the operation failed. |
Enumerated Values
Property | Value |
---|---|
operation | CREATE |
operation | UPDATE |
bulkOperationResultCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"id": "string",
"entityType": "string",
"operation": "CREATE",
"error": {
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
}
]
}
Bulk Operation Result Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [bulkOperationResult] | true | none | The array that contains the bulk operation results. |
linkBulkOperationResult
{
"id": "primary_victim|_|police_report|_|person|_|id_600",
"relationshipTypeName": "primary_victim",
"fromEntityType": "police_report",
"fromId": "id_600",
"toId": "id_104",
"toEntityType": "person",
"operation": "UPDATE",
"x-widdershins-oldRef": "#/components/examples/linkBulkOperationResultExample/value"
}
Link Bulk Operation Result
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The ID for the link object that connects the "from" and "to" documents. |
fromEntityType | string | false | none | The entity type of the "from" document. |
fromId | string | false | none | The ID for the "from" document. |
toEntityType | string | false | none | The entity type of the "to" document. |
toId | string | false | none | The ID for the "to" document. |
relationshipTypeName | string | false | none | The relationship type name of the link. |
operation | string | false | none | The type of operation being performed for the link. |
error | sasCollection | false | none | Details about why the operation failed for this link. If this property has a value, the operation failed. |
Enumerated Values
Property | Value |
---|---|
operation | CREATE |
operation | UPDATE |
linkBulkOperationResultCollection
{
"links": [],
"name": "links",
"count": 2,
"items": [
{
"id": "primary_victim|_|police_report|_|person|_|id_600",
"relationshipTypeName": "primary_victim",
"fromId": "id_600",
"fromEntityType": "police_report",
"toId": "id_104",
"toEntityType": "person",
"operation": "UPDATE"
},
{
"error": {
"errorCode": 0,
"message": "The entity type with name \"TestChild\" was not found or the current user does not have the necessary permissions to view the entity type.",
"details": [
"From Entity Type: TestChild",
"From Entity ID: 3cf75c6d-439a-4b74-ac9f-ca2b5eb80c18",
"To Entity Type: Case",
"To Entity ID: 106f65d1-73be-4b7e-a78d-a33d38dbf057",
"Relationship Type Name: case_rev"
],
"id": "DH6106",
"version": 2,
"httpStatusCode": 404
}
}
],
"version": 2
}
Link Bulk Operation Result Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [linkBulkOperationResult] | true | none | The array that contains the link bulk operation results. |
comment
{
"description": "Example of a comment object.",
"value": {
"id": 1,
"category": "ExampleCategory",
"author": {
"id": "example",
"name": "ExampleUser"
},
"createDate": "2022-03-17T17:47:41.845Z",
"lastUpdatedAt": "2022-03-17T17:47:41.845Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment"
},
"x-widdershins-oldRef": "#/components/examples/commentExample"
}
Comment
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer(int64) | false | none | The unique identifier for the comment. |
category | string | false | none | The category of the comment. |
author | commentUser | false | none | Information about an author of a comment. |
createDate | string(date-time) | false | none | The date on which the comment was created. |
lastUpdatedAt | string(date-time) | false | none | The date on which the comment was updated. |
lastUpdatedBy | string | false | none | The user who last updated the comment. |
detail | string | false | none | Text of the comment. |
commentUser
{
"id": "string",
"name": "string"
}
Comment Author
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The unique identifier of the comment author. |
name | string | false | none | The name of the user who is the comment author. |
commentCategorySummary
{
"description": "Example of a comment category object.",
"value": {
"category": "ExampleCategory",
"count": 2
},
"x-widdershins-oldRef": "#/components/examples/commentCategoryExample"
}
Comment Category Summary
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
category | string | false | none | The name of the category. |
count | integer | false | none | The number of comments that have the category on the object. |
commentCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"description": "Example of a comment object.",
"value": {
"id": 1,
"category": "ExampleCategory",
"author": {
"id": "example",
"name": "ExampleUser"
},
"createDate": "2022-03-17T17:47:41.845Z",
"lastUpdatedAt": "2022-03-17T17:47:41.845Z",
"lastUpdatedBy": "example",
"detail": "ExampleComment"
}
}
]
}
Comment Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [comment] | true | none | The array that contains the comments. |
dataField
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
]
}
Data Field
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» name | string | false | none | The name of the field. |
» columnName | string | false | none | The name of the database column that is associated with this field. |
» dataType | string | false | none | The type of the database column that is associated with this field. Note: The "json" data type is only partially supported for internal use with Postgres. |
» length | integer | false | none | The size of the data type. This value is used primarily for managing the length of string fields. |
» precision | integer | false | none | The number of significant digits for a numeric type. The maximum value for precision is database dependent. For example, it is 38 for Oracle. |
» scale | integer | false | none | The number of decimal digits for a numeric type. Integers have a scale of zero. A negative scale value can be used to control the maximum number of digits to the left of the decimal point. |
» required | boolean | false | none | Indicates whether the field value must be provided. |
» primaryKeyField | boolean | false | none | Indicates whether the field value is used as part of primary key. Primary key fields cannot be masked. |
» unique | boolean | false | none | Indicates whether duplicate values are allowed for the field. |
» autoGenerated | boolean | false | none | Indicates whether the values for this field are automatically generated. |
» systemReserved | boolean | false | none | Indicates whether modifications are allowed for this field type. Some fields are created for internal use only. System reserved fields cannot be masked. |
» displayIndex | integer | false | none | The order in which fields occur within the database. This index is one-based. |
» version | integer | false | none | The internal Data Hub version for this field. |
» constrainingListName | string | false | none | The name of a Reference List that determines the list of valid values for this field. |
» userSelectionStrategy | string | false | none | Indicates the types of values that are allowed in this field. |
» allowMultipleSelections | boolean | false | none | Indicates whether multiple selections are allowed. |
» primaryKeySeqNo | integer | false | none | The position this field occupies in a primary key. This index is one-based. |
» readOnly | boolean | false | none | Indicates whether modifications are allowed for this field type. |
» indexedForSearch | boolean | false | none | Indicates whether this field should be added to the search index. |
» logicalDataType | string | false | none | Optional data subtype value for handling user groups and reference data. |
» masked | boolean | false | none | Indicates whether this field should be masked from users and groups that are not authorized to reveal the masking. Fields cannot be masked if they are system reserved, if they participate in a primary key, or if they are referenced in a Relationship Type or Transaction Type's join configuration. |
» authorizedToRevealMasked | [userGroupChooserSelection] | false | none | A list of users or groups that identifies who is authorized to reveal the field if it is masked. |
Enumerated Values
Property | Value |
---|---|
dataType | BOOLEAN |
dataType | STRING |
dataType | SMALLINT |
dataType | INTEGER |
dataType | LONG |
dataType | FLOAT |
dataType | DOUBLE |
dataType | NUMERIC |
dataType | DATE |
dataType | TIMESTAMP |
dataType | TIMESTAMP_WITH_TIME_ZONE |
dataType | REFERENCE_DATA |
dataType | JSON |
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
logicalDataType | USER_GROUP |
logicalDataType | REFERENCE_DATA |
linkableObject
{
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
]
}
Linkable Object
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
links | [sasLink] | false | none | A list of vnd.sas.link objects as per Link representation. |
auditableObject
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
Auditable Object
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | The primary key that uniquely identifies this metadata object. |
createdBy | string | false | none | The user ID that created this metadata object. |
createdAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was created. |
lastUpdatedBy | string | false | none | The user ID that most recently modified this metadata object. |
lastUpdatedAt | string(date-time) | false | none | The timestamp that indicates when this metadata object was last modified. |
localizableObject
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
]
}
Localizable Object
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» label | string | false | none | The locale neutral label for this metadata object. |
» description | string | false | none | The locale neutral description for this metadata object. |
» localizedLabels | [labelLocalized] | false | none | The localized labels that are associated with this metadata object. |
» localizedDescriptions | [descriptionLocalized] | false | none | The localized descriptions that are associated with this metadata object. |
dataObject
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"dataStoreName": "string",
"tableName": "string",
"systemReserved": true,
"historyEnabled": true,
"version": 0,
"validFromFieldName": "string",
"validToFieldName": "string",
"lastUpdatedAtTimeFieldName": "string",
"createdAtTimeFieldName": "string",
"displayTextFields": [
{
"name": "string",
"displayIndex": 0
}
],
"dataStoreAssignedTimeZone": "string"
}
Data Object
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» name | string | false | none | The name of this metadata object. |
» dataStoreName | string | false | none | The name of the data store where this type of metadata will be stored. |
» tableName | string | false | none | The name of the database table where this type of metadata will be stored. |
» systemReserved | boolean | false | none | Specifies whether this metadata object is reserved for internal use only. |
» historyEnabled | boolean | false | none | Specifies whether changes to instances of this entity will be audited. |
» version | integer | false | none | The internal Data Hub version for this metadata object. |
» validFromFieldName | string | false | none | The name of the field that contain the validFrom date/time value. |
» validToFieldName | string | false | none | The name of the field that contains the validTo date/time value. |
» lastUpdatedAtTimeFieldName | string | false | none | The name of the field that contains the last updated date/time value. |
» createdAtTimeFieldName | string | false | none | The name of the field that contains the creation date/time value. |
» displayTextFields | [sortableNameReference] | false | none | Specifies the fields to be concatenated to form the display label. The values of any masked fields will appear in their raw, unmasked form in the display label. |
» dataStoreAssignedTimeZone | string | false | none | The value of the "assignedTimeZone" property in the data store that is associated with this metadata object. This property is read-only. |
descriptionLocalized
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
Localized Description
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Localized Description | any | false | none | The description text that is associated with a specific locale. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» version | integer | false | none | The internal Data Hub version for the localized text entry. |
» locale | string | false | none | A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN". |
» description | string | false | none | The text value that is expressed in a specific language. |
labelLocalized
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
Localized Label
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Localized Label | any | false | none | The description text that is associated with a specific locale. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» version | integer | false | none | The internal Data Hub version for the localized text entry. |
» locale | string | false | none | A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN". |
» label | string | false | none | The text value that is expressed in a specific language. |
sortCriteria
{
"fieldName": "string",
"sortOrder": "asc"
}
Sort Criteria
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
fieldName | string | false | none | The name of the field. |
sortOrder | string | false | none | The order in which to sort the field. |
Enumerated Values
Property | Value |
---|---|
sortOrder | asc |
sortOrder | desc |
userGroupChooserSelection
{
"id": "string",
"type": "user"
}
User Group Chooser Selection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The name of the user or group. |
type | string | false | none | Denotes whether the account is a user or group. |
Enumerated Values
Property | Value |
---|---|
type | user |
type | group |
conditionEvaluationRequest
{
"conditionId": "string",
"objectTypeName": "string",
"objectId": "string"
}
Condition Evaluation Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
conditionId | string | true | none | The ID of the condition to evaluate. This condition must be applicable to the entity type of the object that this request specifies. |
objectTypeName | string | true | none | The entity type of the object that this request specifies. |
objectId | string | true | none | The ID of the object that this request specifies. |
conditionEvaluationResponse
{
"requested": {
"conditionId": "string",
"objectTypeName": "string",
"objectId": "string"
},
"result": true,
"errorCode": "string",
"errorMessage": "string"
}
Condition Evaluation Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
requested | conditionEvaluationRequest | true | none | The request specification to which this object responds. |
result | boolean | false | none | The result of a successfully completed evaluation. This property is omitted if the evaluation fails. |
errorCode | string | false | none | An error code that explains why the evaluation failed. This property is omitted if the evaluation succeeds. |
errorMessage | string | false | none | An error message that explains why the evaluation failed. This property is omitted if the evaluation succeeds. |
bulkConditionEvaluationRequest
{
"requests": [
{
"conditionId": "string",
"objectTypeName": "string",
"objectId": "string"
}
]
}
Bulk Condition Evaluation Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
requests | [conditionEvaluationRequest] | true | none | A set of condition evaluation requests to be processed. |
bulkConditionEvaluationResponse
{
"responses": [
{
"requested": {
"conditionId": "string",
"objectTypeName": "string",
"objectId": "string"
},
"result": true,
"errorCode": "string",
"errorMessage": "string"
}
]
}
Bulk Condition Evaluation Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
responses | [conditionEvaluationResponse] | true | none | The results of processing the condition evaluation requests. |
dataStore
{
"description": "Example of a Data Store object.",
"value": {
"id": 103000,
"createdBy": "videmo",
"createdAt": "2018-08-29T12:51:58.254Z",
"lastUpdatedBy": "videmo",
"lastUpdatedAt": "2018-08-29T12:51:58.254Z",
"name": "MyOracleDatabase",
"type": "RELATIONAL",
"defaultSchemaName": "MySchema",
"version": 0,
"connectionType": "oracle",
"host": "example.com",
"port": "15658",
"username": "MyUserName",
"reindexRequired": false,
"isCasDistributedDataLoadSupported": true,
"password": "*****",
"databaseNameOrServiceName": "MyOracleServiceName",
"schema": "MY_SCHEMA",
"initialSize": 1,
"handle": "MyOracleDatabasenRXFB",
"urlAppendedParameters": "FailoverPreconnect=false;JavaDoubleToString=false",
"advancedProperties": {
"ConnectionRetryCount": "5",
"ConnectionRetryDelay": "1",
"EnableBulkLoad": "1"
}
},
"x-widdershins-oldRef": "#/components/examples/dataStoreExample"
}
Data Store
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» name | string | false | none | The name of the data store. |
» type | string | false | none | The type of the data store. |
» defaultSchemaName | string | false | none | The default schema name to be used for the data store. |
» version | integer | false | none | The internal version number for this data store. |
» connectionType | string | false | none | The type of database the system. |
» host | string | false | none | The host name for the database server. |
» port | string | false | none | The TCP/IP port number for connecting to the database server. |
» username | string | false | none | The user name for connecting to the database server. |
» password | string | false | none | The password for connecting to the database server. |
» databaseNameOrServiceName | string | false | none | The name of the database to which to connect. |
» schema | string | false | none | The name of the target schema within the database. |
» reindexRequired | boolean | false | none | Specifies whether all entity, relationship, and transaction types need to be reindexed after making an update to the data store. |
» isCasDistributedDataLoadSupported | boolean | false | none | Specifies whether the data store supports the CAS "Distributed Data Load" feature. |
» initialSize | integer | false | none | The initial starting size for the database connection pool. |
» maxIdle | integer | false | none | The maximum number of idle connections that are allowed in the connection pool. |
» minIdle | integer | false | none | The minimum number of idle connections that are allowed in the connection pool. |
» maxActive | integer | false | none | The maximum number of active connections that are allowed in the connection pool. |
» handle | string | false | none | A string that is used to group key/value pairs that belong to a single data store (analogous to a folder). When creating a data store, this value must be unique. No other data store can have the same "handle" value. It is the responsibility of the client to determine a unique value. |
» urlAppendedParameters | string | false | none | Additional JDBC connection parameters that are appended to the end of the connection string. |
» advancedProperties | sasProperties | false | none | Additional properties that are needed by other modules while interacting with this data store. For example, when loading data into CAS, etc. |
» assignedTimeZone | string | false | none | The default timezone for timestamp values that are stored in the database. |
Enumerated Values
Property | Value |
---|---|
type | RELATIONAL |
connectionType | internal_postgres |
connectionType | postgres |
connectionType | db2 |
connectionType | MySQL |
connectionType | oracle |
connectionType | SQL Server |
connectionType | teradata |
dataStoreCredentials
{
"description": "Example of a Data Store credential object.",
"value": {
"username": "testUser",
"password": "dGVzdFBhc3N3b3JkMTIz"
},
"x-widdershins-oldRef": "#/components/examples/dataStoreCredentialExample"
}
Data Store Credentials
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
username | string | false | none | The user name of the data store credentials. |
password | string | false | none | The password of the data store credentials. This value is encoded with Base64. |
dataStoreSupportedType
{
"type": "string",
"requiredFields": [
"string"
],
"defaultAdditionalFields": {
"property1": {
"fieldKey": "string",
"fieldValue": "string"
},
"property2": {
"fieldKey": "string",
"fieldValue": "string"
}
}
}
Data Store Supported Type
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of database. |
requiredFields | [string] | false | none | The required fields for the data store with the database type. |
defaultAdditionalFields | object | false | none | A map of additional default fields for the data store with the database type. |
» additionalProperties | object | false | none | none |
»» fieldKey | string | false | none | none |
»» fieldValue | string | false | none | none |
tableMetadata
{
"type": "string",
"name": "string",
"schema": "string",
"dataStoreName": "string",
"databaseProductName": "string",
"selectable": true,
"columns": [
{
"dataType": "BOOLEAN",
"name": "string",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyColumn": true,
"ordinalPosition": 0,
"primaryKeySeqNo": 0
}
]
}
Table Metadata
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of database. |
name | string | false | none | The name of the table. |
schema | string | false | none | The database schema. |
dataStoreName | string | false | none | The name of the data store. |
databaseProductName | string | false | none | The name of the database. |
selectable | boolean | false | none | Specifies whether the table is selectable. Set to True if the table is selectable and False if it is not selectable. |
columns | [columnMetadata] | false | none | A list of all column metadata for the table. |
columnMetadata
{
"dataType": "BOOLEAN",
"name": "string",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyColumn": true,
"ordinalPosition": 0,
"primaryKeySeqNo": 0
}
Table Metadata
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
dataType | columnDataType | false | none | The enum for all the column data types. |
name | string | false | none | The column name. |
length | integer | false | none | The column length. |
precision | integer | false | none | The precision of the column. |
scale | integer | false | none | The scale of the column. |
required | boolean | false | none | Specifies whether the value in the column is a required value. Set to True if the value is required. |
primaryKeyColumn | boolean | false | none | Specifies whether the column is a primary key. Set to True if the column is a primary key. |
ordinalPosition | integer | false | none | The ordinal position of the column. |
primaryKeySeqNo | integer | false | none | The primary key sequence number. |
columnDataType
"BOOLEAN"
The enum for all the column data types.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | The enum for all the column data types. |
Enumerated Values
Property | Value |
---|---|
anonymous | BOOLEAN |
anonymous | STRING |
anonymous | SMALLINT |
anonymous | INTEGER |
anonymous | LONG |
anonymous | FLOAT |
anonymous | DOUBLE |
anonymous | NUMERIC |
anonymous | DATE |
anonymous | TIMESTAMP |
anonymous | TIMESTAMP_WITH_TIME_ZONE |
anonymous | JSON |
anonymous | OTHER |
document
{
"description": "Example of a Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
},
"x-widdershins-oldRef": "#/components/examples/documentExample"
}
Document
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
objectTypeName | string | false | none | The name of the entity type with which the document is associated. |
objectTypeId | integer(int64) | false | none | The ID of the entity type with which the document is associated. |
objectTypeVersion | integer | false | none | The internal Data Hub version for the entity type that is associated with the document. |
id | string | false | none | The qualified ID that uniquely identifies the document. |
displayLabel | string | false | none | The value to use for displaying the ID of the document. |
fieldValues | object | false | none | The values for the fields and child objects that are defined for the related entity type. The actual data of the document exists here. |
validFrom | string(date-time) | false | none | The timestamp value that indicates the starting datetime for when the document is valid. |
validTo | string(date-time) | false | none | The timestamp value that indicates the ending datetime for when the document is valid. |
createdAt | string(date-time) | false | none | The timestamp that indicates when the document was created. |
lastUpdatedAt | string(date-time) | false | none | The timestamp that indicates when the document was last modified. |
minimallyMaskedDocument
{
"description": "Example of a Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
},
"x-widdershins-oldRef": "#/components/examples/documentExample"
}
Minimally-Masked Document
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Minimally-Masked Document | document | false | none | A representation of a Document that has the minimal amount of field masking applied. That is, for each masked field, if the requesting user is authorized to reveal its value, the value is unmasked in this representation. Otherwise the value will remain masked. |
maskedDocument
{
"description": "Example of a Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
},
"x-widdershins-oldRef": "#/components/examples/documentExample"
}
Masked Document
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Masked Document | document | false | none | A representation of a Document that has masked field values replaced with dot characters. Fields not configured to be masked are represented normally. |
enrichedDocument
{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
},
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample"
}
Enriched Document
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | document | false | none | The actual data that is associated with a particular Entity Type. Entity Types are the metadata and Documents are the data. If a field is masked, its value will not appear in the fieldValues object. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» comments | [comment] | false | none | The comments that are associated with the document. |
» sheets | [sheet] | false | none | The insights and workspaces that are associated with the document. |
» attachmentsCount | integer(int64) | false | none | The number of attachments that are associated with the document. |
» fieldRestrictions | fieldRestrictions | false | none | A bundle of field restrictions that apply to fields in the document as well as any embedded child documents. |
minimallyMaskedEnrichedDocument
{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
},
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample"
}
Minimally-Masked Enriched Document
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Minimally-Masked Enriched Document | enrichedDocument | false | none | A representation of an Enriched Document that has the minimal amount of field masking applied. That is, for each masked field, if the requesting user is authorized to reveal its value, the value is unmasked in this representation. Otherwise the value will remain masked. |
maskedEnrichedDocument
{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {
"x": 667,
"y": 206.5
},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {
"x": 339.81315560960843,
"y": 106.62745147130762
},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
},
"x-widdershins-oldRef": "#/components/examples/enrichedDocumentExample"
}
Masked Enriched Document
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Masked Enriched Document | enrichedDocument | false | none | A representation of an Enriched Document that has masked field values replaced with dot characters. Fields not configured to be masked are represented normally. |
enrichedDocumentCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {},
"transactionTypeIndex": 0,
"translate": []
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
}
]
}
Enriched Document Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [enrichedDocument] | true | none | The array that contains the enriched documents. |
maskedEnrichedDocumentCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {},
"transactionTypeIndex": 0,
"translate": []
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
}
]
}
Masked Enriched Document Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [maskedEnrichedDocument] | true | none | The array that contains the masked enriched documents. |
plainDocumentCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"description": "Example of a Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
}
}
]
}
Document Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [document] | true | none | The array that contains the documents. |
minimallyMaskedDocumentCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"description": "Example of a Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
}
}
]
}
Minimally-Masked Document Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Minimally-Masked Document Collection | any | false | none | A collection of minimally-masked documents. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [minimallyMaskedDocument] | true | none | The array that contains the minimally-masked documents. |
maskedDocumentCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"description": "Example of a Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z"
}
}
]
}
Masked Document Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Masked Document Collection | any | false | none | A collection of masked documents. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [maskedDocument] | true | none | The array that contains the masked documents. |
documentAndLink
{
"document": {
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
},
"documentLink": {
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
}
Document and Link Bundle
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
document | enrichedDocument | true | none | The actual data that is associated with a particular Entity Type. Entity Types are the metadata and Documents are the data. The document is "enriched" with additional data such as comments, insights, and workspaces. |
documentLink | relationshipLink | true | none | A link between two documents as defined by a relationship type. If a field is masked, its value will not appear in the fieldValues object. |
maskedDocumentAndLink
{
"document": {
"description": "Example of an Enriched Document object.",
"value": {
"objectTypeName": "person",
"objectTypeId": 100515,
"objectTypeVersion": 4,
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"fieldValues": {
"birthday": "2020-01-05T00:00:00Z",
"created_at_dttm": "2020-04-13T19:17:47.84Z",
"created_by_user_id": "viuser",
"first_name": "John",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"last_name": "Smith",
"last_updated_at_dttm": "2020-04-13T19:31:37.097Z",
"last_updated_by_user_id": "viuser",
"version": 4
},
"createdAt": "2020-04-13T19:17:47.840Z",
"lastUpdatedAt": "2020-04-13T19:31:37.097Z",
"validFrom": "2020-01-05T00:00:00.000Z",
"fieldRestrictions": {
"person": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"sheets": [
{
"id": 201,
"type": "WORKSHEET",
"name": "Workspace-1",
"version": 2,
"created": "2020-04-13T19:27:08.105Z",
"createdBy": "viuser",
"lastModified": "2020-04-13T19:27:26.175Z",
"lastModifiedBy": "viuser",
"tabOrder": 0,
"uxState": {
"commonToolPane": {
"expanded": true,
"width": 340
},
"filterPanel": {
"expanded": true,
"width": 200
}
},
"cells": [
{
"type": "LIVE",
"id": 301,
"row": 0,
"position": 0,
"height": 0,
"width": 0,
"version": 1,
"documents": [
{
"type": "person",
"id": "2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"uniqueId": "person#2f21e644-089a-47d8-a503-bbdd4d8dac3d"
},
{
"type": "person",
"id": "ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"uniqueId": "person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b"
}
],
"visualizationType": "Network",
"resultsPerPage": 0,
"networkData": {
"links": [],
"nodes": {
"person~2f21e644-089a-47d8-a503-bbdd4d8dac3d": {
"id": "person~2f21e644-089a-47d8-a503-bbdd4d8dac3d",
"transitionStart": {},
"type": "person",
"typeLabel": "Person",
"x": 711.99394815911,
"y": 220.234232742122
},
"person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b": {
"id": "person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b",
"transitionStart": {},
"type": "person",
"typeLabel": "Person",
"x": 621.6305200034983,
"y": 192.65113758282533
}
},
"numNodes": 2,
"options": {
"activeNodes": false,
"centralityType": null,
"displayableTransactionType": null,
"groupCtr": 1,
"layout": {
"charge": 25,
"linkDistance": 130,
"linkStrength": 0.4,
"velocityDecay": 0.45
},
"nodeCtr": 1,
"scale": 2.0766116941529233,
"showLegend": true,
"showLinkLabels": false,
"showNodeAnnotation": true,
"showNodeLabels": true,
"showTimeline": false,
"showTransactionDetails": false,
"showTransactionLinks": false,
"toolsPane": {
"activeTool": "Object Inspector",
"open": true
},
"transactionTypeIndex": 0,
"translate": [
-872.0999999999999,
-222.32031484257868
]
}
}
}
]
}
],
"comments": [
{
"id": 1,
"author": {
"id": "viuser",
"name": "Test viuser"
},
"createDate": "2020-04-13T19:18:05.087Z",
"lastUpdatedAt": "2020-04-13T19:18:05.087Z",
"lastUpdatedBy": "viuser",
"detail": "Sample comment<br />"
}
],
"attachmentsCount": 2
}
},
"documentLink": {
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
}
Masked Document and Link Bundle
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
document | maskedEnrichedDocument | true | none | A representation of an Enriched Document that has masked field values replaced with dot characters. Fields not configured to be masked are represented normally. |
documentLink | maskedRelationshipLink | true | none | A representation of a relationship link that has masked field values replaced with dot characters. Fields not configured to be masked are represented normally. |
documentFilterRequest
{
"filter": "string",
"start": 0,
"limit": 20,
"depth": 0,
"includeDisplayLabel": false,
"sortBy": "first_name:ascending;last_name:descending"
}
Document Filter Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
filter | string | false | none | Use the filter syntax that is defined in the SAS REST reference guide. The only functions supported are "and", "or", and "eq" to reduce the possibility of full table scans. The "object attributes" of the filter string correspond to the entity type's field names, not the column names. Given the limited support for functions, only a select number of entity field types are supported:
Filter examples:
|
start | integer(int64) | false | none | The starting index of the first document in a page. |
limit | integer | false | none | The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted. |
depth | string | false | none | Supported values:
|
includeDisplayLabel | boolean | false | none | Generate and include the display label in the document. |
sortBy | string | false | none | Sort a collection by field name. The sorting syntax is defined in the SAS REST reference guide. Only "ascending" and "descending" are supported. Sorting behavior is dependent on the type of underlying database in which the document data is stored. Because of this, there is a chance that the sorting behavior might differ between entity types. Sorting is not applied by default. |
documentIdRequest
{
"documentIds": [
"string"
],
"start": 0,
"limit": 20,
"depth": 0,
"includeDisplayLabel": false,
"sortBy": "first_name:ascending;last_name:descending"
}
Document ID Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
documentIds | [string] | false | none | An array of document ID values for the entity type that is associated with the request. |
start | integer(int64) | false | none | The starting index of the first document in a page. |
limit | integer | false | none | The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted. |
depth | string | false | none | Supported values:
|
includeDisplayLabel | boolean | false | none | Generate and include the display label in the document. |
sortBy | string | false | none | Sort a collection by field name. The sorting syntax is defined in the SAS REST reference guide. Only "ascending" and "descending" are supported. Sorting behavior is dependent on the type of underlying database in which the document data is stored. Because of this, there is a chance that the sorting behavior might differ between entity types. Sorting is not applied by default. |
entityType
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"dataStoreName": "string",
"tableName": "string",
"systemReserved": true,
"historyEnabled": true,
"version": 0,
"validFromFieldName": "string",
"validToFieldName": "string",
"lastUpdatedAtTimeFieldName": "string",
"createdAtTimeFieldName": "string",
"displayTextFields": [
{
"name": "string",
"displayIndex": 0
}
],
"dataStoreAssignedTimeZone": "string",
"type": "MANAGED",
"markerColor": "#9d2b12",
"nodeShape": "circle",
"nodeColor": "#F0F1F2",
"borderColor": "#F0F1F2",
"borderWidth": 0,
"scale": 0,
"styles": [
{
"id": "string",
"conditionId": "string",
"evaluationOrder": 0,
"iconName": "string",
"markerCode": "string",
"nodeColor": "string",
"borderColor": "string",
"borderWidth": 0
}
],
"elementGroupRoot": true,
"indexedForSearch": true,
"fields": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string",
"relatedElementName": "string"
}
],
"relationshipsFrom": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"dataStoreName": "string",
"tableName": "string",
"systemReserved": true,
"historyEnabled": true,
"version": 0,
"validFromFieldName": "string",
"validToFieldName": "string",
"lastUpdatedAtTimeFieldName": "string",
"createdAtTimeFieldName": "string",
"displayTextFields": [
{
"name": "string",
"displayIndex": 0
}
],
"dataStoreAssignedTimeZone": "string",
"reverseName": "string",
"reverseLabel": "string",
"fromObjectName": "string",
"fromObjectLabel": "string",
"toObjectName": "string",
"toObjectLabel": "string",
"required": true,
"cardinality": "ONE_TO_ONE",
"sortCriteria": {
"fieldName": "string",
"sortOrder": "asc"
},
"type": "DIRECT_CHILD",
"symmetric": true,
"managed": true,
"toObjectTypeFieldName": "string",
"toObjectTypeNames": [
"string"
],
"joinKeyFieldName": "string",
"joinConditions": [
{
"type": "Conditional"
}
],
"fields": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string"
}
],
"localizedReverseLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"deleteTableName": "string",
"useCustomIndex": true,
"color": "string",
"width": 0,
"dashType": "solid",
"styles": [
{
"id": "string",
"conditionId": "string",
"evaluationOrder": 0,
"color": "string",
"width": 0,
"dashType": "solid"
}
],
"reindexRequired": true
}
],
"relationshipsTo": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"dataStoreName": "string",
"tableName": "string",
"systemReserved": true,
"historyEnabled": true,
"version": 0,
"validFromFieldName": "string",
"validToFieldName": "string",
"lastUpdatedAtTimeFieldName": "string",
"createdAtTimeFieldName": "string",
"displayTextFields": [
{
"name": "string",
"displayIndex": 0
}
],
"dataStoreAssignedTimeZone": "string",
"reverseName": "string",
"reverseLabel": "string",
"fromObjectName": "string",
"fromObjectLabel": "string",
"toObjectName": "string",
"toObjectLabel": "string",
"required": true,
"cardinality": "ONE_TO_ONE",
"sortCriteria": {
"fieldName": "string",
"sortOrder": "asc"
},
"type": "DIRECT_CHILD",
"symmetric": true,
"managed": true,
"toObjectTypeFieldName": "string",
"toObjectTypeNames": [
"string"
],
"joinKeyFieldName": "string",
"joinConditions": [
{
"type": "Conditional"
}
],
"fields": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string"
}
],
"localizedReverseLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"deleteTableName": "string",
"useCustomIndex": true,
"color": "string",
"width": 0,
"dashType": "solid",
"styles": [
{
"id": "string",
"conditionId": "string",
"evaluationOrder": 0,
"color": "string",
"width": 0,
"dashType": "solid"
}
],
"reindexRequired": true
}
],
"defaultRegularIcon": {
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"imageType": "GIF",
"imageLocation": "string",
"bytes": "string",
"version": 0
},
"defaultMapIcon": {
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"imageType": "GIF",
"imageLocation": "string",
"bytes": "string",
"version": 0
},
"parentName": "string",
"allowElementGroupRootAssignment": true,
"deleteTableName": "string",
"urnFormat": "string",
"urnLength": 0,
"urnStartValue": 0,
"urnType": "UUID",
"requireSearchBeforeCreate": true,
"enableCasDistributedDataLoad": true,
"attachmentsIndexedForSearch": true,
"reindexRequired": true,
"mobileOfflineEnabled": true,
"publishCode": "OPEN"
}
Entity Type
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Entity Type | any | false | none | The metadata that defines a class of entities. This definition includes a list of fields, language-specific labels, icons, and other relevant information. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | dataObject | false | none | Reserved for internal use. An abstract object for representing an object that is associated with a data table. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» type | string | false | none | Indicates whether the entity type is managed internally or exists in an external read-only database:
|
» markerColor | string | false | none | The color that is used to display the marker for this entity type on a network diagram. |
» nodeShape | string | false | none | The shape that is used to display the marker for this entity type on a network diagram. |
» nodeColor | string | false | none | The color that is used to display the marker for this entity type on a network diagram. |
» borderColor | string | false | none | The color that is used to display the border for this entity type on a network diagram. |
» borderWidth | number(double) | false | none | The width of the border when displaying this entity type as a selected node on a network diagram. |
» scale | number(double) | false | none | A value that adjusts the relative size when selecting a node of this entity type on a network diagram. The value is applied as a ratio to 1. For example, a value of 2 doubles the size and a value of 1 does not change the size. |
» styles | [entityStyle] | false | none | Additional styling that is conditional. |
» elementGroupRoot | boolean | false | none | Indicates whether this entity type is the root for an element group. |
» indexedForSearch | boolean | false | none | Indicates whether this entity type should be indexed for full text searching. |
» fields | [entityTypeField] | false | none | An array that contains the fields that are associated with this entity type. |
» relationshipsFrom | [relationshipType] | false | none | A collection of relationships that point from this entity type. |
» relationshipsTo | [relationshipType] | false | none | A collection of relationships that point toward this entity type. |
» defaultRegularIcon | icon | false | none | The icon that is displayed in the Network-Link Diagram. |
» defaultMapIcon | icon | false | none | Deprecated. Should not be used. |
» parentName | string | false | none | The name of the parent entity type for this entity type. |
» allowElementGroupRootAssignment | boolean | false | none | Indicates whether this entity can be used as an element group root. |
» deleteTableName | string | false | none | The name of SQL table where deleted records are tracked. |
» urnFormat | string | false | none | The URN format string that is used to automatically generate primary keys. |
» urnLength | integer | false | none | The maximum length of the generated URN. |
» urnStartValue | integer(int64) | false | none | If sequential numbers are used as part of the URN, the start value to use for that sequence. |
» urnType | string | false | none | The type of URN generation that this entity uses. |
» requireSearchBeforeCreate | boolean | false | none | Indicates whether a search operation must be performed before inserting a new instance of this entity. Set to true to require this. |
» enableCasDistributedDataLoad | boolean | false | none | Indicates whether all nodes on the grid are used for table loading. This option affects only data for use with Scenario Administration. When set to true, this option uses the value distribution of the first numeric column in the table to structure the shared load. Therefore, you should confirm that the first numeric column contains well-dispersed values. For example, if the first numeric column contains binary flag data with a 90/10 value distribution, 90% of the table is loaded to one node and the remaining 10% is loaded to a second node. |
» attachmentsIndexedForSearch | boolean | false | none | Indicates whether entity type attachment content is added to the search index. When instances of this entity type have files attached to them, if this flag is set to "true", the contents of those attachments are extracted and added to the search index. This allows users to find instances of this entity type by searching for terms that might be in files attached to them. When this flag is updated from "false" to "true", if there are attachments to any instances of this entity type, the entity type must be reindexed before searching can match on attachment contents as described above. |
» reindexRequired | boolean | false | none | Read only. Setting this property on input has no effect. Certain Update operations on entity types require the entity type to be reindexed before changes can be fully active. When such an update has been made, this flag is set to "true" in the representation of the entity type that is provided in the response to the update. This is not a persistent state of the entity type. It is provided as advice to the client once per such an update. Subsequent responses representing the entity type might not have this flag set, even if the advised reindex has not been performed. For example, a client sends a PUT request to update an entity type's attachmentsIndexedForSearch flag from "false" to "true". There are instances of the entity type that have attachments; therefore reindexing becomes necessary before searching can match based on attachment contents. This is indicated by a "true" value in this property in the response to the PUT request. Subsequent GET or PUT requests that return a representation of the entity type might have reindexRequired set to "false" even if the entity type has not been reindexed. This is because in that subsequent request, no update was made that would require reindexing before taking effect. |
» mobileOfflineEnabled | boolean | false | none | Indicates whether offline support is enabled for SAS Mobile Investigator. |
» publishCode | string | false | none | Indicates the publication status that is assigned to an item:
|
Enumerated Values
Property | Value |
---|---|
type | MANAGED |
type | SOURCE |
nodeShape | circle |
nodeShape | square |
nodeShape | diamond |
nodeShape | ellipse |
nodeShape | hexagon |
nodeShape | pentagon |
nodeShape | triangle |
urnType | UUID |
urnType | RANDOM_DIGITS |
urnType | SEQUENTIAL |
publishCode | OPEN |
publishCode | PUBLISHED |
publishCode | MODIFIED |
entityTypeField
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string",
"relatedElementName": "string"
}
Entity Type Field
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | dataField | false | none | Reserved for internal use. An abstract object representing the metadata that all data object fields have in common. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» ownerName | string | false | none | The name of the owner. |
» relatedElementName | string | false | none | The name of the related element. |
entityTypeSummary
{
"id": 0,
"label": "string",
"name": "string",
"dataStoreName": "string",
"tableName": "string",
"systemReserved": true,
"validFromFieldName": "string",
"type": "MANAGED",
"markerColor": "#9d2b12",
"indexedForSearch": true,
"fields": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string",
"relatedElementName": "string"
}
],
"parentName": "string",
"allowElementGroupRootAssignment": true
}
Entity Type Summary
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer(int64) | false | none | The primary key that uniquely identifies this entity type. |
label | string | false | none | The locale neutral label for this entity type. |
name | string | false | none | The name of this entity type. |
dataStoreName | string | false | none | The name of the data store where this type of entity is stored. |
tableName | string | false | none | The name of the database table where this type of entity is stored. |
systemReserved | boolean | false | none | Indicates whether this entity is reserved for internal use only. |
validFromFieldName | string | false | none | The name of the field that contains the validFrom date/time value. |
type | string | false | none | Indicates whether this entity is managed internally or if it resides in an external read-only database. |
markerColor | string | false | none | The color that is used to display the marker for this entity on a map. |
indexedForSearch | boolean | false | none | Indicates whether this entity should be indexed for search. |
fields | [entityTypeField] | false | none | An array that contains the fields that are associated with this entity type. |
parentName | string | false | none | The name of parent entity type for this entity type. |
allowElementGroupRootAssignment | boolean | false | none | Indicates whether this entity can be used as an element group root. |
Enumerated Values
Property | Value |
---|---|
type | MANAGED |
type | SOURCE |
entityTypeExpression
{
"type": "Conditional"
}
Abstract Expression
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of expression. Valid values include:
|
Enumerated Values
Property | Value |
---|---|
type | Conditional |
type | FieldRef |
type | Literal |
type | StrExpr |
type | BoolExpr |
type | Function |
type | ArithExpr |
entityTypeExpressionArithmetic
{
"type": "Conditional",
"leftOperand": {
"type": "Conditional"
},
"operator": "ADD",
"rightOperand": {
"type": "Conditional"
}
}
Arithmetic Expression
Properties
allOf - discriminator: entityTypeExpression.type
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | entityTypeExpression | false | none | The abstract parent class for expression types. Subclasses include the following expression types:
|
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» leftOperand | entityTypeExpression | false | none | The left operand that the operator applies to the right operands. |
» operator | string | false | none | The arithmetic operator for the expression:
|
» rightOperand | entityTypeExpression | false | none | The operand on the right side to which the left operand and the operator are applied. |
Enumerated Values
Property | Value |
---|---|
operator | ADD |
operator | MINUS |
operator | PROD |
operator | DIV |
entityTypeExpressionBoolean
{
"type": "Conditional"
}
Boolean Expression
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Boolean Expression | entityTypeExpression | false | none | The abstract type that represents a conditional or a logical expression. |
entityTypeExpressionConditional
{
"type": "Conditional",
"leftOperand": {
"type": "Conditional"
},
"operator": "EQ",
"rightOperands": [
{
"type": "Conditional"
}
]
}
Conditional Expression
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | entityTypeExpressionBoolean | false | none | The abstract type that represents a conditional or a logical expression. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» leftOperand | entityTypeExpression | false | none | The left operand that the operator applies to the right operands. |
» operator | string | false | none | The operator for the expression. The supported values are: "eq" (equal), "ne" (not equal), "gt" (greater than), "lt" (less than), "ge" (greater than or equal), "le" (less than or equal), "in", "notIn", "between", "isNull", "isNotNull", "startsWith", "endsWith", and "contains". |
» rightOperands | [entityTypeExpression] | false | none | An array of expressions on the right side to which the left operand and the operator are applied. |
Enumerated Values
Property | Value |
---|---|
operator | EQ |
operator | NE |
operator | GT |
operator | LT |
operator | GE |
operator | LE |
operator | IN |
operator | NOT_IN |
operator | BETWEEN |
operator | IS_NULL |
operator | IS_NOT_NULL |
operator | STARTS_WITH |
operator | ENDS_WITH |
operator | CONTAINS |
entityTypeExpressionFieldReference
{
"type": "Conditional",
"objectName": "string",
"fieldName": "string"
}
Field Reference Expression
Properties
allOf - discriminator: entityTypeExpression.type
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | entityTypeExpression | false | none | The abstract parent class for expression types. Subclasses include the following expression types:
|
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» objectName | string | false | none | The name of the object that is being referenced. |
» fieldName | string | false | none | The name of the field within the object that is being referenced. |
entityTypeExpressionFunctionCall
{
"type": "Conditional",
"functionName": "TO_STRING",
"arguments": [
{
"type": "Conditional"
}
]
}
Function Call Expression
Properties
allOf - discriminator: entityTypeExpression.type
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | entityTypeExpression | false | none | The abstract parent class for expression types. Subclasses include the following expression types:
|
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» functionName | string | false | none | The name of the function to call. Valid values are: "toString": Convert other data type values into String.
Depending on the underlying data store, a second argument can be passed while converting datetime "toDate": Convert other data types to a datetime value.
Depending on the underlying data store, a second argument that indicates the format of the source data Only String input values in a format that is supported by the underlying data store are supported. "toNumber": Convert a String input value into a number. The exact behavior is dependent on the underlying data store. "upperCase": Convert all characters in the input String to uppercase. "lowerCase": Convert all characters in the input String to lowercase. "mod": Calculate modulus of two integer values. "pow": Perform exponentiation of the first argument (number) raised to the power of the second argument. |
» arguments | [entityTypeExpression] | false | none | An array of parameters to pass to the function. |
Enumerated Values
Property | Value |
---|---|
functionName | TO_STRING |
functionName | TO_DATE |
functionName | TO_NUMBER |
functionName | UPPERCASE |
functionName | LOWERCASE |
functionName | MOD |
functionName | POW |
entityTypeExpressionLiteral
{
"type": "Conditional",
"value": {}
}
Literal Expression
Properties
allOf - discriminator: entityTypeExpression.type
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | entityTypeExpression | false | none | The abstract parent class for expression types. Subclasses include the following expression types:
|
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» value | object | false | none | A literal value that is referenced in an expression. |
entityTypeExpressionLogical
{
"type": "Conditional",
"leftOperand": {
"type": "Conditional"
},
"operator": "AND",
"rightOperand": {
"type": "Conditional"
}
}
Logical Expression
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | entityTypeExpressionBoolean | false | none | The abstract type that represents a conditional or a logical expression. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» leftOperand | entityTypeExpression | false | none | The left operand that the operator applies to the right operands. |
» operator | string | false | none | The operator for the expression. |
» rightOperand | entityTypeExpression | false | none | The operand on the right side to which the left operand and the operator are applied. |
Enumerated Values
Property | Value |
---|---|
operator | AND |
operator | OR |
operator | NOT |
entityTypeExpressionNamedParameter
{
"type": "Conditional",
"parameterName": "string"
}
Named Parameter Expression
Properties
allOf - discriminator: entityTypeExpression.type
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | entityTypeExpression | false | none | The abstract parent class for expression types. Subclasses include the following expression types:
|
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» parameterName | string | false | none | The name of the parameter to use in the expression. |
entityTypeExpressionString
{
"type": "Conditional",
"leftOperand": {
"type": "Conditional"
},
"operator": "CONCAT",
"rightOperand": {
"type": "Conditional"
}
}
String Expression
Properties
allOf - discriminator: entityTypeExpression.type
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | entityTypeExpression | false | none | The abstract parent class for expression types. Subclasses include the following expression types:
|
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» leftOperand | entityTypeExpression | false | none | The left operand that the operator applies to the right operands. |
» operator | string | false | none | The operator for the expression. The supported value is "concat". |
» rightOperand | entityTypeExpression | false | none | The operand on the right side to which the left operand and the operator are applied. |
Enumerated Values
Property | Value |
---|---|
operator | CONCAT |
fieldMaskingConfiguration
{
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
}
Field Masking Configuration
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
currentUserIsAuthorizedToReveal | boolean | false | none | Indicates whether the current user is authorized to reveal the masked value. |
revealUrl | string | false | none | A URL that can be used to request the raw (unmasked) value of the field. |
fieldRestriction
{
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
Field Restriction
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
masked | fieldMaskingConfiguration | false | none | A representation of the masking configuration for a single field. |
required | boolean | false | none | Indicates whether the field is required. |
readOnly | boolean | false | none | Indicates whether the field can be modified. |
maxLength | integer | false | none | The maximum length of value allowed for the field. |
systemReserved | boolean | false | none | Indicates whether the field is reserved for system use. System-reserved fields are not normally writable. Also, they cannot be masked. |
fieldDataType | string | false | none | The data type of the field. |
precision | integer | false | none | The numerical precison of the field. |
scale | integer | false | none | The numerical scale of the field. |
constrainingListName | string | false | none | The reference list that constrains the possible values of this field. |
cascadingReferenceDataFilterByCode | string | false | none | The code used to filter the cascading reference data constraining the value of this field. |
cascadingReferenceDataFilterByField | string | false | none | The name of the field used to filter the cascading reference data constraining the value of this field. |
allowMultipleSelections | boolean | false | none | Indicates whether this field allows multiple selections of users and/or groups. |
userSelectionStrategy | string | false | none | Used with user/group selection fields. The possible values are: - "USERS": This field can only indicate a set of users. - "GROUPS": This field can only indicate a set of groups. - "USERS_AND_GROUPS": This field can indicate a set containing both users and groups. |
Enumerated Values
Property | Value |
---|---|
fieldDataType | REFERENCE_DATA |
fieldDataType | USER_GROUP |
fieldDataType | BOOLEAN |
fieldDataType | STRING |
fieldDataType | SMALLINT |
fieldDataType | INTEGER |
fieldDataType | LONG |
fieldDataType | FLOAT |
fieldDataType | DOUBLE |
fieldDataType | NUMERIC |
fieldDataType | DATE |
fieldDataType | TIMESTAMP |
fieldDataType | TIMESTAMP_WITH_TIME_ZONE |
fieldDataType | JSON |
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
restrictedFields
{
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
}
Restricted Fields Map
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
additionalProperties | fieldRestriction | false | none | A representation of the set of field restrictions that are applied to a single field. Not every kind of restriction applies to every field. For example, the "maxLength" restriction will not apply to numerical fields, but "precision" and "scale" might. Note that many endpoints documented in this REST API only populate a subset of these field restrictions (often only "masked"). |
fieldRestrictions
{
"property1": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"property2": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
}
}
Field Restrictions Bundle
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
additionalProperties | restrictedFields | false | none | Represents all of the field restrictions of a datatype as a map of field name to field restriction object. The keys of this map are strings representing field names. The value mapped by each key is the Field Restriction object containing all the field restrictions for the field with that name. |
fieldValue
{
"fieldName": "string"
}
Field Value
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
fieldName | string | true | none | The name of the field whose value is represented by this object. |
fieldValueCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"fieldName": "string"
}
]
}
Field Value Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [fieldValue] | true | none | The array that contains the field values. |
countLinksResult
{
"relationshipId": 0,
"relationshipName": "string",
"relationshipLabel": "string",
"relationshipQualifiedName": "string",
"relationshipReverseName": "string",
"relationshipReverseLabel": "string",
"fromEntityTypeName": "string",
"fromEntityTypeLabel": "string",
"toEntityTypeName": "string",
"toEntityTypeLabel": "string",
"linkCount": 0
}
Count Links Result
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
relationshipId | integer | false | none | The id of the relationship type |
relationshipName | string | false | none | The name of the relationship type |
relationshipLabel | string | false | none | The localized name of the relationship type |
relationshipQualifiedName | string | false | none | The full name of the relationship type, which is based on the "from" entity type and the relationship name |
relationshipReverseName | string | false | none | The name of the relationship from the opposite perspective |
relationshipReverseLabel | string | false | none | The label for the relationship from the opposite perspective |
fromEntityTypeName | string | false | none | The type of the "from" entity type |
fromEntityTypeLabel | string | false | none | The localized label for the "to" entity type |
toEntityTypeName | string | false | none | The type of the "to" entity type |
toEntityTypeLabel | string | false | none | The localized label for the "to" entity type |
linkCount | integer | false | none | The number of matching links that were found |
countLinksResultCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"relationshipId": 0,
"relationshipName": "string",
"relationshipLabel": "string",
"relationshipQualifiedName": "string",
"relationshipReverseName": "string",
"relationshipReverseLabel": "string",
"fromEntityTypeName": "string",
"fromEntityTypeLabel": "string",
"toEntityTypeName": "string",
"toEntityTypeLabel": "string",
"linkCount": 0
}
]
}
Count Links Result Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [countLinksResult] | true | none | The array that contains the link count results. |
referenceList
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"archived": true,
"maxCodeLength": 0,
"alphabeticalSort": true,
"items": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"code": "string",
"archived": true,
"displayIndex": 0
}
]
}
Reference List
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Reference List | any | false | none | Represents a list of choices that the user can select as the value for a field. Common examples might include "Size" (small, medium, large) or "Color" (red, green, blue). In the first example, "Size" is the list and (small, medium, large) are items of that list. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» name | string | false | none | The name of the reference list. The name is limited to 50 characters. |
» archived | boolean | false | none | Indicates whether the reference list is archived. |
» maxCodeLength | integer | false | none | The maximum length of the string that is used as the code for list items. |
» alphabeticalSort | boolean | false | none | Indicates whether the reference list is sorted alphabetically. |
» items | [referenceListItem] | false | none | The collection of reference list items. |
referenceListSummary
{
"version": 0,
"id": 0,
"name": "string",
"label": "string",
"maxCodeLength": 0,
"archived": true,
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
]
}
Reference List Summary
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The internal Data Hub version of the Reference List object. |
id | integer | false | none | The numeric identifier of the Reference List object. |
name | string | false | none | The locale-independent name of the Reference List object. |
label | string | false | none | A localized label for the Reference List object. |
maxCodeLength | integer | false | none | The maximum length of the string that is used as the code for list items. |
archived | boolean | false | none | Indicates whether the reference list is archived. |
links | [sasLink] | false | none | A list of links that are available for this Reference List. This contains the link to fetch the full Reference List representation. |
referenceListSummaryCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"version": 0,
"id": 0,
"name": "string",
"label": "string",
"maxCodeLength": 0,
"archived": true,
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
]
}
]
}
Reference List Summary Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Reference List Summary Collection | any | false | none | A Resource Collection that contains Reference List Summary objects. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [referenceListSummary] | true | none | An array of Reference List Summaries. |
referenceListItem
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"code": "string",
"archived": true,
"displayIndex": 0
}
Reference List Item
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Reference List Item | any | false | none | An option in a reference list. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | localizableObject | false | none | Reserved for internal use. An abstract object for handling the localizable label and description. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» code | string | false | none | The unique identifier for this reference list item. |
» archived | boolean | false | none | Indicates whether the reference list is archived. |
» displayIndex | integer | false | none | Indicates the position in which this item appears in the reference list. |
relationshipLink
{
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
Relationship Link
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
relationshipTypeName | string | false | none | The name of the relationship type that defines this link. |
relationshipTypeVersion | integer | false | none | The internal Data Hub version of the relationship type. |
relationshipTypeLabel | string | false | none | The display label for the relationship type. |
id | string | false | none | The ID of the link. |
qualifiedTypeName | string | false | none | The qualified name of the relationship type. Qualified names are in the format: fromObjectTypeName + "__" + relationshipTypeName. |
fromObjectTypeName | string | false | none | The entity type name for the "From" side of the relationship type. |
fromObjectTypeVersion | integer(int64) | false | none | The internal Data Hub version for the entity type for the "From" side of the relationship type. |
fromObjectId | string | false | none | The document ID for the "From" side of the relationship type. |
fromObjectDisplayLabel | string | false | none | The display label for the document on the "From" side of the relationship type. |
toObjectTypeName | string | false | none | The entity type name for the "To" side of the relationship type. |
toObjectTypeVersion | integer(int64) | false | none | The internal Data Hub version for the entity type for the "To" side of the relationship type. |
toObjectId | string | false | none | The document ID for the "To" side of the relationship type. |
toObjectDisplayLabel | string | false | none | The display label for the document on the "To" side of the relationship type. |
validFrom | string(date-time) | false | none | The timestamp value that indicates the starting datetime for when the link is valid. |
validTo | string(date-time) | false | none | The timestamp value that indicates the ending datetime for when the link is valid. |
fieldValues | object | false | none | The values for the fields that are defined as the attributes of the link. |
restrictedFields | restrictedFields | false | none | The restrictions that apply to the fields of the link. Currently, only masking field restrictions are represented here. |
createdAt | string(date-time) | false | none | The timestamp value that indicates when this link was created. |
lastUpdatedAt | string(date-time) | false | none | The timestamp value that indicates when this link was last modified. |
maskedRelationshipLink
{
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
Masked Relationship Link
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Masked Relationship Link | relationshipLink | false | none | A representation of a relationship link that has masked field values replaced with dot characters. Fields not configured to be masked are represented normally. |
relationshipLinkCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
]
}
Relationship Link Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [relationshipLink] | true | none | The array that contains the relationship links. |
maskedRelationshipLinkCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"relationshipTypeName": "string",
"relationshipTypeVersion": 0,
"relationshipTypeLabel": "string",
"id": "string",
"qualifiedTypeName": "string",
"fromObjectTypeName": "string",
"fromObjectTypeVersion": 0,
"fromObjectId": "string",
"fromObjectDisplayLabel": "string",
"toObjectTypeName": "string",
"toObjectTypeVersion": 0,
"toObjectId": "string",
"toObjectDisplayLabel": "string",
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"fieldValues": {},
"restrictedFields": {
"property1": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"property2": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
}
},
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedAt": "2019-08-24T14:15:22Z"
}
]
}
Masked Relationship Link Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [maskedRelationshipLink] | true | none | The array that contains the masked relationship links. |
minimallyMaskedRelationshipLink
{
"description": "Example of a Relationship Link object.",
"value": {
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
},
"x-widdershins-oldRef": "#/components/examples/relationshipLinkExample"
}
Minimally-Masked Relationship Link
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Minimally-Masked Relationship Link | relationshipLink | false | none | A representation of a Relationship Link that has the minimal amount of field masking applied. That is, for each masked field, if the requesting user is authorized to reveal its value, the value is unmasked in this representation. Otherwise the value will remain masked. |
minimallyMaskedRelationshipLinkCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"description": "Example of a Relationship Link object.",
"value": {
"relationshipTypeName": "witnessed_by",
"relationshipTypeVersion": 1,
"relationshipTypeLabel": "Witnessed by",
"id": "witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"createdAt": "2015-10-01T18:30:03.656Z",
"lastUpdatedAt": "2015-10-01T18:30:03.656Z",
"displayLabel": "Witnessed by",
"fromObjectTypeName": "intel_report",
"fromObjectTypeVersion": 3,
"fromObjectId": "uuid_502",
"fromObjectDisplayLabel": "John Smith",
"toObjectTypeName": "person",
"toObjectTypeVersion": 6,
"toObjectId": "uuid_102",
"toObjectDisplayLabel": "John Smith",
"fieldValues": {
"auto_generated_sk": "e5343e0e-3d68-11e8-b467-0ed5f89f718b",
"created_at_dttm": "2015-10-01T18:30:03.656Z",
"created_by_user_id": "unit_test",
"intelReportId": "uuid_502",
"last_updated_at_dttm": "2015-10-01T18:30:03.656Z",
"last_updated_by_user_id": "unit_test",
"personId": "uuid_102",
"version": 1
},
"qualifiedTypeName": "intel_report__witnessed_by",
"restrictedFields": {
"ssn": {
"masked": {
"currentUserIsAuthorizedToReveal": true
}
}
}
}
}
]
}
Minimally-Masked Relationship Link Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Minimally-Masked Relationship Link Collection | any | false | none | A collection of minimally-masked Relationship Links. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [minimallyMaskedRelationshipLink] | true | none | The array that contains the minimally-masked relationship links. |
relationshipType
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"dataStoreName": "string",
"tableName": "string",
"systemReserved": true,
"historyEnabled": true,
"version": 0,
"validFromFieldName": "string",
"validToFieldName": "string",
"lastUpdatedAtTimeFieldName": "string",
"createdAtTimeFieldName": "string",
"displayTextFields": [
{
"name": "string",
"displayIndex": 0
}
],
"dataStoreAssignedTimeZone": "string",
"reverseName": "string",
"reverseLabel": "string",
"fromObjectName": "string",
"fromObjectLabel": "string",
"toObjectName": "string",
"toObjectLabel": "string",
"required": true,
"cardinality": "ONE_TO_ONE",
"sortCriteria": {
"fieldName": "string",
"sortOrder": "asc"
},
"type": "DIRECT_CHILD",
"symmetric": true,
"managed": true,
"toObjectTypeFieldName": "string",
"toObjectTypeNames": [
"string"
],
"joinKeyFieldName": "string",
"joinConditions": [
{
"type": "Conditional"
}
],
"fields": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string"
}
],
"localizedReverseLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"deleteTableName": "string",
"useCustomIndex": true,
"color": "string",
"width": 0,
"dashType": "solid",
"styles": [
{
"id": "string",
"conditionId": "string",
"evaluationOrder": 0,
"color": "string",
"width": 0,
"dashType": "solid"
}
],
"reindexRequired": true
}
Relationship Type
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Relationship Type | any | false | none | The definition of a connection that can be established between two entities. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | dataObject | false | none | Reserved for internal use. An abstract object for representing an object that is associated with a data table. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» reverseName | string | false | none | The name of the relationship from the opposite perspective. |
» reverseLabel | string | false | none | The label for the relationship from the opposite perspective. |
» fromObjectName | string | false | none | The name of the side of the relationship that is pointed away from another entity. |
» fromObjectLabel | string | false | none | The label for the side of the relationship that is pointed away from another entity. |
» toObjectName | string | false | none | The name of the side of the relationship that is pointed toward another entity. |
» toObjectLabel | string | false | none | The label for the side of the relationship that is pointed toward another entity. |
» required | boolean | false | none | Indicates whether the relationship is required. |
» cardinality | string | false | none | The cardinality for the relationship. The possible values are: "ONE_TO_ONE", "ONE_TO_MANY", "MANY_TO_ONE", "MANY_TO_MANY" |
» sortCriteria | sortCriteria | false | none | The criteria that specifies how to sort a collection. |
» type | string | false | none | The type of relationship. DIRECT_CHILD relationships are parent-child relationships. LINK relationships are general relationships between one type and another. |
» symmetric | boolean | false | none | Indicates whether the relationship is symmetric. |
» managed | boolean | false | none | Indicates whether the relationship is managed. |
» toObjectTypeFieldName | string | false | none | Only used for heterogeneous relationships with no bridge table. The value indicates a field in the "from" entity type. If a document of the "from" entity type has a value for this field, it will contain the entity type name of a document of the "to" entity type to which it is linked under this relationship type. This field in the "from" entity type may not be masked. |
» toObjectTypeNames | [string] | false | none | The names of the entity types on the "to" side of the relationship. |
» joinKeyFieldName | string | false | none | Only used for heterogeneous relationships with no bridge table. The value indicates a field in "from" entity type. If a document of the "from" entity type has a value for this field, it will contain the entity ID of a document of the "to" entity type to which it is linked under this relationship type. This field in the "from" entity type may not be masked. |
» joinConditions | [entityTypeExpressionBoolean] | false | none | The list of expressions that are used to perform the join. Join conditions may not reference masked fields. |
» fields | [relationshipTypeField] | false | none | The list of fields that are part of the relationship. |
» localizedReverseLabels | [labelLocalized] | false | none | [The description text that is associated with a specific locale.] |
» deleteTableName | string | false | none | The name of the table that is used for tracking deleted records. |
» useCustomIndex | boolean | false | none | Indicates whether the relationship should use a custom index. |
» color | string | false | none | The color of links displayed in network view for this relationship type. |
» width | number(double) | false | none | The width of links displayed in network view for this relationship type. |
» dashType | string | false | none | The type of line displayed when viewing a relationship link. |
» styles | [relationshipStyle] | false | none | Additional styling that is conditional. |
» reindexRequired | boolean | false | none | Indicates whether reindexing is required. After a relationship type is updated, this value is true if the relationship needs to be reindexed. |
Enumerated Values
Property | Value |
---|---|
cardinality | ONE_TO_ONE |
cardinality | ONE_TO_MANY |
cardinality | MANY_TO_ONE |
cardinality | MANY_TO_MANY |
type | DIRECT_CHILD |
type | LINK |
dashType | solid |
dashType | dotted |
dashType | dashed |
dashType | shortDash |
dashType | dashDot |
dashType | longDash |
dashType | longDashDot |
dashType | longDashDotDot |
relationshipTypeField
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string"
}
Relationship Type Field
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Relationship Type Field | any | false | none | A field within a relationship type. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | dataField | false | none | Reserved for internal use. An abstract object representing the metadata that all data object fields have in common. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» ownerName | string | false | none | The owner of the relationship type. |
sheet
{
"id": 0,
"name": "string",
"tabOrder": 0,
"type": "WORKSHEET",
"cells": [
{
"id": 0,
"row": 0,
"position": 0,
"type": "LIVE",
"height": 0,
"width": 0,
"lastModified": "2019-08-24T14:15:22Z"
}
],
"lastModified": "2019-08-24T14:15:22Z"
}
Sheet
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer(int64) | false | none | A value that uniquely identifies the insight or workspace. |
name | string | false | none | The name of the insight or workspace. |
tabOrder | integer | false | none | The tab order for the insight or workspace. |
type | string | false | none | Indicates the type of "sheet", either a workspace or an insight:
|
cells | [sheetCell] | false | none | The individual cells on the sheet. |
lastModified | string(date-time) | false | none | The timestamp that indicates when this cell was last modified. |
Enumerated Values
Property | Value |
---|---|
type | WORKSHEET |
type | NOTESHEET |
sheetCell
{
"id": 0,
"row": 0,
"position": 0,
"type": "LIVE",
"height": 0,
"width": 0,
"lastModified": "2019-08-24T14:15:22Z"
}
Cell
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer(int64) | false | none | A value that uniquely identifies the cell. |
row | integer | false | none | The row of the worksight or insight in which the cell exists. |
position | integer | false | none | The position of the cell in the row. |
type | string | false | none | The type of the cell:
|
height | integer | false | none | The height of the cell. |
width | integer | false | none | The width of the cell. |
lastModified | string(date-time) | false | none | The timestamp that indicates when this cell was last modified. |
Enumerated Values
Property | Value |
---|---|
type | LIVE |
type | STATIC |
type | IMAGE |
type | TEXT |
sheetCopySelection
{
"sheetIds": [
0
],
"objectTypeName": "string",
"objectId": "string"
}
Sheet Copy Selection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sheetIds | [integer] | false | none | The values that uniquely identify the sheets to copy. |
objectTypeName | string | false | none | The object type name of the object to which the sheets are attached. |
objectId | string | false | none | The ID of the object to which the sheets are attached. |
solutionPublishResult
{
"solutionName": "sample_solution",
"solutionLabel": "Sample Solution",
"successful": 42,
"failed": 1,
"results": [
{
"type": "ENTITY_TYPE",
"label": "Entity Type",
"successful": 42,
"failed": 1,
"errors": [
{
"name": "sample_item",
"label": "Sample Item",
"message": "Record is locked by another user."
}
]
}
]
}
Solution Publish Result
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
solutionName | string | false | none | The name of the solution. |
solutionLabel | string | false | none | The localized name of the solution. |
successful | integer | false | none | The number of items that were successfully published. |
failed | integer | false | none | The number of items that could not be published. |
results | [solutionPublishResultItem] | false | none | [The results of a publish operation for a specific item type. This includes counts of how many items were published and a summary of any that failed. ] |
solutionPublishResultItem
{
"type": "ENTITY_TYPE",
"label": "Entity Type",
"successful": 42,
"failed": 1,
"errors": [
{
"name": "sample_item",
"label": "Sample Item",
"message": "Record is locked by another user."
}
]
}
Solution Publish Result Item
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The internal name for the item type that was published. |
label | string | false | none | The localized name of the item. |
successful | integer | false | none | The number of items that were successfully published. |
failed | integer | false | none | The number of items that could not be published. |
errors | [solutionPublishResultError] | false | none | [Detailed information about an item that was not successfully published. ] |
Enumerated Values
Property | Value |
---|---|
type | ENTITY_TYPE |
type | CONTEXT_MAPPING |
type | PAGE_TEMPLATE |
type | WORKFLOW_TEMPLATE |
type | FLOW |
solutionPublishResultError
{
"name": "sample_item",
"label": "Sample Item",
"message": "Record is locked by another user."
}
Solution Publish Result Error
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the item. |
label | string | false | none | The localized name of the item. |
message | string | false | none | The error message for the failure. |
sortableNameReference
{
"name": "string",
"displayIndex": 0
}
Sortable Name Reference
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the reference. |
displayIndex | integer | false | none | The ordinal for the name. This is typically a field name. |
entityStyle
{
"id": "string",
"conditionId": "string",
"evaluationOrder": 0,
"iconName": "string",
"markerCode": "string",
"nodeColor": "string",
"borderColor": "string",
"borderWidth": 0
}
Entity Style
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Entity Style | any | false | none | The properties for styling an icon, nodes, and map pins for an entity type. The style is tied to a condition. When the condition is true, the style is applied. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | styleCommonProperties | false | none | The shared style icon properties for a condition. When the condition is true, the style is applied. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» iconName | string | false | none | The name of the icon properties. |
» markerCode | string | false | none | A hexadecimal color value for the background color to use for map pins. |
» nodeColor | string | false | none | A hexadecimal color value to use when an object is represented as a node. |
» borderColor | string | false | none | A hexadecimal color value to use for the node border. |
» borderWidth | number(double) | false | none | The width of the node border. |
relationshipStyle
{
"id": "string",
"conditionId": "string",
"evaluationOrder": 0,
"color": "string",
"width": 0,
"dashType": "solid"
}
Relationship Style
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | styleCommonProperties | false | none | The shared style icon properties for a condition. When the condition is true, the style is applied. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» color | string | false | none | The color of links that are displayed in network view for this relationship type. |
» width | number(double) | false | none | The width of links that are displayed in network view for this relationship type. Specify a whole number. |
» dashType | string | false | none | The type of line that is displayed when viewing a relationship link. |
Enumerated Values
Property | Value |
---|---|
dashType | solid |
dashType | dotted |
dashType | dashed |
dashType | shortDash |
dashType | dashDot |
dashType | longDash |
dashType | longDashDot |
dashType | longDashDotDot |
styleCommonProperties
{
"id": "string",
"conditionId": "string",
"evaluationOrder": 0
}
Common Style Properties
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | A unique ID value for the style properties. |
conditionId | string | false | none | The ID of the condition with which the style is associated. |
evaluationOrder | integer | false | none | The order in which the condition should be evaluated. |
transactionType
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"dataStoreName": "string",
"tableName": "string",
"systemReserved": true,
"historyEnabled": true,
"version": 0,
"validFromFieldName": "string",
"validToFieldName": "string",
"lastUpdatedAtTimeFieldName": "string",
"createdAtTimeFieldName": "string",
"displayTextFields": [
{
"name": "string",
"displayIndex": 0
}
],
"dataStoreAssignedTimeZone": "string",
"fromObjectName": "string",
"toObjectName": "string",
"fromObjJoinCondition": {
"type": "Conditional"
},
"toObjJoinCondition": {
"type": "Conditional"
},
"fromObjectRefFieldName": "string",
"toObjectRefFieldName": "string",
"fromObjectTypeFieldName": "string",
"toObjectTypeFieldName": "string",
"lineWidthFieldName": "string",
"lineWidthFunctionType": "SUM",
"lineColorFieldName": "string",
"lineColorFunctionType": "SUM",
"fields": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string"
}
]
}
Transaction Type
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Transaction Type | any | false | none | The metadata that defines a class of transactions. This definition includes a "from" entity type, a "to" entity type, a date-time field, as well as on optional list of additional fields. A transaction, which is an instance of a transaction type, defines an action that was performed between two entities at a specific point in time. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | dataObject | false | none | Reserved for internal use. An abstract object for representing an object that is associated with a data table. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» fromObjectName | string | false | none | The entity type on the "from" side of the transaction. |
» toObjectName | string | false | none | The entity type on the "to" side of the transaction. |
» fromObjJoinCondition | entityTypeExpressionBoolean | false | none | The join condition that identifies the "from" entity type. Join conditions cannot reference masked fields. |
» toObjJoinCondition | entityTypeExpressionBoolean | false | none | The join condition that identifies the "to" entity type. Join conditions cannot reference masked fields. |
» fromObjectRefFieldName | string | false | none | The name of the field that contains the reference key to the "from" entity. This field cannot be masked. |
» toObjectRefFieldName | string | false | none | The name of the field that contains the reference key to the "to" entity. This field cannot be masked. |
» fromObjectTypeFieldName | string | false | none | If the transactions can have different "from" entity types, the name of the field that contains the "from" entity type. This field cannot be masked. |
» toObjectTypeFieldName | string | false | none | If the transactions can have different "to" entity types, name of the field that contains the "to" entity type. This field cannot be masked. |
» lineWidthFieldName | string | false | none | The field that is used to calculate the line width used when displaying the transaction on a network diagram. |
» lineWidthFunctionType | string | false | none | The aggregate function that is used (on the field identified in lineWidthFieldName property) to calculate the line width when displaying the transaction on a network diagram. |
» lineColorFieldName | string | false | none | The field that is used to determine line color when displaying the transaction on a network diagram. |
» lineColorFunctionType | string | false | none | The aggregate function that is used (on field identified in lineColorFieldName property) to determine the line color when displaying the transaction on a network diagram. |
» validFromFieldName | string | false | none | The field that is used to determine the earliest time this transaction is valid. This field cannot be masked. |
» fields | [transactionTypeField] | false | none | The array that contains the fields that are associated with this transaction type. |
Enumerated Values
Property | Value |
---|---|
lineWidthFunctionType | SUM |
lineWidthFunctionType | COUNT |
lineWidthFunctionType | AVERAGE |
lineWidthFunctionType | MIN |
lineWidthFunctionType | MAX |
lineColorFunctionType | SUM |
lineColorFunctionType | COUNT |
lineColorFunctionType | AVERAGE |
lineColorFunctionType | MIN |
lineColorFunctionType | MAX |
transactionTypeField
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"label": "string",
"description": "string",
"localizedLabels": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"label": "string"
}
],
"localizedDescriptions": [
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"version": 0,
"locale": "en-US",
"description": "string"
}
],
"name": "string",
"columnName": "string",
"dataType": "BOOLEAN",
"length": 0,
"precision": 0,
"scale": 0,
"required": true,
"primaryKeyField": true,
"unique": true,
"autoGenerated": true,
"systemReserved": true,
"displayIndex": 0,
"version": 0,
"constrainingListName": "string",
"userSelectionStrategy": "USERS",
"allowMultipleSelections": true,
"primaryKeySeqNo": 0,
"readOnly": true,
"indexedForSearch": true,
"logicalDataType": "USER_GROUP",
"masked": true,
"authorizedToRevealMasked": [
{
"id": "string",
"type": "user"
}
],
"ownerName": "string"
}
Transaction Type Field
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | dataField | false | none | Reserved for internal use. An abstract object representing the metadata that all data object fields have in common. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» ownerName | string | false | none | The name of the owner. |
actionSummary
{
"actionId": "string",
"action": "string",
"actionType": "DOCUMENT_CREATE",
"objectType": "string",
"objectId": "string",
"objectVersion": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
Action Summary
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
actionId | string | false | none | An ID that represents this action. |
action | string | false | none | A localized message that describes the action. For example, "Attached a file". |
actionType | string | false | none | A string that represents this action. This can be used to filter actions. |
objectType | string | false | none | The type of the underlying document or link to which the action was applied. |
objectId | string | false | none | The ID of the underlying document or link to which the action was applied. |
objectVersion | string | false | none | The version of the underlying document or link to which the action was applied. |
createdBy | string | false | none | The ID of the user who created this action. |
createdAt | string(date-time) | false | none | The timestamp that indicates when this action was created. |
links | [sasLink] | false | none | A list of links that are available for this action. This contains the link to fetch the full action representation. |
version | integer | false | none | The version number of the Action Summary MediaType. |
Enumerated Values
Property | Value |
---|---|
actionType | DOCUMENT_CREATE |
actionType | DOCUMENT_EDIT |
actionType | DOCUMENT_DELETE |
actionType | DOCUMENT_UNKNOWN |
actionType | RELATIONSHIP_CREATE |
actionType | RELATIONSHIP_EDIT |
actionType | RELATIONSHIP_DELETE |
actionType | RELATIONSHIP_UNKNOWN |
actionType | OBJECT_LINKED |
actionType | OBJECT_LINK_EDIT |
actionType | OBJECT_UNLINKED |
actionType | OBJECT_LINK_UNKNOWN |
actionType | COMMENT_CREATE |
actionType | COMMENT_EDIT |
actionType | FILE_UPLOAD |
actionType | FILE_DELETE |
actionSummaryCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"actionId": "string",
"action": "string",
"actionType": "DOCUMENT_CREATE",
"objectType": "string",
"objectId": "string",
"objectVersion": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
]
}
Action Summary Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Action Summary Collection | any | false | none | A collection of action summaries. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [actionSummary] | true | none | An array of action summaries. |
subActionItem
{
"type": "subItem",
"action": "Edited child objects.",
"items": [
null
]
}
Sub-Action Item
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | A constant value for this action item that allows clients to display the sub-action item correctly. |
action | string | false | none | A localized message that represents this sub-action item. |
items | [anyOf] | false | none | A list of action items under this sub-action item. This array can contain:
|
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | subActionItem | false | none | An action item representation of a sub-action that occurred inside the scope of an action. For example, the "Deleted child objects" action inside an "Edited the document" action. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | labelActionItem | false | none | An action item representation that can be used to display a message to the user. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | tableActionItem | false | none | An action item representation that can be used to present a table to the user. |
Enumerated Values
Property | Value |
---|---|
type | subItem |
labelActionItem
{
"type": "labelItem",
"label": "string",
"labelType": "STRING",
"items": [
{
"type": "subItem",
"action": "Edited child objects.",
"items": [
null
]
}
]
}
Label Action Item
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | A constant value for this action item that allows clients to display the label action item correctly. |
label | string | false | none | The message that is displayed to the user. |
labelType | string | false | none | Indicates the type of the label to the client for formatting and display purposes. |
items | [anyOf] | false | none | A list of action items under this label action item. This array can contain:
|
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | subActionItem | false | none | An action item representation of a sub-action that occurred inside the scope of an action. For example, the "Deleted child objects" action inside an "Edited the document" action. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | labelActionItem | false | none | An action item representation that can be used to display a message to the user. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | tableActionItem | false | none | An action item representation that can be used to present a table to the user. |
Enumerated Values
Property | Value |
---|---|
type | labelItem |
labelType | STRING |
labelType | HTML |
tableActionItem
{
"type": "tableItem",
"action": "Changed fields.",
"headings": [
"string"
],
"rows": [
[
{
"value": {},
"fieldRestriction": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"type": "BOOLEAN"
}
]
]
}
Table Action Item
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | A constant value for this action item that allows clients to display the table action item correctly. |
action | string | false | none | A localized message that represents this table action item. |
headings | [string] | false | none | The localized headers for the table. |
rows | [array] | false | none | A list of table rows. Each row contains a list of action table values. |
Enumerated Values
Property | Value |
---|---|
type | tableItem |
action
{
"actionId": "string",
"action": "string",
"actionType": "DOCUMENT_CREATE",
"objectType": "string",
"objectId": "string",
"objectVersion": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{}
]
}
Action
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | actionSummary | false | none | A representation of an action against a document or link. For example, an action could be:
The summary version of this representation omits detailed information about the action. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [object] | false | none | A list of action items. This represents detailed information about the action. This array can contain:
|
actionTableValue
{
"value": {},
"fieldRestriction": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"type": "BOOLEAN"
}
Action Table Value
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | object | false | none | The value of the cell. If the field is configured for masking, this value is replaced with dots. |
fieldRestriction | fieldRestriction | false | none | A representation of the set of field restrictions that are applied to a single field. Not every kind of restriction applies to every field. For example, the "maxLength" restriction will not apply to numerical fields, but "precision" and "scale" might. Note that many endpoints documented in this REST API only populate a subset of these field restrictions (often only "masked"). |
type | string | false | none | Indicates the type of value to the client. This is for display and format purposes. |
Enumerated Values
Property | Value |
---|---|
type | BOOLEAN |
type | STRING |
type | INTEGER |
type | DECIMAL |
type | DATE |
type | TIMESTAMP |
type | TIMESTAMP_WITH_TIME_ZONE |
type | JSON |
type | HTML |
type | REFERENCE_DATA |
type | USER_GROUP |
actionType
{
"actionType": "string",
"localizedMessage": "string"
}
Action Type
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
actionType | string | false | none | A unique string that represents an action. For example:
When requesting filtered action history, the client passes this string in the filter parameter. |
localizedMessage | string | false | none | A localized message that represents this filter option. This could be displayed in a drop-down filter selection menu. |
actionTypeCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"actionType": "string",
"localizedMessage": "string"
}
]
}
Action Type Collection
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [actionType] | true | none | An array of action types. |
historyinfo
{
"historyInfoId": 0,
"itemRefId": "string",
"itemType": "string",
"itemLabel": "string",
"operation": "string",
"ownerType": "string",
"ownerId": "string",
"ownerVersion": "string"
}
Additional History Information
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
historyInfoId | integer | false | none | The ID for this additional history information record. |
itemRefId | string | false | none | The ID of the object that this additional history information references. For example, this could be the ID of a file association. |
itemType | string | false | none | The type of object that this additional history information references. |
itemLabel | string | false | none | A label for the object that this additional history information references. |
operation | string | false | none | Represents the generic type of operation that this additional history information references. |
ownerType | string | false | none | The object type of the document to which this additional history information belongs. |
ownerId | string | false | none | The ID of the document to which this additional history information belongs. |
ownerVersion | string | false | none | The version of the document to which this additional history information belongs. |
historyinfoCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"historyInfoId": 0,
"itemRefId": "string",
"itemType": "string",
"itemLabel": "string",
"operation": "string",
"ownerType": "string",
"ownerId": "string",
"ownerVersion": "string"
}
]
}
Additional History Information Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Additional History Information Collection | any | false | none | A collection of additional history information. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [historyinfo] | true | none | An array of additional history information. |
versionSummary
{
"typeName": "string",
"id": "string",
"version": "string",
"displayLabel": "string",
"operation": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
]
}
Version Summary
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
typeName | string | false | none | The entity type or relationship type of the underlying document or link. |
id | string | false | none | The ID of the underlying document or link. |
version | string | false | none | The version of the underlying document or link. |
displayLabel | string | false | none | The display label for the underlying document or link. |
operation | string | false | none | A string that describes what action caused this version to be created. Operations:
|
createdBy | string | false | none | The ID of the user that created this version. |
createdAt | string(date-time) | false | none | The timestamp that indicates when this version was created. |
links | [sasLink] | false | none | A list of links that are available for this version. This contains a link to the full version representation. |
versionSummaryCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"typeName": "string",
"id": "string",
"version": "string",
"displayLabel": "string",
"operation": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
]
}
]
}
Version Summary Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Version Summary Collection | any | false | none | A collection of version summaries. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [versionSummary] | true | none | An array of version summaries. |
version
{
"typeName": "string",
"id": "string",
"version": "string",
"displayLabel": "string",
"operation": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"values": [
{
"name": "string",
"label": "string",
"previousVersionValue": null,
"previousValueFieldRestriction": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"value": null,
"fieldRestriction": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"type": "string",
"valueChanged": true
}
]
}
Version
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Version | any | false | none | A representation of a single historical version of document or link. This representation contains an array of values that compares field values between the previous and requested version of the document or link. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | versionSummary | false | none | A representation of a single historical version of document or link. The summary version of this representation omits the comparison of field values between the requested and previous version of the document or link. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» values | [versionValue] | false | none | A list of version values. |
childVersionSummary
{
"typeName": "string",
"id": "string",
"version": "string",
"displayLabel": "string",
"operation": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"parentTypeName": "string",
"parentId": "string",
"parentVersion": "string"
}
Child Version Summary
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Child Version Summary | any | false | none | A representation of a single version of a child document. The summary version of this representation omits the comparison of field values between the requested and previous version of the child document. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | versionSummary | false | none | A representation of a single historical version of document or link. The summary version of this representation omits the comparison of field values between the requested and previous version of the document or link. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» parentTypeName | string | false | none | The object type of the parent document. |
» parentId | string | false | none | The ID of the parent document. |
» parentVersion | string | false | none | The version of the parent document. |
childVersionSummaryCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"typeName": "string",
"id": "string",
"version": "string",
"displayLabel": "string",
"operation": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"parentTypeName": "string",
"parentId": "string",
"parentVersion": "string"
}
]
}
Child Version Summary Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Child Version Summary Collection | any | false | none | A collection of child version summaries. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | sasCollection | false | none | This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [childVersionSummary] | true | none | An array of child version summaries. |
childVersion
{
"typeName": "string",
"id": "string",
"version": "string",
"displayLabel": "string",
"operation": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"parentTypeName": "string",
"parentId": "string",
"parentVersion": "string",
"values": [
{
"name": "string",
"label": "string",
"previousVersionValue": null,
"previousValueFieldRestriction": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"value": null,
"fieldRestriction": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"type": "string",
"valueChanged": true
}
]
}
Child Version
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Child Version | any | false | none | A representation of a single version of child document. This representation contains an array of values that compares field values between the previous and requested version of the child document. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | childVersionSummary | false | none | A representation of a single version of a child document. The summary version of this representation omits the comparison of field values between the requested and previous version of the child document. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» values | [versionValue] | false | none | A list of version values. |
versionValue
{
"name": "string",
"label": "string",
"previousVersionValue": null,
"previousValueFieldRestriction": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"value": null,
"fieldRestriction": {
"masked": {
"currentUserIsAuthorizedToReveal": true,
"revealUrl": "string"
},
"required": true,
"readOnly": true,
"maxLength": 0,
"systemReserved": true,
"fieldDataType": "REFERENCE_DATA",
"precision": 0,
"scale": 0,
"constrainingListName": "string",
"cascadingReferenceDataFilterByCode": "string",
"cascadingReferenceDataFilterByField": "string",
"allowMultipleSelections": true,
"userSelectionStrategy": "USERS"
},
"type": "string",
"valueChanged": true
}
Version Value
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The field name of the underlying field. |
label | string | false | none | The localized label for the underlying field. |
previousVersionValue | any | false | none | The value of the field in the previous version of the document or link. If the field is currently configured for masking, this value is masked with dots. |
previousValueFieldRestriction | fieldRestriction | false | none | A field restriction object containing any relevant masking metadata for the previous version value. This can be used by clients to determine whether the previous version value can be revealed by the current user and what URL can be used to fetch the revealed previous version value. |
value | any | false | none | The value of the field in the requested version of the document or link. If the field is currently configured for masking, this value is masked with dots. |
fieldRestriction | fieldRestriction | false | none | A field restriction object containing any relevant masking metadata for the field value. This can be used by clients to determine whether the value can be revealed by the current user and what URL can be used to fetch the revealed value. |
type | string | false | none | The data type of the field. This can be used by clients for formatting and display purposes. |
valueChanged | boolean | false | none | Indicates whether the value has changed between the previous and requested version of the document or link. |
sasCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
SAS Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the collection. |
start | integer(int64) | false | none | The zero-based index of the first item in the collection. |
limit | integer | false | none | The number of items that were requested for the collection. |
count | integer(int64) | false | none | If populated, indicates the number of items in the collection. |
accept | string | false | none | A space-delimited list of media types from which an Accept header can be constructed. |
links | [sasLink] | false | none | The links that apply to the collection. |
version | integer | false | none | The version number of the collection representation. This representation is version 2. |
sasError
{
"description": "Example of a SAS Error object.",
"value": {
"message": "There was an error processing your request.",
"id": "DH9999",
"errorCode": 9999,
"httpStatusCode": 400,
"details": [
"See the log for additional details."
],
"remediation": "Please resolve the error and then resubmit the request."
},
"x-widdershins-oldRef": "#/components/examples/sasErrorExample"
}
SAS Error
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | The message for the error. |
id | string | false | none | The string ID for the error. |
errorCode | integer | false | none | The numeric ID for the error. |
httpStatusCode | integer | false | none | The HTTP status code for the error. |
details | [string] | false | none | Messages that provide additional details about the cause of the error. |
remediation | string | false | none | A message that describes how to resolve the error. |
errors | [object] | false | none | Any additional errors that occurred. |
links | [sasLink] | false | none | The links that apply to the error. |
version | integer | false | none | The version number of the error representation. This representation is version 2. |
sasLink
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
SAS Link
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
method | string | false | none | The HTTP method for the link. |
rel | string | false | none | The relationship of the link to the resource. |
uri | string | false | none | The relative URI for the link. |
href | string | false | none | The URL for the link. |
title | string | false | none | The title for the link. |
type | string | false | none | The media type or link type for the link. |
itemType | string | false | none | If this is a link to a container, itemType is the media type or link type for the items in the container. |
responseType | string | false | none | The media type or link type of the response body for a PUT , POST , or PATCH operation. |
responseItemType | string | false | none | The media type or link type of the items in the response body for a PUT , POST , or PATCH operation. |
sasProperties
{
"version": 1,
"properties": [
{
"name": "string",
"value": "string"
}
],
"links": [
{}
]
}
SAS Properties
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The version number of the API representation. This is version 1. |
properties | [sasProperty] | false | none | A list of name/value pairs. |
links | [object] | false | none | Links to associated resources and operations. APIs might provide links for the link relations self', update(to replace the attributes), patch` (to update some attributes), or others. |
sasProperty
{
"name": "string",
"value": "string"
}
SAS Property
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The property name. |
value | string | false | none | The property value. |
jsonPatch
[
{
"path": "string",
"op": "string",
"value": null
}
]
JSON Patch
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
JSON Patch | [oneOf] | false | none | A specification of changes to make to an object. It consists of an array of patch operations. |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | jsonPatchAddOperation | false | none | Specifies a patch operation that adds a value. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | jsonPatchReplaceOperation | false | none | Specifies a patch operation that replaces a value. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | jsonPatchTestOperation | false | none | Specifies a patch operation that tests a value. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | jsonPatchRemoveOperation | false | none | Specifies a patch operation that removes a value. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | jsonPatchMoveOperation | false | none | Specifies a patch operation that moves a value from one location to another. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | jsonPatchCopyOperation | false | none | Specifies a patch operation that copies a value from one location to another. |
jsonPatchAddOperation
{
"path": "string",
"op": "string",
"value": null
}
JSON Patch Add Operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
path | string | false | none | A JSON Pointer path where the Add operation is applied. |
op | string | false | none | The operation to perform. For Add operations, this is always "add". |
value | any | false | none | The value to add at the location specified by the path. |
jsonPatchReplaceOperation
{
"path": "string",
"op": "string",
"value": null
}
JSON Patch Replace Operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
path | string | false | none | A JSON Pointer path where the Replace operation is applied. |
op | string | false | none | The operation to perform. For Replace operations, this is always "replace". |
value | any | false | none | The value to replace at the location specified by the path. |
jsonPatchTestOperation
{
"path": "string",
"op": "string",
"value": null
}
JSON Patch Test Operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
path | string | false | none | A JSON Pointer path where the Test operation is applied. |
op | string | false | none | The operation to perform. For Test operations, this is always "test". |
value | any | false | none | The value to test at the location specified by the path. |
jsonPatchRemoveOperation
{
"path": "string",
"op": "string"
}
JSON Patch Remove Operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
path | string | false | none | A JSON Pointer path where the Remove operation is applied. |
op | string | false | none | The operation to perform. For Remove operations, this is always "remove". |
jsonPatchMoveOperation
{
"from": "string",
"path": "string",
"op": "string"
}
JSON Patch Move Operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from | string | false | none | A JSON Pointer path from which the value is moved. |
path | string | false | none | A JSON Pointer path to which the value is moved. |
op | string | false | none | The operation to perform. For Move operations, this is always "move". |
jsonPatchCopyOperation
{
"from": "string",
"path": "string",
"op": "string"
}
JSON Patch Copy Operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from | string | false | none | A JSON Pointer path from which the value is copied. |
path | string | false | none | A JSON Pointer path to which the value is copied. |
op | string | false | none | The operation to perform. For Copy operations, this is always "copy". |
icon
{
"id": 0,
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"imageType": "GIF",
"imageLocation": "string",
"bytes": "string",
"version": 0
}
Icon
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | auditableObject | false | none | Reserved for internal use. An abstract object for handling audit information. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» name | string | false | none | The name of the icon. |
» imageType | string | false | none | The type of the icon's image. |
» imageLocation | string | false | none | The location where the image is stored. |
» bytes | string(binary) | false | none | The raw binary data for the icon. |
» version | integer | false | none | The internal Data Hub version for this icon. |
Enumerated Values
Property | Value |
---|---|
imageType | GIF |
imageType | JPEG |
imageType | PNG |
imageType | SVG |
imageType | SVG+XML |
nodeDecoration
{
"label": "string",
"icons": []
}
Node Decoration
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
label | string | false | none | The label for the icon decoration. |
icons | array | false | none | The collection of icon decorations associated with this node. |
Examples
Admin APIs
Access to the /admin version of the API endpoints requires administrator privileges. Typically, the non-admin
versions of the endpoints are restricted to Read-Only access to objects for which the user has been granted
security permissions. Reading records through the admin endpoints bypasses security permissions
and allows available records to be accessed.
Resource Collections
Most APIs that return the media type application/vnd.sas.collection support the following features:
Pagination - The default page limit is set to 10 for all collections. This limit can be modified by setting the
limit
query parameter when applicable.
Thestart
query parameter can be used to specify the starting point of the result set that will be returned.Sorting - Sorting preferences can be specified for selected fields. If no sort preference is specified, the query is sorted in ascending order by the ID key. When a masked field is specified for sort, that portion of the sorting criteria is ignored.
Filtering - Filtering can be applied in order to subset a collection to only the resources for which the specified condition is true.
Data Masking and Media Types
Fields of Entity Types, Relationship Types, and Transaction Types can be configured for data masking. When data masking is activated for a field, the field value will
not normally appear in a representation of a document, relationship link, or transaction link that has a value for that field. Media types control the way masked values
are represented. Endpoints that serve documents, relationship links, or transaction links check the request's Accept
header value or Accept-Type
header value, and
behave according to the tables below depending on the media type in the header. Not every endpoint in each category supports every listed media type. Consult the documentation for details on which media types an endpoint supports.
Document endpoints:
Media Type | Masking Behavior |
---|---|
application/json |
Masked values are omitted from the fieldValues object in the document in the response. |
application/vnd.sas.investigation.data.document(+json) |
Masked values are omitted from the fieldValues object in the document in the response. |
application/vnd.sas.investigation.data.masked.document(+json) |
Masked values are replaced with the string ••••••••• in the response. |
application/vnd.sas.investication.data.minimally.masked.document(+json) |
Masked values are replaced with the string ••••••••• in the response unless the requesting user is authorized to unmask the field. In that case, the raw unmasked value is included. |
Enriched document endpoints:
Media Type | Masking Behavior |
---|---|
application/json |
Masked values are omitted from the fieldValues object in the document in the response. |
application/vnd.sas.investigation.data.enriched.document(+json) |
Masked values are omitted from the fieldValues object in the document in the response. |
application/vnd.sas.investigation.data.masked.enriched.document(+json) |
Masked values are replaced with the string ••••••••• in the response. |
application/vnd.sas.investication.data.minimally.masked.enriched.document(+json) |
Masked values are replaced with the string ••••••••• in the response unless the requesting user is authorized to unmask the field. In that case, the raw unmasked value is included. |
application/vnd.sas.investigation.data.masked.enriched.document.and.link(+json) |
Masked values are replaced with the string ••••••••• in the response. |
Relationship link endpoints:
Media Type | Masking Behavior |
---|---|
application/json |
Masked values are omitted from the fieldValues object in the document in the response. |
application/vnd.sas.investigation.data.masked.relationshiplink(+json) |
Masked values are replaced with the string ••••••••• in the response. |
application/vnd.sas.investigation.data.minimally.masked.relationshiplink(+json) |
Masked values are replaced with the string ••••••••• in the response unless the requesting user is authorized to unmask the field. In that case, the raw unmasked value is included. |
Transaction link endpoints:
Media Type | Masking Behavior |
---|---|
application/json |
Masked values are omitted from the fieldValues object in the document in the response. |
application/vnd.sas.investigation.data.masked.transactionlink(+json) |
Masked values are replaced with the string ••••••••• in the response. |
HEAD Requests
Every GET request in the API can be made as a HEAD request. The documentation for each GET request in the API also applies to its HEAD equivalent, except that HEAD responses have no body.
Visual Investigator Workflow
Base URLs:
- https://example.com/workflows
Terms of service Email: SAS Developers Web: SAS Developers
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The SAS Visual Investigator Workflow API enable users to execute and manage workflows created within SAS Visual Investigator. The SAS Visual Investigator workflows are based on an open-source engine that complies with the Business Process Model and Notation (BPMN) 2.0 standard. It supports industry standards for visual representation and behavior, and it provides support for established workflow patterns. SAS Visual Investigator workflows are efficient and scalable, and integrate with other standard business process implementations.
Usage Notes
Overview
The SAS Visual Investigator Workflow API enables clients to manage workflows used in case management to investigate and process threat analysis.
Here are the functions that this API provides:
- Delete workflows
- Start new workflow processes
- Monitor and manage workflow processes (suspend a process, resume a process, cancel a process)
- Manage workflow tasks (claim task, release claims on a task, complete a task)
- Update workflow process variables and entity fields
- Provide individual user activity rate metrics of workflows (per entity, per workflow, workflow version, users, groups)
- Support for batch actions on multiple processes and tasks
- View workflow task completion history
- Import and export workflow configuration data to set up a SAS Visual Investigator system
- Allow administrators to release claims on tasks
For more information, see the SAS Visual Investigator Workflow Administration.
Terminology
entity
a business object that is managed by SAS Visual Investigator and is represented by a table of related objects.
entity instance
represents an object instance within the entity. A workflow runs against an entity instance and might update the data of this object.
process
an instance that is currently running the workflow against the entity instance.
SVI
SAS Visual Investigator. Workflow is part of this product.
task
a specific workflow item in the workflow model where the user can choose an action to complete. Depending on the action, the workflow might update workflow process variables or entity instance fields.
workflow
defines a model that is used to process a workflow against a select entity instance. A workflow is related to a specific entity. Workflows are versioned on each definition update to ensure that existing processes working tasks against the previous versions can continue.
Error Codes
Certain errors are returned automatically by the framework. It is expected clients handle any valid HTTP response accordingly.
HTTP Status Code | Description |
---|---|
401 | Unauthorized (caller does not have appropriate access) |
403 | Forbidden |
The following errors are specific to the SAS Visual Investigator Workflow API.
HTTP Status Code | Error Code | Description |
---|---|---|
404 | 84000 | The workflow "{0}" does not exist. |
404 | 84001 | The workflow entity instance with the ID "{0}" is not associated with a workflow process. |
400 | 84002 | The workflow "{0}" is not the latest version for this workflow definition. |
404 | 84003 | The workflow process "{0}" does not exist. |
404 | 84004 | The workflow process "{0}" does not exist or is not active. |
404 | 84005 | Workflow processes could not be found for entity ID "{0}". |
404 | 84006 | The task with ID "{0}" does not exist. The task process might have been completed, canceled due to an exceeded timer event, or the process was canceled. |
404 | 84007 | The workflow task action does not exist for the workflow definition ID "{0}", task key "{1}". |
500 | 84008 | The workflow task action could not be created for the workflow definition ID "{0}", task key "{1}". |
400 | 84009 | The workflow setting IDs in the URI request and body must match. |
400 | 84010 | Workflow setting ID type and columns are required. |
400 | 84011 | Audit details cannot be modified. Workflow setting ID type and columns must be provided. |
400 | 84012 | The workflow action cannot be completed. The user is not authorized to edit entities of type "{0}". |
400 | 84013 | The workflow setting ID "{0}" is not a valid setting type. Valid workflow setting IDs include: "MYTASKS_HOME_COLUMNS", "TASKS_TAB_COLUMNS" |
400 | 84014 | The administrator workflow setting "{0}" already exists. |
404 | 84015 | The administrator workflow setting "{0}" does not exist. |
500 | 84016 | The administrator workflow setting "{0}" could not be created. |
500 | 84017 | The administrator workflow setting "{0}" could not be updated. |
500 | 84018 | The administrator workflow setting "{0}" could not be deleted. |
500 | 84019 | All administrator workflow settings could not be deleted. |
400 | 84020 | The list of columns contains an invalid column name "{0}". |
400 | 84021 | The list of columns contains an invalid sort direction "{0}". |
500 | 84022 | The name and description details for workflow "{0}" could not be saved. |
500 | 84023 | The name and description details for workflow "{0}" could not be saved. |
500 | 84024 | The name and description details for workflow "{0}" could not be deleted. |
400 | 84025 | The workflow IDs in the URI request and body must match. |
500 | 84026 | The new workflow definition for "{0}" could not be created for the entity "{1}" (entity ID "{2}"). The entity must be an internal entity, and cannot be a child of an existing entity. Please try again with another internal entity. |
400 | 84027 | The entity with the ID "{0}" does not exist. Please try again with another internal entity. |
404 | 84028 | The entity instance with the ID "{0}" and name "{1}" does not exist. Please try again with another internal entity instance. |
400 | 84029 | The workflow name "{0}" is already used in another workflow definition. Please enter another name. |
400 | 84030 | The workflow label "{0}" is already used in another workflow definition for entity "{1}". Please enter another label. |
404 | 84031 | A workflow has not been configured for the entity "{0}". |
404 | 84032 | A workflow has not been configured using name "{0}". |
400 | 84033 | Workflow name and entity details cannot be modified. |
400 | 84034 | Workflow name, entity details, and model are required. |
400 | 84035 | The workflow processes were not started for the following entity instances because they are already running under existing workflow processes: "{0}". |
400 | 84036 | The workflow processes could not be started for the following entity instances because they do not exist: "{0}". |
400 | 84037 | Workflow processes were not started for the following entity instances because they are already running under existing workflow processes: "{0}". The following entity instances could not be started as they do not exist: "{1}". |
400 | 84038 | A new workflow definition was created but the workflow process could not be started. Reason: There are missing entity instance IDs. |
400 | 84039 | The workflow name "{0}" provided contains invalid characters. Valid characters include the alphanumeric characters A-Z and 0-9, hyphens (-), underscores (_), and periods. (.) Also, names cannot begin with a numeric value, hyphen, or period. |
400 | 84040 | A workflow name must be less than 255 characters in length. |
400 | 84041 | A workflow description must be less than 2000 characters in length. |
400 | 84042 | The workflow task ID for node ID "{0}" (type: "{1}") is not specified. The task ID must contain alphanumeric characters only. |
400 | 84043 | The workflow task ID for the node ID "{0}" (type: "{1}") is invalid. Task IDs must contain alphanumeric characters only. |
400 | 84044 | The workflow task name for the node "{0}" (type: "{1}") is invalid. Task names cannot contain the following characters: ", <, >, or &. Check the model and try again. |
400 | 84045 | The workflow task name for the node ID "{0}" (type: "{1}") is too long. Please enter a name of less than 255 characters. |
400 | 84046 | The workflow task description for the node ID "{0}" (type: "{1}") is too long. Please enter a description of less than 2000 characters. |
400 | 84047 | Audit details cannot be modified. Workflow name, entity details, and either the JSON or XML model must be provided. |
400 | 84048 | Workflow formats for both JSON models and XML models were specified but only one is allowed. Specify one of the models. |
400 | 84049 | The following sort request is invalid: "{0}". Specify a comma-separated list of sort properties using the following formula: (columnName):(ascending |
400 | 84050 | The following filter request is invalid: {0}. Either the specified field property or the filter request is invalid. The filter request requires that the format use prefix function syntax (for example functionName(arguments)). The supported filter functions for numeric values include: eq, ne, ge, gt, le, and lt. The supported filter functions for string values include: eq, ne, contains, startsWith, and endsWith. |
400 | 84051 | The following filter collator is invalid: {0}. The supported filter collators for string functions are $primary for case-insensitivity, or $identical for case-sensitive. |
400 | 84052 | The workflow "{0}" was not updated because it is not the most recent version. Refresh the workflow list and try your query with the most recent workflow definition. |
400 | 84053 | The workflow "{0}" not started. Attempting to start a process using an older version of this workflow definition. You can start only the workflow process using the latest version. Refresh and attempt the query with latest workflow definition. |
400 | 84054 | The workflow process could not be started for workflow "{0}". Exception: "{1}" |
500 | 84055 | The workflow process could not be started for workflow "{0}" because the specified due date or timer boundary event date is invalid. The date, time, and duration for a task must conform to the ISO 8601 format. |
400 | 84056 | The workflow process could not be started for workflow "{0}" as the workflow is not enabled. |
500 | 84057 | The workflow process with the ID "{0}" could not be stopped. Exception: {1} |
400 | 84058 | The workflow process with the ID "{0}" could not be suspended as the workflow is already suspended. |
500 | 84059 | The workflow process with the ID "{0}" could not be suspended. Exception: {1} |
400 | 84060 | The workflow process with the ID "{0}" could not resume as the workflow is currently active. |
500 | 84061 | The workflow process with the ID "{0}" could not resume. Exception: {1} |
500 | 84062 | The action "{0}" is not a valid process action. Processes can only be: canceled (CANCEL), suspended (SUSPEND) or resumed (RESUME). |
500 | 84063 | The suspend audit details for the workflow process with the ID "{0}" could not be updated. |
500 | 84064 | The resume audit details for the workflow process with the ID "{0}" could not be updated. |
500 | 84065 | The cancel audit details for the workflow process with the ID "{0}" could not be updated. |
400 | 84066 | The following workflow processes for the entity "{0}" could not be stopped: {1} |
500 | 84067 | The following workflow processes could not be suspended: {0} |
500 | 84068 | The following workflow processes could not be resumed: {0} |
500 | 84069 | The following workflow processes could not be canceled: {0} |
500 | 84070 | The workflow definition "{0}" could not be created. The Flowable database could not be updated. Reason: "{1}" |
500 | 84071 | The workflow definition ID "{0}" could not be deleted. The Flowable database could not be updated. Reason: "{1}" |
400 | 84072 | Workflow tasks were not claimed for the following task IDs: {0} /n/ Possible reasons: workflow process was suspended or ended, the task has been completed, the task is already claimed, or the user is not a participant of the task and does not have the privilege to claim the task. |
400 | 84073 | Claims were not released for the following workflow task IDs: {0} /n/ Possible reasons: workflow process was suspended or ended, the task has been completed, or the user is not a participant of the task and does not have the privilege to release the claim on the task. |
400 | 84074 | The task "{0}" could not be claimed for user "{1}". Exception: {2} |
400 | 84075 | You do not have permission to claim task "{0}" for user "{1}" |
400 | 84076 | The task "{0}" could not be claimed for user "{1}" because the workflow is currently suspended. |
400 | 84077 | The task "{0}" could not be claimed for user "{1}" because the request did not provide a user name. |
400 | 84078 | The task "{0}" could not be claimed for user "{1}" because it is already claimed. Release the current claim and try again. |
400 | 84079 | The claim could not be released for the task "{0}" because the workflow is currently suspended. |
400 | 84080 | The claim could not be released for the task "{0}". Exception: {1} |
500 | 84081 | The workflow definitions could not be deleted for the following entity: name "{0}", ID "{1}". |
500 | 84082 | The workflow "{0}" could not be deleted. |
500 | 84083 | The workflow definition ID "{0}" could not be deleted. |
400 | 84084 | The requested action could not be completed because no resources were selected. Provide a list of resource IDs and try again. |
404 | 84085 | The request action could not be completed because the following resource IDs do not exist: {0} |
400 | 84086 | The user "{0}" could not be set as a participant for the task "{1}" because the user does not exist on the system. |
400 | 84087 | The group "{0}" could not be set as a participant for task "{1}" because the group does not exist on system. |
400 | 84088 | The user "{0}" cannot perform the task "{1}" |
400 | 84089 | The identities for all users and groups could not be retrieved. |
400 | 84090 | The user could not be found. |
500 | 84091 | The value for "{0}" could not be used in the exclusive gateway sequence flow. The value "{1}" is invalid for the "{2}" data type. |
500 | 84092 | The value for "{0}" could not be updated. The value "{1}" is invalid for the "{2}" data type. |
500 | 84093 | The variable value could not be updated. The value "{0}" is invalid for the "{1}" data type. |
500 | 84094 | The task "{0}" could not be completed because the workflow is currently suspended. |
400 | 84095 | The task "{0}" could not be completed. Exception: {1} |
400 | 84096 | The task "{0}" could not be completed because you have not been assigned the task. |
400 | 84097 | The task "{0}" could not be completed because the action "{1}" was not found. |
400 | 84098 | The task "{0}" could not be completed because field values are missing. Enter a value for the following fields: "{1}" |
500 | 84099 | The task "{0}" could not be completed because the due date or timer boundary event date specified is invalid. The due date and timer boundary event date for a task must conform to the ISO 8601 format. |
500 | 84100 | There was an error on the sequence path following an exceeded boundary timer event and the workflow cannot proceed. Contact your system administrator. |
404 | 84101 | The task with ID "{0}" does not exist. The task process was completed, the task was canceled due to an exceeded timer event, or the process was canceled. |
404 | 84102 | The process with ID "{0}" does not exist. The process either was completed or canceled. |
500 | 84103 | The entity fields could not be updated for the entity name "{0}", entity instance "{1}": {2} |
500 | 84104 | The entity fields could not be updated for the entity name "{0}", entity instance "{1}". Exception: {2} |
500 | 84105 | The entity fields could not be updated for the workflow process ID "{0}". Exception: {1} |
500 | 84106 | Changes to the workflow could not be saved. Ensure that the model is in a valid JSON format. Reason: {0} |
400 | 84107 | Changes to the workflow could not be saved because the model contained the following invalid event or task type: {0}. Check the model and try again. |
400 | 84108 | Changes to the workflow could not be saved. The model contains a link to an event or task ({0}) that does not exist. Check the model and try again. |
400 | 84109 | Changes to the workflow could not be saved. The model contains an invalid sequence flow (from "{0}" to "{1}"). Check the model and try again. |
400 | 84110 | Changes to the workflow could not be saved. The model requires a script in order to configure a script task for the node "{0}". Check the model and try again. |
400 | 84111 | Changes to the workflow could not be saved. The model does not contain a START event. The model should contain exactly one START event. Check the model and try again. |
400 | 84112 | Changes to the workflow could not be saved because the model contains more than one START event. Models must contain exactly one START event. Check the model and try again. |
400 | 84113 | Changes to the workflow could not be saved because the model does not contain an END event. The model requires at least one END event. Check the model and try again. |
400 | 84114 | Changes to the workflow could not be saved. The model contains an END event that has a sequence flow (from "{0}" to "{1}") to another task or event. Check the model and try again. |
400 | 84115 | Changes to the workflow could not be saved. The model contains an event or task ({0}) that has an outgoing sequence flow to the START event. Check the model and try again. |
400 | 84116 | Changes to the workflow could not be saved. The model contains a sequence flow (from"{0}" to "{1}") with a condition. A condition can be set only for exclusive gateway sequence flows. Check the model and try again. |
400 | 84117 | Changes to the workflow could not be saved. The model contains a sequence flow with a condition that using an invalid operator ({0}). The condition definition allows only "AND" and "OR" options. Check the model and try again. |
400 | 84118 | Changes to the workflow could not be saved. The model contains a sequence flow with a condition that using an invalid operator ({0}). The condition definition allows only "equals", "not_equals", "is_missing", and "not_missing" operators. Check the model and try again. |
400 | 84119 | Changes to the workflow could not be saved. The model contains a stranded event or task ({0}) that does not have a sequence flow to another task, gateway, or event. Check the model and try again. |
400 | 84120 | Changes to the workflow could not be saved. The START event must always be at the initial start of a workflow and cannot have outgoing sequence flows to more than one task or gateway. Check the model and try again. |
400 | 84121 | Changes to the workflow could not be saved. The model contains an END node ({0}) that does not end a workflow process. Check the model and try again. |
400 | 84122 | Changes to the workflow could not be saved. The model contains a task ({0}) with either no incoming or outgoing sequence flows to a task, gateway, or end event. Check the model and try again. |
400 | 84123 | Changes to the workflow could not be saved. The model contains a gateway ({0}) with either no incoming or outgoing sequence flows to a task, gateway, or end event. Check the model and try again. |
400 | 84124 | Changes to the workflow could not be saved. The model contains a task ({0}) with outgoing sequence flows to more than one task, gateway, or end event. Check the model and try again. |
400 | 84125 | Changes to the workflow could not be saved. The model contains an event or task ({0}) that flows back to itself. Events, tasks, and gateways cannot have sequence flows back to themselves. Check the model and try again. |
400 | 84126 | There are too many distinct participants specified for this workflow. Consolidate the participants into super groups as applicable. |
400 | 84127 | Changes to the workflow could not be saved. The model contains invalid participant details for the task "{0}". Check the model and try again. |
400 | 84128 | Changes to the workflow could not be saved. The workflow variable "{0}" for the task "{1}" cannot be used to save the participant details. The workflow variable must be of USER_GROUP data type. Check the model and try again. |
400 | 84129 | Changes to the workflow could not be saved. The workflow variable "{0}" for the task "{1}" cannot be used to save the assignee details. The workflow variable must be of USER_GROUP data type and can hold only a single user value. Check the model and try again. |
400 | 84130 | Changes to the workflow could not be saved. The model contains invalid action details for the task "{0}". Check the model and try again. |
400 | 84131 | Changes to the workflow could not be saved. The model contains an invalid workflow variable of USER_GROUP data type "{0}" for the task "{1}". The variable must also define the user selection strategy (USERS, GROUPS, USERS_AND_GROUPS) and whether this variable can support an array of multiple users or groups. Check the model and try again. |
400 | 84132 | Changes to the workflow could not be saved. The model contains an invalid workflow variable of USER_GROUP data type "{0}". The variable must also define the user selection strategy (USERS, GROUPS, USERS_AND_GROUPS) and whether this variable can support an array of multiple users or groups. Check the model and try again. |
400 | 84133 | Changes to the workflow could not be saved. The value "{0}" is invalid for the USER_GROUP workflow variable "{1}" for the task "{2}". The value must be a USER_GROUP JSON string. It can contain only entries that match the variable user selection strategy (USERS, GROUPS, or USERS_AND_GROUPS). If the variable is not set to accept multiple entries, the value can contain only one item. Check the model and try again. |
400 | 84134 | The value "{0}" is invalid for the USER_GROUP variable "{1}" for the task "{2}". The value must be a USER_GROUP JSON string. It can contain only entries that match the variable user selection strategy (USERS, GROUPS, or USERS_AND_GROUPS). If the variable is not set to accept multiple entries, the value can contain only one item. |
400 | 84135 | The JSON string "{0}" cannot be converted to a USER_GROUP object representation as the string is invalid. |
400 | 84136 | The script task "{0}" may have incorrectly updated a workflow variable of USER_GROUP data type. The value of a workflow variable of USER_GROUP data type must be a valid user and/or group. The values of the following workflow variables are invalid: {1} |
400 | 84137 | Changes to the workflow could not be saved. The model contains invalid variable details for the task "{0}". Check the model and try again. |
400 | 84138 | Changes to the workflow could not be saved. The model contains invalid boundary event details for the event that references task "{0}". Check the model and try again. |
400 | 84139 | Changes to the workflow could not be saved. Reason: Entity fields could not be validated or obtained for the process variable for entity "{0}". Check the model and try again. |
400 | 84140 | Changes to the workflow could not be saved. Entity-defined process variables contain an entity field that does not exist in the fields for entity "{0}". Check the model and try again. |
400 | 84141 | Changes to the workflow could not be saved. Reason: Task "{0}" references an entity field "{1}" that does not exist in the entity. Check the model and try again. |
400 | 84142 | Changes to the workflow could not be saved. The task "{0}" references an entity field "{1}" that either does not exist in the entity or cannot be edited. The entity field must exist in the entity and cannot be a primary key, auto-generated, or reserved for the system. Check the model and try again. |
400 | 84143 | Changes to the workflow could not be saved. The page prompt details are missing for task "{0}", action "{1}". |
400 | 84144 | Changes to the workflow could not be saved. The user task "{0}" requires that at least one participant be provided. Check the model and try again. |
400 | 84145 | "Changes to the workflow could not be saved. The user task "{0}" has values for both participant properties. Either provide a list of users and groups or specify a workflow variable that contains the list of users and groups to use for authorization. Check the model and try again. |
400 | 84146 | Changes to the workflow could not be saved. The gateway sequence flow "{0}" specifies more than one condition as a default where no condition is defined. A gateway must specify a single sequence flow as a default. All other sequence flows must specify a condition. Check the model and try again. |
400 | 84147 | Changes to the workflow could not be saved. There is only one gateway sequence flow "{0}" and it has a condition specified. If a gateway has only one sequence flow, then it must be specified as a default condition where no condition is defined. Either remove the condition from the sequence flow or create another sequence flow with a condition. Check the model and try again. |
400 | 84148 | Changes to the workflow could not be saved. There is a script task that contains an embedded XML string. Remove the XML from the script and try again. |
500 | 84149 | The new workflow process could not be added for the process with the ID "{0}". |
500 | 84150 | The display label could not be updated for the following entity instance: ID "{0}", entity ID "{1}", entity name "{2}". |
500 | 84151 | The display label could not be updated for the following entity instance: ID "{0}", process ID "{1}". |
500 | 84152 | The workflow details for the entity ID "{0}" could not be deleted. |
500 | 84153 | The workflow details for the workflow ID "{0}" could not be deleted. |
500 | 84154 | The workflow processes for the entity ID "{0}" could not be deleted. |
500 | 84155 | The workflow processes for the workflow ID "{0}" could not be deleted. |
500 | 84156 | The workflow task actions for the workflow ID "{0}" could not be deleted. |
400 | 84157 | Changes to the workflow could not be saved. The XML model contains a generic "bpmn:task" annotation. Tasks must clearly specify the user, service, or script type of the task. Check the model and try again. |
400 | 84158 | Changes to the workflow could not be saved. The XML model is missing a START node or an END node. Check the model and try again. |
500 | 84159 | An unexpected error occurred while building the service task "{0}". The workflow definition could not be saved. Contact your system administrator. |
400 | 84160 | Changes to the workflow could not be saved. The service task "{0}" does not specify an HTTP method. Specify "GET", "POST", "PUT", or "DELETE" and try again. |
400 | 84161 | Changes to the workflow could not be saved. The service task "{0}" has an invalid value "{1}" specified for its method parameter. Specify "GET", "POST", "PUT", or "DELETE" and try again. |
400 | 84162 | Changes to the workflow could not be saved. The service task "{0}" has an invalid value for its method parameter. Specify "GET", "POST", "PUT", or "DELETE" and try again. |
400 | 84163 | Changes to the workflow could not be saved. The service task "{0}" does not specify a REST URL. Specify a REST URL and try again. |
400 | 84164 | Changes to the workflow could not be saved. The service task "{0}" has an invalid value "{1}" for its URL template. Change this value to a string and try again. |
400 | 84165 | Changes to the workflow could not be saved. The service task "{0}" has a blank REST URL, which is not allowed. Provide a value for the REST URL and try again. |
400 | 84166 | Changes to the workflow could not be saved. The service task "{0}" has an invalid value for its REST URL parameters. Correct this issue and try again. |
400 | 84167 | Changes to the workflow could not be saved. The service task "{0}" has a blank request body, which is not allowed. Provide a value for the request body and try again. |
400 | 84168 | Changes to the workflow could not be saved. The service task "{0}" has an invalid request body. The request body must be a string property that supports JSON format. Update the request body content and try again. |
400 | 84169 | Changes to the workflow could not be saved. The service task "{0}" has an invalid request body. The request body must be in JSON format. Update the request body content and try again. |
400 | 84170 | Changes to the workflow could not be saved. The service task "{0}" specifies an invalid value in its mapping of response fields to workflow variables. Correct this issue and try again. |
400 | 84171 | Changes to the workflow could not be saved. The URL template that was specified for the service task "{0}" contains references to URL parameters not specified in the URL template parameters. Correct this issue and try again. |
400 | 84172 | Changes to the workflow could not be saved. The URL template parameters that were specified for the service task "{0}" contain references to URL parameters that are not specified in the URL template. Correct this issue and try again. |
400 | 84173 | Changes to the workflow could not be saved. The service task "{0}" is missing a value for field "{1}" in response-mapping property. |
400 | 84174 | Changes to the workflow could not be saved. The service task "{0}" writes to the workflow variable "{1}" (type "{2}"), which is not supported. Correct this issue and try again. |
500 | 84175 | The list data could not be retrieved. Reason: {0} |
500 | 84176 | The map data could not be retrieved. Reason: {0} |
500 | 84177 | Unable to retrieve data. Reason: {0} |
500 | 84178 | The URI could not be created. |
500 | 84179 | The HTTP GET method returned an error. Status Code: {0} |
500 | 84180 | The REST GET method returned an error. |
401 | 84181 | You do not have permission to perform this action. |
500 | 84182 | The script task failed. Reason: {0} |
400 | 84183 | The service task "{0}" failed. The remote call was unsuccessful. Contact your system administrator. Reason: The client request is invalid. |
400 | 84184 | The service task "{0}" failed. The remote call was unsuccessful. Contact your system administrator. Reason: The requested method "{1}" is not supported for the URL "{2}". |
500 | 84185 | The service task "{0}" failed. The remote call was unsuccessful. Contact your system administrator. Reason: You do not have permission to perform this action. |
500 | 84186 | The service task "{0}" failed. The remote call was unsuccessful. Contact your system administrator. Reason: The server could not find the resource. |
500 | 84187 | The service task "{0}" failed. The remote call was unsuccessful. Contact your system administrator. |
500 | 84188 | The service task "{0}" failed. The remote call was unsuccessful. Contact your system administrator. Reason: {1} |
500 | 84189 | The service task "{0}" failed. The remote call was successful, but the expected response data was not returned. Contact your system administrator. |
500 | 84190 | The service task "{0}" failed. The REST call was successful but the value of the JSON field "{1}" is not compatible to its mapped workflow variable "{2}". The workflow variable "{2}" expects a value of data type "{3}". Contact your system administrator. |
500 | 84191 | The service task "{0}" failed. The REST call was successful but the value of the JSON field "{1}" is not compatible to its mapped workflow variable "{2}". The workflow variable "{2}" expects a value of data type "{3}" (userSelectionStrategy "{4}", multiSelection "{5}"). Contact your system administrator. |
500 | 84192 | The service task "{0}" was successful, but the response to the REST call caused an error. Reason: An attempt was made to update a JSON workflow variable, which is not supported. Contact your system administrator. |
400 | 84193 | Attempting to update stale data. Refresh the workflow resource and try again. |
Operations
Workflows
Endpoints to manage workflow templates.
Get the headers for the workflow definitions
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /
Returns the headers for the workflow definitions.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | The request was invalid. | errorResponse |
Get a list of workflow definitions
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/ \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /
Retrieves a list of the latest workflow definitions. The returned items are of type application/vnd.sas.investigation.workflow.workflow+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Example responses
A list of active workflow templates
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows",
"uri": "/workflows",
"type": "application/vnd.sas.collection+json"
},
{
"method": "POST",
"rel": "create",
"href": "/workflows",
"uri": "/workflows",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"name": "workflows",
"accept": "application/vnd.sas.investigation.workflow.workflow",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/workflows/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"uri": "/workflows/workflows/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/workflows/workflows/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"uri": "/workflows/workflows/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 2,
"entityId": 100832,
"entityName": "Test",
"entityLabel": "Test Entity",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"id": "Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"labelResource": "svi.workflow.Test.1698282006259.label.txt",
"descriptionResource": "svi.workflow.Test.1698282006259.description.txt",
"graphicalModel": "{\"linkFromPortIdProperty\":\"fromPort\",\"linkToPortIdProperty\":\"toPort\",\"modelData\":{\"version\":10.21,\"entityIdsUpdated\":true},\"nodeDataArray\":[{\"key\":\"StartEvent1698281985717\",\"category\":\"event\",\"text\":\"Start\",\"textResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717.name.txt\",\"item\":\"StartEvent\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717.description.txt\",\"entityFieldVariables\":[],\"loc\":\"0 0\",\"taskActions\":[],\"gateway\":false},{\"key\":\"UserTask1698281989094\",\"category\":\"activity\",\"text\":\"User Task\",\"textResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.name.txt\",\"item\":\"UserTask\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.description.txt\",\"participants\":[{\"id\":\"sviusrs\",\"type\":\"group\",\"name\":\"sviusrs\"}],\"loc\":\"0 102.5\",\"size\":{\"width\":200,\"height\":70},\"taskActions\":[{\"id\":\"taskOption1698281989095\",\"name\":\"Completed\",\"processVariables\":[],\"entityFieldVariables\":[],\"nameResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.action.taskOption1698281989095.name.txt\",\"value\":\"taskOption1698281989095\"}],\"stopOnFailure\":true,\"gateway\":false},{\"key\":\"EndEvent1698281990910\",\"category\":\"event\",\"text\":\"End\",\"textResource\":\"svi.workflow.Test.1698282006259.EndEvent1698281990910.name.txt\",\"item\":\"EndEvent\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.EndEvent1698281990910.description.txt\",\"loc\":\"-0.5 217\",\"taskActions\":[],\"stopOnFailure\":true,\"gateway\":false}],\"linkDataArray\":[{\"from\":\"StartEvent1698281985717\",\"to\":\"UserTask1698281989094\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,21,0,51,0,51,0,38,0,38,0,68],\"text\":\"\",\"textResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.name.txt\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.description.txt\"},{\"from\":\"UserTask1698281989094\",\"to\":\"EndEvent1698281990910\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,136,0,166,0,166,0,164,0,164,0,194],\"text\":\"\",\"textResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.name.txt\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.description.txt\"}],\"class\":\"go.GraphLinksModel\"}",
"resourceStrings": {
"svi.workflow.Test.1698282006259.EndEvent1698281990910.description.txt": "",
"svi.workflow.Test.1698282006259.EndEvent1698281990910.name.txt": "End",
"svi.workflow.Test.1698282006259.StartEvent1698281985717.description.txt": "",
"svi.workflow.Test.1698282006259.StartEvent1698281985717.name.txt": "Start",
"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.description.txt": "",
"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.name.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094.action.taskOption1698281989095.name.txt": "Completed",
"svi.workflow.Test.1698282006259.UserTask1698281989094.description.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094.name.txt": "User Task",
"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.description.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.name.txt": "",
"svi.workflow.Test.1698282006259.description.txt": "",
"svi.workflow.Test.1698282006259.label.txt": "Test Workflow"
},
"enabled": true,
"useForAutoStart": true,
"autoStartOrder": 1,
"createdAt": "2023-10-26T01:00:06.790Z",
"createdBy": "videmo",
"lastUpdatedAt": "2023-10-26T01:00:06.790Z",
"lastUpdatedBy": "videmo",
"publishCode": "OPEN",
"name": "Test_workflow_1",
"label": "Test Workflow",
"workflowVersion": 1
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows",
"uri": "/workflows",
"type": "application/vnd.sas.collection+json"
},
{
"method": "POST",
"rel": "create",
"href": "/workflows",
"uri": "/workflows",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"name": "workflows",
"accept": "application/vnd.sas.investigation.workflow.workflow",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/workflows/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"uri": "/workflows/workflows/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/workflows/workflows/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"uri": "/workflows/workflows/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 2,
"entityId": 100832,
"entityName": "Test",
"entityLabel": "Test Entity",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"id": "Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"labelResource": "svi.workflow.Test.1698282006259.label.txt",
"descriptionResource": "svi.workflow.Test.1698282006259.description.txt",
"graphicalModel": "{\"linkFromPortIdProperty\":\"fromPort\",\"linkToPortIdProperty\":\"toPort\",\"modelData\":{\"version\":10.21,\"entityIdsUpdated\":true},\"nodeDataArray\":[{\"key\":\"StartEvent1698281985717\",\"category\":\"event\",\"text\":\"Start\",\"textResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717.name.txt\",\"item\":\"StartEvent\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717.description.txt\",\"entityFieldVariables\":[],\"loc\":\"0 0\",\"taskActions\":[],\"gateway\":false},{\"key\":\"UserTask1698281989094\",\"category\":\"activity\",\"text\":\"User Task\",\"textResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.name.txt\",\"item\":\"UserTask\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.description.txt\",\"participants\":[{\"id\":\"sviusrs\",\"type\":\"group\",\"name\":\"sviusrs\"}],\"loc\":\"0 102.5\",\"size\":{\"width\":200,\"height\":70},\"taskActions\":[{\"id\":\"taskOption1698281989095\",\"name\":\"Completed\",\"processVariables\":[],\"entityFieldVariables\":[],\"nameResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.action.taskOption1698281989095.name.txt\",\"value\":\"taskOption1698281989095\"}],\"stopOnFailure\":true,\"gateway\":false},{\"key\":\"EndEvent1698281990910\",\"category\":\"event\",\"text\":\"End\",\"textResource\":\"svi.workflow.Test.1698282006259.EndEvent1698281990910.name.txt\",\"item\":\"EndEvent\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.EndEvent1698281990910.description.txt\",\"loc\":\"-0.5 217\",\"taskActions\":[],\"stopOnFailure\":true,\"gateway\":false}],\"linkDataArray\":[{\"from\":\"StartEvent1698281985717\",\"to\":\"UserTask1698281989094\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,21,0,51,0,51,0,38,0,38,0,68],\"text\":\"\",\"textResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.name.txt\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.description.txt\"},{\"from\":\"UserTask1698281989094\",\"to\":\"EndEvent1698281990910\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,136,0,166,0,166,0,164,0,164,0,194],\"text\":\"\",\"textResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.name.txt\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.description.txt\"}],\"class\":\"go.GraphLinksModel\"}",
"resourceStrings": {
"svi.workflow.Test.1698282006259.EndEvent1698281990910.description.txt": "",
"svi.workflow.Test.1698282006259.EndEvent1698281990910.name.txt": "End",
"svi.workflow.Test.1698282006259.StartEvent1698281985717.description.txt": "",
"svi.workflow.Test.1698282006259.StartEvent1698281985717.name.txt": "Start",
"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.description.txt": "",
"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.name.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094.action.taskOption1698281989095.name.txt": "Completed",
"svi.workflow.Test.1698282006259.UserTask1698281989094.description.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094.name.txt": "User Task",
"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.description.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.name.txt": "",
"svi.workflow.Test.1698282006259.description.txt": "",
"svi.workflow.Test.1698282006259.label.txt": "Test Workflow"
},
"enabled": true,
"useForAutoStart": true,
"autoStartOrder": 1,
"createdAt": "2023-10-26T01:00:06.790Z",
"createdBy": "videmo",
"lastUpdatedAt": "2023-10-26T01:00:06.790Z",
"lastUpdatedBy": "videmo",
"publishCode": "OPEN",
"name": "Test_workflow_1",
"label": "Test Workflow",
"workflowVersion": 1
}
],
"limit": 1,
"version": 2
}
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowRepResourceCollection |
400 | Bad Request | The request was invalid. | error2 |
Get the headers for all versions of the workflow definitions
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/revisions
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/revisions',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/revisions')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/revisions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /revisions
Returns the headers for all versions of the workflow definitions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | The request was invalid. | errorResponse |
Get a list of all versions of the workflow definitions
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/revisions \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/revisions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/revisions', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/revisions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /revisions
Retrieves a list of all versions of the workflow definitions. The returned items are of type application/vnd.sas.investigation.workflow.workflow+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Example responses
A list of all revisions of workflow templates.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/revisions",
"uri": "/workflows/revisions",
"type": "application/vnd.sas.collection+json"
},
{
"method": "POST",
"rel": "create",
"href": "/workflows",
"uri": "/workflows",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"name": "workflows",
"accept": "application/vnd.sas.investigation.workflow.workflow",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/revisions/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"uri": "/workflows/revisions/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 2,
"entityId": 100832,
"entityName": "Test",
"entityLabel": "Test Entity",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"id": "Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"labelResource": "svi.workflow.Test.1698282006259.label.txt",
"descriptionResource": "svi.workflow.Test.1698282006259.description.txt",
"graphicalModel": "{\"linkFromPortIdProperty\":\"fromPort\",\"linkToPortIdProperty\":\"toPort\",\"modelData\":{\"version\":10.21,\"entityIdsUpdated\":true},\"nodeDataArray\":[{\"key\":\"StartEvent1698281985717\",\"category\":\"event\",\"text\":\"Start\",\"textResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717.name.txt\",\"item\":\"StartEvent\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717.description.txt\",\"entityFieldVariables\":[],\"loc\":\"0 0\",\"taskActions\":[],\"gateway\":false},{\"key\":\"UserTask1698281989094\",\"category\":\"activity\",\"text\":\"User Task\",\"textResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.name.txt\",\"item\":\"UserTask\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.description.txt\",\"participants\":[{\"id\":\"sviusrs\",\"type\":\"group\",\"name\":\"sviusrs\"}],\"loc\":\"0 102.5\",\"size\":{\"width\":200,\"height\":70},\"taskActions\":[{\"id\":\"taskOption1698281989095\",\"name\":\"Completed\",\"processVariables\":[],\"entityFieldVariables\":[],\"nameResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.action.taskOption1698281989095.name.txt\",\"value\":\"taskOption1698281989095\"}],\"stopOnFailure\":true,\"gateway\":false},{\"key\":\"EndEvent1698281990910\",\"category\":\"event\",\"text\":\"End\",\"textResource\":\"svi.workflow.Test.1698282006259.EndEvent1698281990910.name.txt\",\"item\":\"EndEvent\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.EndEvent1698281990910.description.txt\",\"loc\":\"-0.5 217\",\"taskActions\":[],\"stopOnFailure\":true,\"gateway\":false}],\"linkDataArray\":[{\"from\":\"StartEvent1698281985717\",\"to\":\"UserTask1698281989094\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,21,0,51,0,51,0,38,0,38,0,68],\"text\":\"\",\"textResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.name.txt\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.description.txt\"},{\"from\":\"UserTask1698281989094\",\"to\":\"EndEvent1698281990910\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,136,0,166,0,166,0,164,0,164,0,194],\"text\":\"\",\"textResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.name.txt\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.description.txt\"}],\"class\":\"go.GraphLinksModel\"}",
"resourceStrings": {
"svi.workflow.Test.1698282006259.EndEvent1698281990910.description.txt": "",
"svi.workflow.Test.1698282006259.EndEvent1698281990910.name.txt": "End",
"svi.workflow.Test.1698282006259.StartEvent1698281985717.description.txt": "",
"svi.workflow.Test.1698282006259.StartEvent1698281985717.name.txt": "Start",
"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.description.txt": "",
"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.name.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094.action.taskOption1698281989095.name.txt": "Completed",
"svi.workflow.Test.1698282006259.UserTask1698281989094.description.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094.name.txt": "User Task",
"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.description.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.name.txt": "",
"svi.workflow.Test.1698282006259.description.txt": "",
"svi.workflow.Test.1698282006259.label.txt": "Test Workflow"
},
"enabled": true,
"useForAutoStart": true,
"autoStartOrder": 1,
"createdAt": "2023-10-26T01:00:06.790Z",
"createdBy": "videmo",
"lastUpdatedAt": "2023-10-26T01:00:06.790Z",
"lastUpdatedBy": "videmo",
"publishCode": "OPEN",
"name": "Test_workflow_1",
"label": "Test Workflow",
"workflowVersion": 1
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/revisions",
"uri": "/workflows/revisions",
"type": "application/vnd.sas.collection+json"
},
{
"method": "POST",
"rel": "create",
"href": "/workflows",
"uri": "/workflows",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"name": "workflows",
"accept": "application/vnd.sas.investigation.workflow.workflow",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/revisions/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"uri": "/workflows/revisions/Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 2,
"entityId": 100832,
"entityName": "Test",
"entityLabel": "Test Entity",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"id": "Test_workflow_1:1:00e4e535-739b-11ee-a8bf-0242ac11001f",
"labelResource": "svi.workflow.Test.1698282006259.label.txt",
"descriptionResource": "svi.workflow.Test.1698282006259.description.txt",
"graphicalModel": "{\"linkFromPortIdProperty\":\"fromPort\",\"linkToPortIdProperty\":\"toPort\",\"modelData\":{\"version\":10.21,\"entityIdsUpdated\":true},\"nodeDataArray\":[{\"key\":\"StartEvent1698281985717\",\"category\":\"event\",\"text\":\"Start\",\"textResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717.name.txt\",\"item\":\"StartEvent\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717.description.txt\",\"entityFieldVariables\":[],\"loc\":\"0 0\",\"taskActions\":[],\"gateway\":false},{\"key\":\"UserTask1698281989094\",\"category\":\"activity\",\"text\":\"User Task\",\"textResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.name.txt\",\"item\":\"UserTask\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.description.txt\",\"participants\":[{\"id\":\"sviusrs\",\"type\":\"group\",\"name\":\"sviusrs\"}],\"loc\":\"0 102.5\",\"size\":{\"width\":200,\"height\":70},\"taskActions\":[{\"id\":\"taskOption1698281989095\",\"name\":\"Completed\",\"processVariables\":[],\"entityFieldVariables\":[],\"nameResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094.action.taskOption1698281989095.name.txt\",\"value\":\"taskOption1698281989095\"}],\"stopOnFailure\":true,\"gateway\":false},{\"key\":\"EndEvent1698281990910\",\"category\":\"event\",\"text\":\"End\",\"textResource\":\"svi.workflow.Test.1698282006259.EndEvent1698281990910.name.txt\",\"item\":\"EndEvent\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.EndEvent1698281990910.description.txt\",\"loc\":\"-0.5 217\",\"taskActions\":[],\"stopOnFailure\":true,\"gateway\":false}],\"linkDataArray\":[{\"from\":\"StartEvent1698281985717\",\"to\":\"UserTask1698281989094\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,21,0,51,0,51,0,38,0,38,0,68],\"text\":\"\",\"textResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.name.txt\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.description.txt\"},{\"from\":\"UserTask1698281989094\",\"to\":\"EndEvent1698281990910\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,136,0,166,0,166,0,164,0,164,0,194],\"text\":\"\",\"textResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.name.txt\",\"descriptionResource\":\"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.description.txt\"}],\"class\":\"go.GraphLinksModel\"}",
"resourceStrings": {
"svi.workflow.Test.1698282006259.EndEvent1698281990910.description.txt": "",
"svi.workflow.Test.1698282006259.EndEvent1698281990910.name.txt": "End",
"svi.workflow.Test.1698282006259.StartEvent1698281985717.description.txt": "",
"svi.workflow.Test.1698282006259.StartEvent1698281985717.name.txt": "Start",
"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.description.txt": "",
"svi.workflow.Test.1698282006259.StartEvent1698281985717_UserTask1698281989094.name.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094.action.taskOption1698281989095.name.txt": "Completed",
"svi.workflow.Test.1698282006259.UserTask1698281989094.description.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094.name.txt": "User Task",
"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.description.txt": "",
"svi.workflow.Test.1698282006259.UserTask1698281989094_EndEvent1698281990910.name.txt": "",
"svi.workflow.Test.1698282006259.description.txt": "",
"svi.workflow.Test.1698282006259.label.txt": "Test Workflow"
},
"enabled": true,
"useForAutoStart": true,
"autoStartOrder": 1,
"createdAt": "2023-10-26T01:00:06.790Z",
"createdBy": "videmo",
"lastUpdatedAt": "2023-10-26T01:00:06.790Z",
"lastUpdatedBy": "videmo",
"publishCode": "OPEN",
"name": "Test_workflow_1",
"label": "Test Workflow",
"workflowVersion": 1
}
],
"limit": 1,
"version": 2
}
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowRepResourceCollection |
400 | Bad Request | The request was invalid. | error2 |
Get the headers for the specified workflow definition
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/workflows/{workflowId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/workflows/{workflowId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/workflows/{workflowId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/workflows/{workflowId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /workflows/{workflowId}
Returns the headers for the specified workflow definition
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow definition. |
includeXMLModel | query | boolean | false | Includes the generated BPMN model. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | No workflow definition exists at the requested path. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | integer | int64 | The time at which this resource was last updated. |
Get the details for the specified workflow definition
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/workflows/{workflowId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.investigation.workflow.workflow+json'
const headers = {
'Accept':'application/vnd.sas.investigation.workflow.workflow+json'
};
fetch('https://example.com/workflows/workflows/{workflowId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.investigation.workflow.workflow+json'
}
r = requests.get('https://example.com/workflows/workflows/{workflowId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.investigation.workflow.workflow+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/workflows/{workflowId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /workflows/{workflowId}
Retrieves the details for the specified workflow definition.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow definition. |
includeXMLModel | query | boolean | false | Includes the generated BPMN model. |
Example responses
This provides the details of the workflow template.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"uri": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
},
{
"method": "PUT",
"rel": "create new version",
"href": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"uri": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 1,
"entityId": 100515,
"entityName": "intel_report",
"entityLabel": "Intel Report",
"id": "intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"labelResource": "svi.workflow.intel_report.1534937931623.label.txt",
"descriptionResource": "svi.workflow.intel_report.1534937931623.description.txt",
"graphicalModel": "{\"linkFromPortIdProperty\":\"fromPort\",\"linkToPortIdProperty\":\"toPort\",\"modelData\":{\"version\":10.21,\"entityIdsUpdated\":true},\"nodeDataArray\":[{\"key\":\"StartEvent1534937812963\",\"category\":\"event\",\"text\":\"Start\",\"textResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963.name.txt\",\"item\":\"StartEvent\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963.description.txt\",\"loc\":\"0 0\"},{\"key\":\"UserTask1534937831345\",\"category\":\"activity\",\"text\":\"User Task\",\"textResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.name.txt\",\"item\":\"UserTask\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.description.txt\",\"participants\":[{\"id\":\"user2\",\"type\":\"USER\",\"name\":\"Test user2\"},{\"id\":\"sviusrs\",\"type\":\"GROUP\",\"name\":\"Visual Investigator Users\"}],\"loc\":\"0.5 105\",\"size\":{\"width\":200,\"height\":70,\"class\":\"go.Size\"},\"taskActions\":[{\"id\":\"taskOption1534937831345\",\"name\":\"Completed\",\"processVariables\":[],\"entityFieldVariables\":[],\"nameResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.action.taskOption1534937831345.name.txt\",\"value\":\"taskOption1534937831345\"}]},{\"key\":\"EndEvent1534937834926\",\"category\":\"event\",\"text\":\"End\",\"textResource\":\"svi.workflow.intel_report.1534937931623.EndEvent1534937834926.name.txt\",\"item\":\"EndEvent\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.EndEvent1534937834926.description.txt\",\"loc\":\"0.5 335\"}],\"linkDataArray\":[{\"from\":\"StartEvent1534937812963\",\"to\":\"UserTask1534937831345\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,25,0,55,0,55,0,42,0,42,0,72],\"text\":\"\",\"textResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963_UserTask1534937831345.name.txt\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963_UserTask1534937831345.description.txt\"},{\"from\":\"UserTask1534937831345\",\"to\":\"EndEvent1534937834926\",\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,137,0,167,0,224,1,224,1,282,1,312],\"textResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345_EndEvent1534937834926.name.txt\",\"key\":\"UserTask1534937831345_EndEvent1534937834926\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345_EndEvent1534937834926.description.txt\"}],\"class\":\"go.GraphLinksModel\"}",
"userDefinedProcessVariables": [
{
"id": "WorkflowVariable1",
"name": "AUTO_ASSIGN_VAR",
"label": "AUTO_ASSIGN_VAR",
"defaultValue": "[{\"id\":\"user2\",\"type\":\"user\"}]",
"type": "USER_GROUP",
"isEntity": false,
"userSelectionStrategy": "USERS",
"allowMultipleSelections": false
},
{
"id": "WorkflowVariable2",
"name": "GET_RUNNING_TASK_USER",
"label": "GET_RUNNING_TASK_USER",
"defaultValue": "[]",
"type": "USER_GROUP",
"isEntity": false,
"userSelectionStrategy": "USERS",
"allowMultipleSelections": false
},
{
"id": "WorkflowVariable3",
"name": "STATUS",
"label": "STATUS",
"defaultValue": "",
"defaultValueResource": "svi.workflow.intel_report.1534937931623.WorkflowVariable3.defaultValue.txt",
"type": "STRING",
"isEntity": false
}
],
"entityDefinedProcessVariables": [
"svi_first_name",
"svi_last_name"
],
"startOnNewEntityInstance": false,
"createAt": "2018-08-22T11:38:52.236Z",
"createBy": "videmo",
"lastUpdateAt": "2018-08-22T11:38:52.236Z",
"lastUpdateBy": "videmo",
"name": "intel_report_workflow",
"label": "Intel Report Workflow",
"workflowVersion": 1
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"uri": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
},
{
"method": "PUT",
"rel": "create new version",
"href": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"uri": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 1,
"entityId": 100515,
"entityName": "intel_report",
"entityLabel": "Intel Report",
"id": "intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"labelResource": "svi.workflow.intel_report.1534937931623.label.txt",
"descriptionResource": "svi.workflow.intel_report.1534937931623.description.txt",
"graphicalModel": "{\"linkFromPortIdProperty\":\"fromPort\",\"linkToPortIdProperty\":\"toPort\",\"modelData\":{\"version\":10.21,\"entityIdsUpdated\":true},\"nodeDataArray\":[{\"key\":\"StartEvent1534937812963\",\"category\":\"event\",\"text\":\"Start\",\"textResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963.name.txt\",\"item\":\"StartEvent\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963.description.txt\",\"loc\":\"0 0\"},{\"key\":\"UserTask1534937831345\",\"category\":\"activity\",\"text\":\"User Task\",\"textResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.name.txt\",\"item\":\"UserTask\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.description.txt\",\"participants\":[{\"id\":\"user2\",\"type\":\"USER\",\"name\":\"Test user2\"},{\"id\":\"sviusrs\",\"type\":\"GROUP\",\"name\":\"Visual Investigator Users\"}],\"loc\":\"0.5 105\",\"size\":{\"width\":200,\"height\":70,\"class\":\"go.Size\"},\"taskActions\":[{\"id\":\"taskOption1534937831345\",\"name\":\"Completed\",\"processVariables\":[],\"entityFieldVariables\":[],\"nameResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.action.taskOption1534937831345.name.txt\",\"value\":\"taskOption1534937831345\"}]},{\"key\":\"EndEvent1534937834926\",\"category\":\"event\",\"text\":\"End\",\"textResource\":\"svi.workflow.intel_report.1534937931623.EndEvent1534937834926.name.txt\",\"item\":\"EndEvent\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.EndEvent1534937834926.description.txt\",\"loc\":\"0.5 335\"}],\"linkDataArray\":[{\"from\":\"StartEvent1534937812963\",\"to\":\"UserTask1534937831345\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,25,0,55,0,55,0,42,0,42,0,72],\"text\":\"\",\"textResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963_UserTask1534937831345.name.txt\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963_UserTask1534937831345.description.txt\"},{\"from\":\"UserTask1534937831345\",\"to\":\"EndEvent1534937834926\",\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,137,0,167,0,224,1,224,1,282,1,312],\"textResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345_EndEvent1534937834926.name.txt\",\"key\":\"UserTask1534937831345_EndEvent1534937834926\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345_EndEvent1534937834926.description.txt\"}],\"class\":\"go.GraphLinksModel\"}",
"userDefinedProcessVariables": [
{
"id": "WorkflowVariable1",
"name": "AUTO_ASSIGN_VAR",
"label": "AUTO_ASSIGN_VAR",
"defaultValue": "[{\"id\":\"user2\",\"type\":\"user\"}]",
"type": "USER_GROUP",
"isEntity": false,
"userSelectionStrategy": "USERS",
"allowMultipleSelections": false
},
{
"id": "WorkflowVariable2",
"name": "GET_RUNNING_TASK_USER",
"label": "GET_RUNNING_TASK_USER",
"defaultValue": "[]",
"type": "USER_GROUP",
"isEntity": false,
"userSelectionStrategy": "USERS",
"allowMultipleSelections": false
},
{
"id": "WorkflowVariable3",
"name": "STATUS",
"label": "STATUS",
"defaultValue": "",
"defaultValueResource": "svi.workflow.intel_report.1534937931623.WorkflowVariable3.defaultValue.txt",
"type": "STRING",
"isEntity": false
}
],
"entityDefinedProcessVariables": [
"svi_first_name",
"svi_last_name"
],
"startOnNewEntityInstance": false,
"createAt": "2018-08-22T11:38:52.236Z",
"createBy": "videmo",
"lastUpdateAt": "2018-08-22T11:38:52.236Z",
"lastUpdateBy": "videmo",
"name": "intel_report_workflow",
"label": "Intel Report Workflow",
"workflowVersion": 1
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowRep |
404 | Not Found | No workflow definition exists at the requested path. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | integer | int64 | The time at which this resource was last updated. |
Delete a workflow definition
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/workflows/{workflowId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/workflows/{workflowId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.delete('https://example.com/workflows/workflows/{workflowId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/workflows/{workflowId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /workflows/{workflowId}
Deletes a workflow definition.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow definition. |
Example responses
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The deletion was successful. | None |
404 | Not Found | No workflow definition exists at the requested path. | error2 |
Update an existing workflow definition
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/workflows/{workflowId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.workflow+json' \
-H 'Accept: application/vnd.sas.investigation.workflow.workflow+json' \
-H 'Content-Type: string' \
-H 'If-Unmodified-Since: 0'
const inputBody = '{
"id": "intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"label": "Intel Report Update",
"description": "",
"solutionName": "sas_visual_investigator_default",
"enabled": false,
"useForAutoStart": false
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.workflow+json',
'Accept':'application/vnd.sas.investigation.workflow.workflow+json',
'Content-Type':'string',
'If-Unmodified-Since':'0'
};
fetch('https://example.com/workflows/workflows/{workflowId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.workflow+json',
'Accept': 'application/vnd.sas.investigation.workflow.workflow+json',
'Content-Type': 'string',
'If-Unmodified-Since': '0'
}
r = requests.put('https://example.com/workflows/workflows/{workflowId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.workflow+json"},
"Accept": []string{"application/vnd.sas.investigation.workflow.workflow+json"},
"Content-Type": []string{"string"},
"If-Unmodified-Since": []string{"0"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/workflows/{workflowId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /workflows/{workflowId}
Updates an existing workflow definition. When a workflow is updated, a new version of the workflow definition is created. This ensures that existing processes working tasks against the previous versions of this workflow have access to the data needed and can continue. A workflow is not versioned if the updated properties are shared by all workflow versions (label, description, enabled, and useForAutoStart).
Body parameter
Update the workflow template.
{
"id": "intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"label": "Intel Report Update",
"description": "",
"solutionName": "sas_visual_investigator_default",
"enabled": false,
"useForAutoStart": false
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow. |
Content-Type | header | string | false | The version of the workflow in the body. |
If-Unmodified-Since | header | integer(int64) | false | The time at which this workflow definition was last modified. |
body | body | workflowRep | true | The representation of the workflow definition. |
Example responses
This provides the details of the workflow template.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"uri": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
},
{
"method": "PUT",
"rel": "create new version",
"href": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"uri": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 1,
"entityId": 100515,
"entityName": "intel_report",
"entityLabel": "Intel Report",
"id": "intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"labelResource": "svi.workflow.intel_report.1534937931623.label.txt",
"descriptionResource": "svi.workflow.intel_report.1534937931623.description.txt",
"graphicalModel": "{\"linkFromPortIdProperty\":\"fromPort\",\"linkToPortIdProperty\":\"toPort\",\"modelData\":{\"version\":10.21,\"entityIdsUpdated\":true},\"nodeDataArray\":[{\"key\":\"StartEvent1534937812963\",\"category\":\"event\",\"text\":\"Start\",\"textResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963.name.txt\",\"item\":\"StartEvent\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963.description.txt\",\"loc\":\"0 0\"},{\"key\":\"UserTask1534937831345\",\"category\":\"activity\",\"text\":\"User Task\",\"textResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.name.txt\",\"item\":\"UserTask\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.description.txt\",\"participants\":[{\"id\":\"user2\",\"type\":\"USER\",\"name\":\"Test user2\"},{\"id\":\"sviusrs\",\"type\":\"GROUP\",\"name\":\"Visual Investigator Users\"}],\"loc\":\"0.5 105\",\"size\":{\"width\":200,\"height\":70,\"class\":\"go.Size\"},\"taskActions\":[{\"id\":\"taskOption1534937831345\",\"name\":\"Completed\",\"processVariables\":[],\"entityFieldVariables\":[],\"nameResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.action.taskOption1534937831345.name.txt\",\"value\":\"taskOption1534937831345\"}]},{\"key\":\"EndEvent1534937834926\",\"category\":\"event\",\"text\":\"End\",\"textResource\":\"svi.workflow.intel_report.1534937931623.EndEvent1534937834926.name.txt\",\"item\":\"EndEvent\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.EndEvent1534937834926.description.txt\",\"loc\":\"0.5 335\"}],\"linkDataArray\":[{\"from\":\"StartEvent1534937812963\",\"to\":\"UserTask1534937831345\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,25,0,55,0,55,0,42,0,42,0,72],\"text\":\"\",\"textResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963_UserTask1534937831345.name.txt\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963_UserTask1534937831345.description.txt\"},{\"from\":\"UserTask1534937831345\",\"to\":\"EndEvent1534937834926\",\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,137,0,167,0,224,1,224,1,282,1,312],\"textResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345_EndEvent1534937834926.name.txt\",\"key\":\"UserTask1534937831345_EndEvent1534937834926\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345_EndEvent1534937834926.description.txt\"}],\"class\":\"go.GraphLinksModel\"}",
"userDefinedProcessVariables": [
{
"id": "WorkflowVariable1",
"name": "AUTO_ASSIGN_VAR",
"label": "AUTO_ASSIGN_VAR",
"defaultValue": "[{\"id\":\"user2\",\"type\":\"user\"}]",
"type": "USER_GROUP",
"isEntity": false,
"userSelectionStrategy": "USERS",
"allowMultipleSelections": false
},
{
"id": "WorkflowVariable2",
"name": "GET_RUNNING_TASK_USER",
"label": "GET_RUNNING_TASK_USER",
"defaultValue": "[]",
"type": "USER_GROUP",
"isEntity": false,
"userSelectionStrategy": "USERS",
"allowMultipleSelections": false
},
{
"id": "WorkflowVariable3",
"name": "STATUS",
"label": "STATUS",
"defaultValue": "",
"defaultValueResource": "svi.workflow.intel_report.1534937931623.WorkflowVariable3.defaultValue.txt",
"type": "STRING",
"isEntity": false
}
],
"entityDefinedProcessVariables": [
"svi_first_name",
"svi_last_name"
],
"startOnNewEntityInstance": false,
"createAt": "2018-08-22T11:38:52.236Z",
"createBy": "videmo",
"lastUpdateAt": "2018-08-22T11:38:52.236Z",
"lastUpdateBy": "videmo",
"name": "intel_report_workflow",
"label": "Intel Report Workflow",
"workflowVersion": 1
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"uri": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
},
{
"method": "PUT",
"rel": "create new version",
"href": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"uri": "/workflows/workflows/intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 1,
"entityId": 100515,
"entityName": "intel_report",
"entityLabel": "Intel Report",
"id": "intel_report_workflow:1:f17ee9e4-a5ff-11e8-9397-0242ac110013",
"labelResource": "svi.workflow.intel_report.1534937931623.label.txt",
"descriptionResource": "svi.workflow.intel_report.1534937931623.description.txt",
"graphicalModel": "{\"linkFromPortIdProperty\":\"fromPort\",\"linkToPortIdProperty\":\"toPort\",\"modelData\":{\"version\":10.21,\"entityIdsUpdated\":true},\"nodeDataArray\":[{\"key\":\"StartEvent1534937812963\",\"category\":\"event\",\"text\":\"Start\",\"textResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963.name.txt\",\"item\":\"StartEvent\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963.description.txt\",\"loc\":\"0 0\"},{\"key\":\"UserTask1534937831345\",\"category\":\"activity\",\"text\":\"User Task\",\"textResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.name.txt\",\"item\":\"UserTask\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.description.txt\",\"participants\":[{\"id\":\"user2\",\"type\":\"USER\",\"name\":\"Test user2\"},{\"id\":\"sviusrs\",\"type\":\"GROUP\",\"name\":\"Visual Investigator Users\"}],\"loc\":\"0.5 105\",\"size\":{\"width\":200,\"height\":70,\"class\":\"go.Size\"},\"taskActions\":[{\"id\":\"taskOption1534937831345\",\"name\":\"Completed\",\"processVariables\":[],\"entityFieldVariables\":[],\"nameResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345.action.taskOption1534937831345.name.txt\",\"value\":\"taskOption1534937831345\"}]},{\"key\":\"EndEvent1534937834926\",\"category\":\"event\",\"text\":\"End\",\"textResource\":\"svi.workflow.intel_report.1534937931623.EndEvent1534937834926.name.txt\",\"item\":\"EndEvent\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.EndEvent1534937834926.description.txt\",\"loc\":\"0.5 335\"}],\"linkDataArray\":[{\"from\":\"StartEvent1534937812963\",\"to\":\"UserTask1534937831345\",\"visible\":true,\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,25,0,55,0,55,0,42,0,42,0,72],\"text\":\"\",\"textResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963_UserTask1534937831345.name.txt\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.StartEvent1534937812963_UserTask1534937831345.description.txt\"},{\"from\":\"UserTask1534937831345\",\"to\":\"EndEvent1534937834926\",\"fromPort\":\"bottomPort\",\"toPort\":\"topPort\",\"points\":[0,137,0,167,0,224,1,224,1,282,1,312],\"textResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345_EndEvent1534937834926.name.txt\",\"key\":\"UserTask1534937831345_EndEvent1534937834926\",\"descriptionResource\":\"svi.workflow.intel_report.1534937931623.UserTask1534937831345_EndEvent1534937834926.description.txt\"}],\"class\":\"go.GraphLinksModel\"}",
"userDefinedProcessVariables": [
{
"id": "WorkflowVariable1",
"name": "AUTO_ASSIGN_VAR",
"label": "AUTO_ASSIGN_VAR",
"defaultValue": "[{\"id\":\"user2\",\"type\":\"user\"}]",
"type": "USER_GROUP",
"isEntity": false,
"userSelectionStrategy": "USERS",
"allowMultipleSelections": false
},
{
"id": "WorkflowVariable2",
"name": "GET_RUNNING_TASK_USER",
"label": "GET_RUNNING_TASK_USER",
"defaultValue": "[]",
"type": "USER_GROUP",
"isEntity": false,
"userSelectionStrategy": "USERS",
"allowMultipleSelections": false
},
{
"id": "WorkflowVariable3",
"name": "STATUS",
"label": "STATUS",
"defaultValue": "",
"defaultValueResource": "svi.workflow.intel_report.1534937931623.WorkflowVariable3.defaultValue.txt",
"type": "STRING",
"isEntity": false
}
],
"entityDefinedProcessVariables": [
"svi_first_name",
"svi_last_name"
],
"startOnNewEntityInstance": false,
"createAt": "2018-08-22T11:38:52.236Z",
"createBy": "videmo",
"lastUpdateAt": "2018-08-22T11:38:52.236Z",
"lastUpdateBy": "videmo",
"name": "intel_report_workflow",
"label": "Intel Report Workflow",
"workflowVersion": 1
}
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a precondition failed.
{
"httpStatusCode": 412,
"message": "example error message",
"version": 2
}
{
"httpStatusCode": 412,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a precondition is required.
{
"httpStatusCode": 428,
"message": "example error message",
"version": 2
}
{
"httpStatusCode": 428,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowRep |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No workflow definition exists at the requested path. | error2 |
412 | Precondition Failed | The If-Match request header did not match the resource's entity tag, or the If-Unmodified-Since request header did not match the resource's last modified timestamp. | error2 |
428 | Precondition Required | The request headers did not include an If-Match or If-Unmodified-Since precondition. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | integer | int64 | The time at which this resource was last updated. |
Delete all workflow definitions for an entity
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/entityName/{entityName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/entityName/{entityName}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.delete('https://example.com/workflows/entityName/{entityName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/entityName/{entityName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /entityName/{entityName}
Deletes all workflow definitions for an entity.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityName | path | string | true | The name of the entity. |
Example responses
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
404 | Not Found | No entity exists at the requested path. | error2 |
Delete all workflow revisions by workflow name
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/name/{name} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/name/{name}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.delete('https://example.com/workflows/name/{name}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/name/{name}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /name/{name}
Deletes all workflow revisions by workflow name.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
name | path | string | true | The name of the workflow. |
Example responses
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
404 | Not Found | No workflow exists at the requested path. | error2 |
Get the headers for a specified workflow definition
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/revisions/{workflowId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/revisions/{workflowId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/revisions/{workflowId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/revisions/{workflowId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /revisions/{workflowId}
Returns the headers for a specified workflow definition
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow definition. |
includeXMLModel | query | boolean | false | Include the generated BPMN model. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful. | None |
404 | Not Found | No workflow definition exists at the requested path. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | integer | int64 | The time at which this workflow definition was last updated. |
Get details for a specified workflow definition
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/revisions/{workflowId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.investigation.workflow.workflow+json'
const headers = {
'Accept':'application/vnd.sas.investigation.workflow.workflow+json'
};
fetch('https://example.com/workflows/revisions/{workflowId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.investigation.workflow.workflow+json'
}
r = requests.get('https://example.com/workflows/revisions/{workflowId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.investigation.workflow.workflow+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/revisions/{workflowId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /revisions/{workflowId}
Retrieves details for a specified workflow definition.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow definition. |
includeXMLModel | query | boolean | false | Include the generated BPMN model. |
Example responses
This provides the details of the workflow template.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/revisions/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"uri": "/svi-datahub/workflows/revisions/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 2,
"entityId": 100909,
"entityName": "intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"entityLabel": "Intelligence Report",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"id": "intel_report_workflow:1:077599fc-30b7-11ee-9b68-c6e83977fdb1",
"labelResource": "svi.workflow.intel_report.1690927313673.label.txt",
"descriptionResource": "svi.workflow.intel_report.1690927313673.description.txt",
"graphicalModel": "{\"class\":\"go.GraphLinksModel\"}",
"enabled": true,
"useForAutoStart": true,
"autoStartOrder": 1,
"createdAt": "2023-08-01T22:01:55.913Z",
"createdBy": "user1",
"lastUpdatedAt": "2023-08-01T22:01:55.913Z",
"lastUpdatedBy": "user",
"publishCode": "OPEN",
"name": "intel_report_workflow",
"label": "Intel Report Workflow",
"workflowVersion": 1
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/revisions/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"uri": "/svi-datahub/workflows/revisions/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"type": "application/vnd.sas.investigation.workflow.workflow",
"responseType": "application/vnd.sas.investigation.workflow.workflow+json"
}
],
"version": 2,
"entityId": 100909,
"entityName": "intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"entityLabel": "Intelligence Report",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"id": "intel_report_workflow:1:077599fc-30b7-11ee-9b68-c6e83977fdb1",
"labelResource": "svi.workflow.intel_report.1690927313673.label.txt",
"descriptionResource": "svi.workflow.intel_report.1690927313673.description.txt",
"graphicalModel": "{\"class\":\"go.GraphLinksModel\"}",
"enabled": true,
"useForAutoStart": true,
"autoStartOrder": 1,
"createdAt": "2023-08-01T22:01:55.913Z",
"createdBy": "user1",
"lastUpdatedAt": "2023-08-01T22:01:55.913Z",
"lastUpdatedBy": "user",
"publishCode": "OPEN",
"name": "intel_report_workflow",
"label": "Intel Report Workflow",
"workflowVersion": 1
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful. | workflowRep |
404 | Not Found | No workflow definition exists at the requested path. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | integer | int64 | The time at which this workflow definition was last updated. |
Start a workflow process
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/workflows/{workflowId}/processes \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.instance.context+json' \
-H 'Accept: application/vnd.sas.collection+json'
const inputBody = '[
{
"entityInstanceId": "c9cea4e9-bc05-42ea-8666-64cedb04804a"
}
]';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.instance.context+json',
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/workflows/{workflowId}/processes',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.instance.context+json',
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.post('https://example.com/workflows/workflows/{workflowId}/processes', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.instance.context+json"},
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/workflows/{workflowId}/processes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /workflows/{workflowId}/processes
Starts a process instance of a workflow definition.
Body parameter
Start workflow processes for the selected entity instances. Both the specified workflow template and the entity instances are related to the same entity.
[
{
"entityInstanceId": "c9cea4e9-bc05-42ea-8666-64cedb04804a"
}
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow process. |
body | body | workflowInstanceContextRep | true | The name of the entity instance. |
Example responses
This is an example response when the workflow processes are started.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.fcs.workflow.workflowProcess"
}
],
"name": "workflowProcesses",
"accept": "application/vnd.sas.investigation.workflow.process",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/suspended",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/resumed",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543"
}
],
"id": "5ef6f52f-a5fa-11e8-9397-0242ac111543"
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.fcs.workflow.workflowProcess"
}
],
"name": "workflowProcesses",
"accept": "application/vnd.sas.investigation.workflow.process",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/suspended",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/resumed",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543"
}
],
"id": "5ef6f52f-a5fa-11e8-9397-0242ac111543"
}
],
"limit": 1,
"version": 2
}
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowProcessRepResourceCollection |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No workflow definition exists at the requested path. | error2 |
Start a workflow definition process instance
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/processes/workflowName/{workflowName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.instance.context+json' \
-H 'Accept: application/vnd.sas.collection+json'
const inputBody = '[
{
"entityInstanceId": "c9cea4e9-bc05-42ea-8666-64cedb04804a"
}
]';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.instance.context+json',
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/processes/workflowName/{workflowName}',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.instance.context+json',
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.post('https://example.com/workflows/processes/workflowName/{workflowName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.instance.context+json"},
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/processes/workflowName/{workflowName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /processes/workflowName/{workflowName}
Starts a workflow definition process instance.
Body parameter
Start workflow processes for the selected entity instances. Both the specified workflow template and the entity instances are related to the same entity.
[
{
"entityInstanceId": "c9cea4e9-bc05-42ea-8666-64cedb04804a"
}
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowName | path | string | true | Filters on the workflow name. |
body | body | workflowInstanceContextRep | true | entityInstances |
Example responses
This is an example response when the workflow processes are started.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.fcs.workflow.workflowProcess"
}
],
"name": "workflowProcesses",
"accept": "application/vnd.sas.investigation.workflow.process",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/suspended",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/resumed",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543"
}
],
"id": "5ef6f52f-a5fa-11e8-9397-0242ac111543"
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.fcs.workflow.workflowProcess"
}
],
"name": "workflowProcesses",
"accept": "application/vnd.sas.investigation.workflow.process",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/suspended",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/resumed",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543",
"uri": "/workflows/processes/processes/5ef6f52f-a5fa-11e8-9397-0242ac111543"
}
],
"id": "5ef6f52f-a5fa-11e8-9397-0242ac111543"
}
],
"limit": 1,
"version": 2
}
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowProcessRepResourceCollection |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No workflow definition exists at the requested path. | error2 |
Processes
Endpoints manage workflow processes.
Get the headers for a list of workflow processes
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/processes')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes
Returns the headers for a list of workflow processes
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful | None |
Get a list of workflow processes
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/processes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/processes', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes
Retrieves a list of workflow processes. The returned items are of type application/vnd.sas.investigation.workflow.process+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Example responses
A list of all workflow processes.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.fcs.workflow.workflowProcess"
}
],
"name": "workflowProcesses",
"accept": "application/vnd.sas.investigation.workflow.process",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/suspended",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/resumed",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001"
}
],
"version": 1,
"entityId": 100513,
"entityName": "intel_report",
"entityLabel": "Intelligence Report",
"workflowDefinitionId": "intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"workflowName": "intel_report_workflow",
"workflowLabel": "Intel Report Workflow",
"workflowLabelResource": "svi.workflow.intel_report.1534446766062.label.txt",
"workflowDescriptionResource": "svi.workflow.intel_report.1534446766062.description.txt",
"workflowVersion": 4,
"entityInstanceId": "7a739103-9d8e-49ab-b8e5-fa120a298c06",
"entityInstanceLabel": "test test",
"id": "5ef6f52f-a5fa-11e8-9397-0242ac110013",
"isSuspended": false,
"lastResumeAt": "2018-08-22T11:12:20.470Z",
"lastResumeBy": "videmo",
"resumeFailed": false,
"lastSuspendAt": "2018-08-22T11:11:16.468Z",
"lastSuspendBy": "videmo",
"suspendFailed": false,
"startBy": "videmo",
"startAt": "2018-08-22T10:58:58.845Z",
"state": "RUNNING"
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.fcs.workflow.workflowProcess"
}
],
"name": "workflowProcesses",
"accept": "application/vnd.sas.investigation.workflow.process",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/suspended",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/resumed",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001"
}
],
"version": 1,
"entityId": 100513,
"entityName": "intel_report",
"entityLabel": "Intelligence Report",
"workflowDefinitionId": "intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"workflowName": "intel_report_workflow",
"workflowLabel": "Intel Report Workflow",
"workflowLabelResource": "svi.workflow.intel_report.1534446766062.label.txt",
"workflowDescriptionResource": "svi.workflow.intel_report.1534446766062.description.txt",
"workflowVersion": 4,
"entityInstanceId": "7a739103-9d8e-49ab-b8e5-fa120a298c06",
"entityInstanceLabel": "test test",
"id": "5ef6f52f-a5fa-11e8-9397-0242ac110013",
"isSuspended": false,
"lastResumeAt": "2018-08-22T11:12:20.470Z",
"lastResumeBy": "videmo",
"resumeFailed": false,
"lastSuspendAt": "2018-08-22T11:11:16.468Z",
"lastSuspendBy": "videmo",
"suspendFailed": false,
"startBy": "videmo",
"startAt": "2018-08-22T10:58:58.845Z",
"state": "RUNNING"
}
],
"limit": 1,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful | workflowProcessRepResourceCollection |
Stop and delete all workflow processes
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/processes
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/workflows/processes')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/processes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /processes
Stops and deletes all workflow processes.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
Get the headers for a list of active workflow processes
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes/actives
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes/actives',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/processes/actives')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes/actives", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes/actives
Returns the headers for a list of active workflow processes.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful | None |
Get a list of active workflow processes
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes/actives \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/processes/actives',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/processes/actives', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes/actives", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes/actives
Retrieves a list of active workflow processes. The returned items are of type application/vnd.sas.investigation.workflow.process+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Example responses
A list of all workflow processes.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.fcs.workflow.workflowProcess"
}
],
"name": "workflowProcesses",
"accept": "application/vnd.sas.investigation.workflow.process",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/suspended",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/resumed",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001"
}
],
"version": 1,
"entityId": 100513,
"entityName": "intel_report",
"entityLabel": "Intelligence Report",
"workflowDefinitionId": "intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"workflowName": "intel_report_workflow",
"workflowLabel": "Intel Report Workflow",
"workflowLabelResource": "svi.workflow.intel_report.1534446766062.label.txt",
"workflowDescriptionResource": "svi.workflow.intel_report.1534446766062.description.txt",
"workflowVersion": 4,
"entityInstanceId": "7a739103-9d8e-49ab-b8e5-fa120a298c06",
"entityInstanceLabel": "test test",
"id": "5ef6f52f-a5fa-11e8-9397-0242ac110013",
"isSuspended": false,
"lastResumeAt": "2018-08-22T11:12:20.470Z",
"lastResumeBy": "videmo",
"resumeFailed": false,
"lastSuspendAt": "2018-08-22T11:11:16.468Z",
"lastSuspendBy": "videmo",
"suspendFailed": false,
"startBy": "videmo",
"startAt": "2018-08-22T10:58:58.845Z",
"state": "RUNNING"
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.fcs.workflow.workflowProcess"
}
],
"name": "workflowProcesses",
"accept": "application/vnd.sas.investigation.workflow.process",
"start": 0,
"count": 1,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/suspended",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/resumed",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001",
"uri": "/workflows/processes/processes/intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac11001"
}
],
"version": 1,
"entityId": 100513,
"entityName": "intel_report",
"entityLabel": "Intelligence Report",
"workflowDefinitionId": "intel_report_workflow:4:4e4bfd6e-a5fa-11e8-9397-0242ac110013",
"workflowName": "intel_report_workflow",
"workflowLabel": "Intel Report Workflow",
"workflowLabelResource": "svi.workflow.intel_report.1534446766062.label.txt",
"workflowDescriptionResource": "svi.workflow.intel_report.1534446766062.description.txt",
"workflowVersion": 4,
"entityInstanceId": "7a739103-9d8e-49ab-b8e5-fa120a298c06",
"entityInstanceLabel": "test test",
"id": "5ef6f52f-a5fa-11e8-9397-0242ac110013",
"isSuspended": false,
"lastResumeAt": "2018-08-22T11:12:20.470Z",
"lastResumeBy": "videmo",
"resumeFailed": false,
"lastSuspendAt": "2018-08-22T11:11:16.468Z",
"lastSuspendBy": "videmo",
"suspendFailed": false,
"startBy": "videmo",
"startAt": "2018-08-22T10:58:58.845Z",
"state": "RUNNING"
}
],
"limit": 1,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful | workflowProcessRepResourceCollection |
Get the headers for specified workflow process
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes/processes/{processId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes/processes/{processId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/processes/processes/{processId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes/processes/{processId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes/processes/{processId}
Returns the headers for the details for a specified workflow process.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
processId | path | string | true | processId |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | No process exists at the requested path. | None |
Get details for specified workflow process
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes/processes/{processId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.investigation.workflow.process+json'
const headers = {
'Accept':'application/vnd.sas.investigation.workflow.process+json'
};
fetch('https://example.com/workflows/processes/processes/{processId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.investigation.workflow.process+json'
}
r = requests.get('https://example.com/workflows/processes/processes/{processId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.investigation.workflow.process+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes/processes/{processId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes/processes/{processId}
Retrieves the details for a specified workflow process.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
processId | path | string | true | processId |
Example responses
Provide details of the workflow process.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f",
"uri": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f/suspended",
"uri": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f/resumed",
"uri": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f",
"uri": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f"
}
],
"version": 1,
"entityId": 100832,
"entityName": "Test",
"entityLabel": "Test Entity",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"workflowDefinitionId": "Test_workflow:3:2e6a0ee9-71d1-11ee-be64-0242ac11001f",
"workflowName": "Test_workflow",
"workflowLabel": "Test Workflow",
"workflowLabelResource": "svi.workflow.Test.1698186261758.label.txt",
"workflowDescriptionResource": "svi.workflow.Test.1698186261758.description.txt",
"workflowVersion": 3,
"entityInstanceId": "3621b37b-d14a-42d3-a823-fda599e6c839",
"entityInstanceLabel": "3621b37b-d14a-42d3-a823-fda599e6c839",
"id": "0009945e-71d3-11ee-be64-0242ac11001f",
"isSuspended": false,
"resumeFailed": false,
"suspendFailed": false,
"startedBy": "videmo",
"startedAt": "2023-10-23T18:35:54.773Z",
"state": "RUNNING"
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f",
"uri": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f",
"type": "application/vnd.sas.investigation.workflow.process",
"responseType": "application/vnd.sas.investigation.workflow.process+json"
},
{
"method": "PUT",
"rel": "suspend",
"href": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f/suspended",
"uri": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f/suspended"
},
{
"method": "PUT",
"rel": "resume",
"href": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f/resumed",
"uri": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f/resumed"
},
{
"method": "DELETE",
"rel": "cancel",
"href": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f",
"uri": "/workflows/processes/processes/0009945e-71d3-11ee-be64-0242ac11001f"
}
],
"version": 1,
"entityId": 100832,
"entityName": "Test",
"entityLabel": "Test Entity",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"workflowDefinitionId": "Test_workflow:3:2e6a0ee9-71d1-11ee-be64-0242ac11001f",
"workflowName": "Test_workflow",
"workflowLabel": "Test Workflow",
"workflowLabelResource": "svi.workflow.Test.1698186261758.label.txt",
"workflowDescriptionResource": "svi.workflow.Test.1698186261758.description.txt",
"workflowVersion": 3,
"entityInstanceId": "3621b37b-d14a-42d3-a823-fda599e6c839",
"entityInstanceLabel": "3621b37b-d14a-42d3-a823-fda599e6c839",
"id": "0009945e-71d3-11ee-be64-0242ac11001f",
"isSuspended": false,
"resumeFailed": false,
"suspendFailed": false,
"startedBy": "videmo",
"startedAt": "2023-10-23T18:35:54.773Z",
"state": "RUNNING"
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowProcessRep |
404 | Not Found | No process exists at the requested path. | error2 |
Delete a workflow process
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/processes/processes/{processId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/processes/{processId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.delete('https://example.com/workflows/processes/processes/{processId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/processes/processes/{processId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /processes/processes/{processId}
Stops and deletes a workflow process.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
processId | path | string | true | processId |
Example responses
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
404 | Not Found | No process exists at the requested path. | error2 |
Suspend a workflow process
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/processes/{processId}/suspended \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/processes/{processId}/suspended',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/processes/{processId}/suspended', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/processes/{processId}/suspended", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/processes/{processId}/suspended
Suspends a workflow process.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
processId | path | string | true | The ID of the process. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No workflow process exists at the requested path. | error2 |
Suspend a selection of the workflow processes
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/processes/suspended \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.selection+json' \
-H 'Accept: application/vnd.sas.error'
const inputBody = '{
"resources": [
"0d5bde1b-cd8c-11e8-9332-f4939fed3251",
"408d6296-d31d-11e8-87d3-f4939fed3251",
"d848bd93-d212-11e8-ba26-f4939fed3251"
]
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.selection+json',
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/suspended',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.selection+json',
'Accept': 'application/vnd.sas.error'
}
r = requests.post('https://example.com/workflows/processes/suspended', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.selection+json"},
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/processes/suspended", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /processes/suspended
Suspends a selection of the workflow processes. This request allows for 100 selections.
Body parameter
Performs a bulk action for the selected processes. These actions can include suspending, resuming, or canceling the processes.
{
"resources": [
"0d5bde1b-cd8c-11e8-9332-f4939fed3251",
"408d6296-d31d-11e8-87d3-f4939fed3251",
"d848bd93-d212-11e8-ba26-f4939fed3251"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | selectionRep | true | selections |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Suspend all workflow processes
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/suspended \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/suspended',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/suspended', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/suspended", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/suspended
Suspends all workflow processes.
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Suspend a workflow process by entity instance ID
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/suspended \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/suspended',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/suspended', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/suspended", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/suspended
Suspends a workflow process by entity instance ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityName | path | string | true | The name of the entity. |
entityInstanceId | path | string | true | The instance ID of the entity. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No entity instance ID exists at the requested path. | error2 |
Suspend all workflow processes for an entity
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/entityName/{entityName}/suspended \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/entityName/{entityName}/suspended',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/entityName/{entityName}/suspended', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/entityName/{entityName}/suspended", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/entityName/{entityName}/suspended
Suspends all workflow processes for an entity.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityName | path | string | true | The name of the entity. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No entity exists at the requested path. | error2 |
Resume a previously suspended workflow process
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/processes/{processId}/resumed \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/processes/{processId}/resumed',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/processes/{processId}/resumed', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/processes/{processId}/resumed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/processes/{processId}/resumed
Resumes a previously suspended workflow process.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
processId | path | string | true | The ID of the process. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No workflow process exists at the requested path. | error2 |
Resume a selection of previously suspended workflow processes
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/processes/resumed \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.selection+json' \
-H 'Accept: application/vnd.sas.error'
const inputBody = '{
"resources": [
"0d5bde1b-cd8c-11e8-9332-f4939fed3251",
"408d6296-d31d-11e8-87d3-f4939fed3251",
"d848bd93-d212-11e8-ba26-f4939fed3251"
]
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.selection+json',
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/resumed',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.selection+json',
'Accept': 'application/vnd.sas.error'
}
r = requests.post('https://example.com/workflows/processes/resumed', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.selection+json"},
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/processes/resumed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /processes/resumed
Resumes a selection of previously suspended workflow processes. This request allows for 100 selections.
Body parameter
Performs a bulk action for the selected processes. These actions can include suspending, resuming, or canceling the processes.
{
"resources": [
"0d5bde1b-cd8c-11e8-9332-f4939fed3251",
"408d6296-d31d-11e8-87d3-f4939fed3251",
"d848bd93-d212-11e8-ba26-f4939fed3251"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | selectionRep | true | selections |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Resume all previously suspended workflow processes
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/resumed \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/resumed',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/resumed', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/resumed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/resumed
Resumes all previously suspended workflow processes.
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Resume a previously suspended workflow process by entity instance ID
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/resumed \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/resumed',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/resumed', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/resumed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}/resumed
Resumes a previously suspended workflow process by entity instance ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityName | path | string | true | The name of the entity. |
entityInstanceId | path | string | true | The instance ID of the entity. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No entity instance ID exists at the requested path. | error2 |
Resume all previously suspended workflow process for an entity
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/entityName/{entityName}/resumed \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/entityName/{entityName}/resumed',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/entityName/{entityName}/resumed', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/entityName/{entityName}/resumed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/entityName/{entityName}/resumed
Resumes all previously suspended workflow process for an entity.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityName | path | string | true | The name of the entity. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Stop and delete a selection of workflow processes
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/processes/cancelled \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.selection+json' \
-H 'Accept: application/vnd.sas.error'
const inputBody = '{
"resources": [
"0d5bde1b-cd8c-11e8-9332-f4939fed3251",
"408d6296-d31d-11e8-87d3-f4939fed3251",
"d848bd93-d212-11e8-ba26-f4939fed3251"
]
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.selection+json',
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/cancelled',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.selection+json',
'Accept': 'application/vnd.sas.error'
}
r = requests.post('https://example.com/workflows/processes/cancelled', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.selection+json"},
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/processes/cancelled", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /processes/cancelled
Stops and deletes a selection of workflow processes. This request allows for 100 selections.
Body parameter
Performs a bulk action for the selected processes. These actions can include suspending, resuming, or canceling the processes.
{
"resources": [
"0d5bde1b-cd8c-11e8-9332-f4939fed3251",
"408d6296-d31d-11e8-87d3-f4939fed3251",
"d848bd93-d212-11e8-ba26-f4939fed3251"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | selectionRep | true | selections |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Stop and delete a workflow process by entity instance ID
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.delete('https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /processes/entityName/{entityName}/entityInstanceId/{entityInstanceId}
Stops and deletes a workflow process by entity instance ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityName | path | string | true | The name of the entity. |
entityInstanceId | path | string | true | The instance ID of the entity. |
Example responses
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
404 | Not Found | No workflow process exists at the requested path. | error2 |
Stop and delete all workflow processes for an entity
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/processes/entityName/{entityName} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/entityName/{entityName}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.delete('https://example.com/workflows/processes/entityName/{entityName}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/processes/entityName/{entityName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /processes/entityName/{entityName}
Stops and deletes all workflow processes for an entity.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entityName | path | string | true | The name of the entity. |
Example responses
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
404 | Not Found | No entity exists at the requested path. | error2 |
Tasks
Endpoints related to workflow tasks.
Get the headers for a list of workflow tasks
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes/tasks \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'VI-Client-Application: desktop'
const headers = {
'VI-Client-Application':'desktop'
};
fetch('https://example.com/workflows/processes/tasks',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'VI-Client-Application': 'desktop'
}
r = requests.head('https://example.com/workflows/processes/tasks', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"VI-Client-Application": []string{"desktop"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes/tasks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes/tasks
Returns the headers for a list of workflow tasks.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
includeOnlyWorkableTasks | query | boolean | false | Returns only the tasks the calling user is allowed to work. |
VI-Client-Application | header | string | false | Indicates which client is issuing the request. Accepted values include desktop and mobile. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Get a list of workflow tasks
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes/tasks \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json' \
-H 'VI-Client-Application: desktop'
const headers = {
'Accept':'application/vnd.sas.collection+json',
'VI-Client-Application':'desktop'
};
fetch('https://example.com/workflows/processes/tasks',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json',
'VI-Client-Application': 'desktop'
}
r = requests.get('https://example.com/workflows/processes/tasks', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
"VI-Client-Application": []string{"desktop"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes/tasks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes/tasks
Retrieves a list of workflow tasks. The returned items are of type application/vnd.sas.investigation.workflow.task+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
includeOnlyWorkableTasks | query | boolean | false | Returns only the tasks the calling user is allowed to work. |
VI-Client-Application | header | string | false | Indicates which client is issuing the request. Accepted values include desktop and mobile. |
Example responses
A list of pending tasks.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/tasks",
"uri": "/svi-datahub/workflows/processes/tasks",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowTasks",
"accept": "application/vnd.sas.investigation.workflow.task",
"start": 0,
"count": 2,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534",
"type": "application/vnd.sas.investigation.workflow.task",
"responseType": "application/vnd.sas.investigation.workflow.task+json"
},
{
"method": "PUT",
"rel": "claim",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimed",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimed",
"type": "application/vnd.sas.investigation.workflow.task"
},
{
"method": "PUT",
"rel": "release",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimReleased",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimReleased"
},
{
"method": "PUT",
"rel": "assign",
"href": "/svi-datahub/workflows/processes/tasks/tasks/%25s/assigned",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/%25s/assigned",
"type": "application/vnd.sas.investigation.workflow.task"
},
{
"method": "PUT",
"rel": "complete",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/completed",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/completed",
"type": "application/vnd.sas.investigation.workflow.action"
}
],
"version": 1,
"entityId": 100932,
"entityName": "TestEntity",
"entityLabel": "Perf Test",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"workflowDefinitionId": "TestEntity_workflow:1:74c5d56f-30da-11ee-9b68-c6e83977fdb1",
"workflowName": "TestEntity_workflow",
"workflowLabel": "Perf Test Workflow",
"workflowLabelResource": "svi.workflow.TestEntity.1690942531204.label.txt",
"workflowDescriptionResource": "svi.workflow.TestEntity.1690942531204.description.txt",
"workflowVersion": 1,
"entityInstanceId": "7b404733-404b-4c03-895e-b3486bef7d4a",
"entityInstanceLabel": "7b404733-404b-4c03-895e-b3486bef7d4a",
"id": "94e54bb5-32d2-11ee-9999-8ae1ba173534",
"name": "Sample User Task",
"definitionId": "UserTask1675090585240",
"assignee": "testUser",
"processInstanceId": "94e4885c-32d2-11ee-9999-8ae1ba173534",
"claimedAt": "2023-08-04T14:46:43.991Z",
"participants": [
{
"id": "sviusrs",
"type": "GROUP",
"name": "sviusrs"
}
],
"isProcessInstanceSuspended": true,
"createdAt": "2023-08-04T14:46:43.991Z",
"actions": [
{
"id": "taskOption1675090585241",
"name": "Completed",
"pagePrompt": {
"defaults": [
{
"id": "dd9fb065-0121-4f9e-b7d3-9a48016e3ea6",
"name": "TestEntityPage"
}
]
}
}
]
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/tasks",
"uri": "/svi-datahub/workflows/processes/tasks",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowTasks",
"accept": "application/vnd.sas.investigation.workflow.task",
"start": 0,
"count": 2,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534",
"type": "application/vnd.sas.investigation.workflow.task",
"responseType": "application/vnd.sas.investigation.workflow.task+json"
},
{
"method": "PUT",
"rel": "claim",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimed",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimed",
"type": "application/vnd.sas.investigation.workflow.task"
},
{
"method": "PUT",
"rel": "release",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimReleased",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimReleased"
},
{
"method": "PUT",
"rel": "assign",
"href": "/svi-datahub/workflows/processes/tasks/tasks/%25s/assigned",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/%25s/assigned",
"type": "application/vnd.sas.investigation.workflow.task"
},
{
"method": "PUT",
"rel": "complete",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/completed",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/completed",
"type": "application/vnd.sas.investigation.workflow.action"
}
],
"version": 1,
"entityId": 100932,
"entityName": "TestEntity",
"entityLabel": "Perf Test",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"workflowDefinitionId": "TestEntity_workflow:1:74c5d56f-30da-11ee-9b68-c6e83977fdb1",
"workflowName": "TestEntity_workflow",
"workflowLabel": "Perf Test Workflow",
"workflowLabelResource": "svi.workflow.TestEntity.1690942531204.label.txt",
"workflowDescriptionResource": "svi.workflow.TestEntity.1690942531204.description.txt",
"workflowVersion": 1,
"entityInstanceId": "7b404733-404b-4c03-895e-b3486bef7d4a",
"entityInstanceLabel": "7b404733-404b-4c03-895e-b3486bef7d4a",
"id": "94e54bb5-32d2-11ee-9999-8ae1ba173534",
"name": "Sample User Task",
"definitionId": "UserTask1675090585240",
"assignee": "testUser",
"processInstanceId": "94e4885c-32d2-11ee-9999-8ae1ba173534",
"claimedAt": "2023-08-04T14:46:43.991Z",
"participants": [
{
"id": "sviusrs",
"type": "GROUP",
"name": "sviusrs"
}
],
"isProcessInstanceSuspended": true,
"createdAt": "2023-08-04T14:46:43.991Z",
"actions": [
{
"id": "taskOption1675090585241",
"name": "Completed",
"pagePrompt": {
"defaults": [
{
"id": "dd9fb065-0121-4f9e-b7d3-9a48016e3ea6",
"name": "TestEntityPage"
}
]
}
}
]
}
],
"limit": 1,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowTaskRepResourceCollection |
Get the headers for a workflow task
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes/tasks/tasks/{taskId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes/tasks/tasks/{taskId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/processes/tasks/tasks/{taskId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes/tasks/tasks/{taskId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes/tasks/tasks/{taskId}
Returns the headers for the specified workflow task.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
taskId | path | string | true | The ID of the task. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | No task exists at the requested path. | None |
Get a workflow task
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes/tasks/tasks/{taskId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.investigation.workflow.task+json'
const headers = {
'Accept':'application/vnd.sas.investigation.workflow.task+json'
};
fetch('https://example.com/workflows/processes/tasks/tasks/{taskId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.investigation.workflow.task+json'
}
r = requests.get('https://example.com/workflows/processes/tasks/tasks/{taskId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.investigation.workflow.task+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes/tasks/tasks/{taskId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes/tasks/tasks/{taskId}
Retrieves details for the specified workflow task.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
taskId | path | string | true | The ID of the task. |
Example responses
Single task
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534",
"type": "application/vnd.sas.investigation.workflow.task",
"responseType": "application/vnd.sas.investigation.workflow.task+json"
},
{
"method": "PUT",
"rel": "claim",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimed",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimed",
"type": "application/vnd.sas.investigation.workflow.task"
},
{
"method": "PUT",
"rel": "release",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimReleased",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimReleased"
},
{
"method": "PUT",
"rel": "assign",
"href": "/svi-datahub/workflows/processes/tasks/tasks/%25s/assigned",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/%25s/assigned",
"type": "application/vnd.sas.investigation.workflow.task"
},
{
"method": "PUT",
"rel": "complete",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/completed",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/completed",
"type": "application/vnd.sas.investigation.workflow.action"
}
],
"version": 1,
"entityId": 100932,
"entityName": "TestEntity",
"entityLabel": "Perf Test",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"workflowDefinitionId": "TestEntity_workflow:1:74c5d56f-30da-11ee-9b68-c6e83977fdb1",
"workflowName": "TestEntity_workflow",
"workflowLabel": "Perf Test Workflow",
"workflowLabelResource": "svi.workflow.TestEntity.1690942531204.label.txt",
"workflowDescriptionResource": "svi.workflow.TestEntity.1690942531204.description.txt",
"workflowVersion": 1,
"entityInstanceId": "7b404733-404b-4c03-895e-b3486bef7d4a",
"entityInstanceLabel": "7b404733-404b-4c03-895e-b3486bef7d4a",
"id": "94e54bb5-32d2-11ee-9999-8ae1ba173534",
"name": "Sample User Task",
"definitionId": "UserTask1675090585240",
"assignee": "testUser",
"processInstanceId": "94e4885c-32d2-11ee-9999-8ae1ba173534",
"claimedAt": "2023-08-04T14:46:43.991Z",
"participants": [
{
"id": "sviusrs",
"type": "GROUP",
"name": "sviusrs"
}
],
"isClaimedByCurrentUser": true,
"isProcessInstanceSuspended": true,
"createdAt": "2023-08-04T14:46:43.991Z",
"actions": [
{
"id": "taskOption1675090585241",
"name": "Completed",
"pagePrompt": {
"defaults": [
{
"id": "dd9fb065-0121-4f9e-b7d3-9a48016e3ea6",
"name": "TestEntityPage"
}
]
}
}
]
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534",
"type": "application/vnd.sas.investigation.workflow.task",
"responseType": "application/vnd.sas.investigation.workflow.task+json"
},
{
"method": "PUT",
"rel": "claim",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimed",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimed",
"type": "application/vnd.sas.investigation.workflow.task"
},
{
"method": "PUT",
"rel": "release",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimReleased",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/claimReleased"
},
{
"method": "PUT",
"rel": "assign",
"href": "/svi-datahub/workflows/processes/tasks/tasks/%25s/assigned",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/%25s/assigned",
"type": "application/vnd.sas.investigation.workflow.task"
},
{
"method": "PUT",
"rel": "complete",
"href": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/completed",
"uri": "/svi-datahub/workflows/processes/tasks/tasks/94e54bb5-32d2-11ee-9999-8ae1ba173534/completed",
"type": "application/vnd.sas.investigation.workflow.action"
}
],
"version": 1,
"entityId": 100932,
"entityName": "TestEntity",
"entityLabel": "Perf Test",
"solutionName": "sas_visual_investigator_default",
"solutionLabel": "SAS Visual Investigator",
"workflowDefinitionId": "TestEntity_workflow:1:74c5d56f-30da-11ee-9b68-c6e83977fdb1",
"workflowName": "TestEntity_workflow",
"workflowLabel": "Perf Test Workflow",
"workflowLabelResource": "svi.workflow.TestEntity.1690942531204.label.txt",
"workflowDescriptionResource": "svi.workflow.TestEntity.1690942531204.description.txt",
"workflowVersion": 1,
"entityInstanceId": "7b404733-404b-4c03-895e-b3486bef7d4a",
"entityInstanceLabel": "7b404733-404b-4c03-895e-b3486bef7d4a",
"id": "94e54bb5-32d2-11ee-9999-8ae1ba173534",
"name": "Sample User Task",
"definitionId": "UserTask1675090585240",
"assignee": "testUser",
"processInstanceId": "94e4885c-32d2-11ee-9999-8ae1ba173534",
"claimedAt": "2023-08-04T14:46:43.991Z",
"participants": [
{
"id": "sviusrs",
"type": "GROUP",
"name": "sviusrs"
}
],
"isClaimedByCurrentUser": true,
"isProcessInstanceSuspended": true,
"createdAt": "2023-08-04T14:46:43.991Z",
"actions": [
{
"id": "taskOption1675090585241",
"name": "Completed",
"pagePrompt": {
"defaults": [
{
"id": "dd9fb065-0121-4f9e-b7d3-9a48016e3ea6",
"name": "TestEntityPage"
}
]
}
}
]
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowTaskRep |
404 | Not Found | No task exists at the requested path. | error2 |
Claim a workflow task
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/tasks/tasks/{taskId}/claimed \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.task+json' \
-H 'Accept: application/vnd.sas.error' \
-H 'VI-Client-Application: desktop'
const inputBody = '{
"assignee": "testUser"
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.task+json',
'Accept':'application/vnd.sas.error',
'VI-Client-Application':'desktop'
};
fetch('https://example.com/workflows/processes/tasks/tasks/{taskId}/claimed',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.task+json',
'Accept': 'application/vnd.sas.error',
'VI-Client-Application': 'desktop'
}
r = requests.put('https://example.com/workflows/processes/tasks/tasks/{taskId}/claimed', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.task+json"},
"Accept": []string{"application/vnd.sas.error"},
"VI-Client-Application": []string{"desktop"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/tasks/tasks/{taskId}/claimed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/tasks/tasks/{taskId}/claimed
Claims a workflow task.
Body parameter
Claim a task for the selected user.
{
"assignee": "testUser"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
taskId | path | string | true | The ID of the task. |
VI-Client-Application | header | string | false | This indicates which client is issuing the request. Accepted values include desktop and mobile. |
body | body | workflowTaskRep | true | tRep |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No workflow task exists at the requested path. | error2 |
Claim a selection of workflow tasks
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/processes/tasks/claimed?assignee=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.selection+json' \
-H 'Accept: application/vnd.sas.error' \
-H 'VI-Client-Application: desktop'
const inputBody = '{
"user": "testUser",
"resources": [
"94e54bb5-32d2-11ee-9999-8ae1ba173534",
"aff0a335-32d5-11ee-9999-8ae1ba173534"
]
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.selection+json',
'Accept':'application/vnd.sas.error',
'VI-Client-Application':'desktop'
};
fetch('https://example.com/workflows/processes/tasks/claimed?assignee=string',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.selection+json',
'Accept': 'application/vnd.sas.error',
'VI-Client-Application': 'desktop'
}
r = requests.post('https://example.com/workflows/processes/tasks/claimed', params={
'assignee': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.selection+json"},
"Accept": []string{"application/vnd.sas.error"},
"VI-Client-Application": []string{"desktop"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/processes/tasks/claimed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /processes/tasks/claimed
Claims a selection of workflow tasks. This request allows for 100 selections.
Body parameter
Performs a bulk claim for the selected tasks.
{
"user": "testUser",
"resources": [
"94e54bb5-32d2-11ee-9999-8ae1ba173534",
"aff0a335-32d5-11ee-9999-8ae1ba173534"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
assignee | query | string | true | The name of the user to whom this task is assigned. |
VI-Client-Application | header | string | false | This indicates which client is issuing the request. Accepted values include desktop and mobile. |
body | body | selectionRep | true | The name of the selection claimed. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Release a claim on a workflow task
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/tasks/tasks/{taskId}/claimReleased \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/tasks/tasks/{taskId}/claimReleased',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/tasks/tasks/{taskId}/claimReleased', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/tasks/tasks/{taskId}/claimReleased", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/tasks/tasks/{taskId}/claimReleased
Releases a claim on a workflow task.k
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
taskId | path | string | true | The ID of the task released. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No workflow task exists at the requested path. | error2 |
Release claim on selected workflow tasks
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/processes/tasks/claimReleased \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.selection+json' \
-H 'Accept: application/vnd.sas.error'
const inputBody = '{
"resources": [
"94e54bb5-32d2-11ee-9999-8ae1ba173534",
"aff0a335-32d5-11ee-9999-8ae1ba173534"
]
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.selection+json',
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/tasks/claimReleased',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.selection+json',
'Accept': 'application/vnd.sas.error'
}
r = requests.post('https://example.com/workflows/processes/tasks/claimReleased', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.selection+json"},
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/processes/tasks/claimReleased", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /processes/tasks/claimReleased
Releases a claim on a selection of workflow tasks. This request allows for 100 selections.
Body parameter
Performs a bulk claim release for the selected tasks.
{
"resources": [
"94e54bb5-32d2-11ee-9999-8ae1ba173534",
"aff0a335-32d5-11ee-9999-8ae1ba173534"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | selectionRep | true | The name of the selection released. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Release a claim on a workflow task by the workflow administrator
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/tasks/tasks/{taskId}/claimReleased/administrator \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/tasks/tasks/{taskId}/claimReleased/administrator',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.put('https://example.com/workflows/processes/tasks/tasks/{taskId}/claimReleased/administrator', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/tasks/tasks/{taskId}/claimReleased/administrator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/tasks/tasks/{taskId}/claimReleased/administrator
Releases a claim on a workflow task by the workflow administrator. This follows the same design as the existing /workflows/processes/tasks/tasks/{taskId}/claimReleased REST API. The requirement on this API is that the user must have the workflow administrator capability (svi.administration.workflows.process).
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
taskId | path | string | true | The ID of the task. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No workflow task exists at the requested path. | error2 |
Release a claim on a selection of workflow tasks by the workflow administrator
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/processes/tasks/claimReleased/administrator \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.selection+json' \
-H 'Accept: application/vnd.sas.error'
const inputBody = '{
"resources": [
"94e54bb5-32d2-11ee-9999-8ae1ba173534",
"aff0a335-32d5-11ee-9999-8ae1ba173534"
]
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.selection+json',
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/processes/tasks/claimReleased/administrator',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.selection+json',
'Accept': 'application/vnd.sas.error'
}
r = requests.post('https://example.com/workflows/processes/tasks/claimReleased/administrator', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.selection+json"},
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/processes/tasks/claimReleased/administrator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /processes/tasks/claimReleased/administrator
Releases a claim on a selection of workflow tasks by the workflow administrator. This follows the same design as the existing /workflows/processes/tasks/claimReleased REST API. The requirement on this API is that the user must have the workflow administrator capability (svi.administration.workflows.process). This request allows for 100 selections.
Body parameter
Performs a bulk claim release for the selected tasks.
{
"resources": [
"94e54bb5-32d2-11ee-9999-8ae1ba173534",
"aff0a335-32d5-11ee-9999-8ae1ba173534"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | selectionRep | true | The name of the selection released. |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
Complete a workflow task
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/processes/tasks/tasks/{taskId}/completed \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.action+json' \
-H 'Accept: application/vnd.sas.error' \
-H 'VI-Client-Application: desktop'
const inputBody = '{
"id": "taskOption1534446735993"
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.action+json',
'Accept':'application/vnd.sas.error',
'VI-Client-Application':'desktop'
};
fetch('https://example.com/workflows/processes/tasks/tasks/{taskId}/completed',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.action+json',
'Accept': 'application/vnd.sas.error',
'VI-Client-Application': 'desktop'
}
r = requests.put('https://example.com/workflows/processes/tasks/tasks/{taskId}/completed', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.action+json"},
"Accept": []string{"application/vnd.sas.error"},
"VI-Client-Application": []string{"desktop"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/processes/tasks/tasks/{taskId}/completed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /processes/tasks/tasks/{taskId}/completed
Updates the status of a workflow task to complete.
Body parameter
Complete the selected task.
{
"id": "taskOption1534446735993"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
taskId | path | string | true | The ID of the task. |
VI-Client-Application | header | string | false | The client that is issuing the request. Accepted values include desktop and mobile. |
body | body | actionRep | true | rep |
Example responses
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No task exists at the requested path. | error2 |
Metrics Summary
Endpoints to view historical process activity measurements.
Get the headers for the history metrics summary for all workflows by entity
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/entity/processes/history/metrics
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/entity/processes/history/metrics',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/entity/processes/history/metrics')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/entity/processes/history/metrics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /entity/processes/history/metrics
Returns the headers for the history metrics summary for all workflows by entity.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
workflowName | query | string | false | Filters on the workflow name. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsWorkflowName | query | string | false | Filters for all tasks whose workflow name contain this value. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startedAt | query | string(date-time) | false | Filters based on this start timestamp. |
endedAt | query | string(date-time) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful | None |
Get the history metrics summary for all workflows by entity
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/entity/processes/history/metrics \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/entity/processes/history/metrics',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/entity/processes/history/metrics', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/entity/processes/history/metrics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /entity/processes/history/metrics
Retrieves the history metrics summary for all workflows by entity. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
workflowName | query | string | false | Filters on the workflow name. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsWorkflowName | query | string | false | Filters for all tasks whose workflow name contain this value. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startedAt | query | string(date-time) | false | Filters based on this start timestamp. |
endedAt | query | string(date-time) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Example responses
This displays the workload progress based on the entity.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "person",
"id": "person",
"label": "Person",
"meanTimePerTask": 8861798.406982422,
"medianTimePerTask": 4412228.406982422,
"timeOnCompletedTasks": 1906564,
"timeOnUncompletedTasks": 104435016.88378906,
"meanTimePerTaskClaimTimeBasis": 8643283.656982422,
"medianTimePerTaskClaimTimeBasis": 3508049.406982422,
"timeOnCompletedTasksClaimTimeBasis": 103719403.88378906,
"timeOnUncompletedTasksClaimTimeBasis": 103712036.88378906,
"workflowNames": [
{
"id": "person_workflow",
"name": "Person Workflow"
}
]
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes",
"uri": "/workflows/processes",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "person",
"id": "person",
"label": "Person",
"meanTimePerTask": 8861798.406982422,
"medianTimePerTask": 4412228.406982422,
"timeOnCompletedTasks": 1906564,
"timeOnUncompletedTasks": 104435016.88378906,
"meanTimePerTaskClaimTimeBasis": 8643283.656982422,
"medianTimePerTaskClaimTimeBasis": 3508049.406982422,
"timeOnCompletedTasksClaimTimeBasis": 103719403.88378906,
"timeOnUncompletedTasksClaimTimeBasis": 103712036.88378906,
"workflowNames": [
{
"id": "person_workflow",
"name": "Person Workflow"
}
]
}
],
"limit": 1,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful | historicalMetricsSummaryRepResourceCollection |
Get the headers for the history metrics summary for all workflows
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes/history/metrics
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes/history/metrics',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/processes/history/metrics')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes/history/metrics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes/history/metrics
Returns the headers for the history metrics summary for all workflows.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
workflowName | query | string | false | Filters on the workflow name. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsWorkflowName | query | string | false | Filters for all tasks whose workflow name contain this value. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request was successful. | None |
Get the history metrics summary for all workflows
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes/history/metrics \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/processes/history/metrics',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/processes/history/metrics', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes/history/metrics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes/history/metrics
Retrieves the history metrics summary for all workflows. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
workflowName | query | string | false | Filters on the workflow name. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsWorkflowName | query | string | false | Filters for all tasks whose workflow name contain this value. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Example responses
This displays the workload progress.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/history/metrics",
"uri": "/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test_workflow",
"id": "Test_workflow",
"label": "Test Workflow",
"meanTimePerTask": 172249732.16896927,
"medianTimePerTask": 194848241.05517578,
"timeOnCompletedTasks": 0,
"timeOnUncompletedTasks": 1519759386926.812,
"meanTimePerTaskClaimTimeBasis": 172249732.16896927,
"medianTimePerTaskClaimTimeBasis": 194848241.05517578,
"timeOnCompletedTasksClaimTimeBasis": 1519759386926.812,
"timeOnUncompletedTasksClaimTimeBasis": 1519759386926.812,
"workflowVersions": [
{
"id": "Test_workflow:4:15297362-72bc-11ee-a8bf-0242ac11001f",
"version": 4
},
{
"id": "Test_workflow:3:2e6a0ee9-71d1-11ee-be64-0242ac11001f",
"version": 3
}
]
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/history/metrics",
"uri": "/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test_workflow",
"id": "Test_workflow",
"label": "Test Workflow",
"meanTimePerTask": 172249732.16896927,
"medianTimePerTask": 194848241.05517578,
"timeOnCompletedTasks": 0,
"timeOnUncompletedTasks": 1519759386926.812,
"meanTimePerTaskClaimTimeBasis": 172249732.16896927,
"medianTimePerTaskClaimTimeBasis": 194848241.05517578,
"timeOnCompletedTasksClaimTimeBasis": 1519759386926.812,
"timeOnUncompletedTasksClaimTimeBasis": 1519759386926.812,
"workflowVersions": [
{
"id": "Test_workflow:4:15297362-72bc-11ee-a8bf-0242ac11001f",
"version": 4
},
{
"id": "Test_workflow:3:2e6a0ee9-71d1-11ee-be64-0242ac11001f",
"version": 3
}
]
}
],
"limit": 1,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request was successful. | historicalMetricsSummaryRepResourceCollection |
Get the headers for a history metrics summary for all groups
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes/history/metrics/groups
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes/history/metrics/groups',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/processes/history/metrics/groups')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes/history/metrics/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes/history/metrics/groups
Returns the headers for a history metrics summary for all groups.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
workflowName | query | string | false | Filters on the workflow name. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsWorkflowName | query | string | false | Filters for all tasks whose workflow name contain this value |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful | None |
Get a history metrics summary for all groups
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes/history/metrics/groups \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/processes/history/metrics/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/processes/history/metrics/groups', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes/history/metrics/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes/history/metrics/groups
Retrieves a history metrics summary for all groups. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
workflowName | query | string | false | Filters on the workflow name. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsWorkflowName | query | string | false | Filters for all tasks whose workflow name contain this value |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Example responses
This displays the workload progress based on the groups.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricGroupSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test Group",
"id": "testGroup",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricGroupSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test Group",
"id": "testGroup",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful | historicalMetricsSummaryRepResourceCollection |
Get the headers for the history metrics summary for all users
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes/history/metrics/groups/groups/{groupId}/users
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes/history/metrics/groups/groups/{groupId}/users',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/processes/history/metrics/groups/groups/{groupId}/users')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes/history/metrics/groups/groups/{groupId}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes/history/metrics/groups/groups/{groupId}/users
Returns the headers for the history metrics summary for all users.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | The ID of the group. |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection by using the prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
entityName | query | string | false | Filters on the entity name the workflow runs against. |
workflowName | query | string | false | Filters on the workflow name. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
containsWorkflowName | query | string | false | Filters for all tasks whose workflow name contain this value. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks that are not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Get the history metrics summary for all users
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes/history/metrics/groups/groups/{groupId}/users \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/json'
const headers = {
'Accept':'application/json'
};
fetch('https://example.com/workflows/processes/history/metrics/groups/groups/{groupId}/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://example.com/workflows/processes/history/metrics/groups/groups/{groupId}/users', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes/history/metrics/groups/groups/{groupId}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes/history/metrics/groups/groups/{groupId}/users
Retrieves the history metrics summary for all users. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | The ID of the group. |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection by using the prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
entityName | query | string | false | Filters on the entity name the workflow runs against. |
workflowName | query | string | false | Filters on the workflow name. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
containsWorkflowName | query | string | false | Filters for all tasks whose workflow name contain this value. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks that are not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Example responses
This displays the workload progress based on the users.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricUserSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test User",
"id": "testUser",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricUserSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test User",
"id": "testUser",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | historicalMetricsSummaryRepResourceCollection |
Get the headers for history metrics summary for workflows
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/workflows/{workflowId}/processes/history/metrics
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/workflows/{workflowId}/processes/history/metrics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /workflows/{workflowId}/processes/history/metrics
Returns the headers for the history metrics summary for specific workflows.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow. |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | No workflow exists at the requested path. | None |
Get history metrics summary for workflows
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/workflows/{workflowId}/processes/history/metrics \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/workflows/{workflowId}/processes/history/metrics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /workflows/{workflowId}/processes/history/metrics
Retrieves the history metrics summary for specific workflows. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow. |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Example responses
This displays the workload progress.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/history/metrics",
"uri": "/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test_workflow",
"id": "Test_workflow",
"label": "Test Workflow",
"meanTimePerTask": 172249732.16896927,
"medianTimePerTask": 194848241.05517578,
"timeOnCompletedTasks": 0,
"timeOnUncompletedTasks": 1519759386926.812,
"meanTimePerTaskClaimTimeBasis": 172249732.16896927,
"medianTimePerTaskClaimTimeBasis": 194848241.05517578,
"timeOnCompletedTasksClaimTimeBasis": 1519759386926.812,
"timeOnUncompletedTasksClaimTimeBasis": 1519759386926.812,
"workflowVersions": [
{
"id": "Test_workflow:4:15297362-72bc-11ee-a8bf-0242ac11001f",
"version": 4
},
{
"id": "Test_workflow:3:2e6a0ee9-71d1-11ee-be64-0242ac11001f",
"version": 3
}
]
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/history/metrics",
"uri": "/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test_workflow",
"id": "Test_workflow",
"label": "Test Workflow",
"meanTimePerTask": 172249732.16896927,
"medianTimePerTask": 194848241.05517578,
"timeOnCompletedTasks": 0,
"timeOnUncompletedTasks": 1519759386926.812,
"meanTimePerTaskClaimTimeBasis": 172249732.16896927,
"medianTimePerTaskClaimTimeBasis": 194848241.05517578,
"timeOnCompletedTasksClaimTimeBasis": 1519759386926.812,
"timeOnUncompletedTasksClaimTimeBasis": 1519759386926.812,
"workflowVersions": [
{
"id": "Test_workflow:4:15297362-72bc-11ee-a8bf-0242ac11001f",
"version": 4
},
{
"id": "Test_workflow:3:2e6a0ee9-71d1-11ee-be64-0242ac11001f",
"version": 3
}
]
}
],
"limit": 1,
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | historicalMetricsSummaryRepResourceCollection |
404 | Not Found | No workflow exists at the requested path. | error2 |
Get the headers for the history metrics summary for all groups of a selected workflow version
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /workflows/{workflowId}/processes/history/metrics/groups
Returns the headers for the history metrics summary for all groups of a selected workflow version. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow. |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | No workflow version exists at the requested path. | None |
Retrieve the history metrics summary for all groups of a selected workflow version
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /workflows/{workflowId}/processes/history/metrics/groups
Retrieves the history metrics summary for all groups of a selected workflow version. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow. |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
assignee | query | string | false | Filters on tasks worked on by this user. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Example responses
This displays the workload progress based on the groups.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricGroupSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test Group",
"id": "testGroup",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricGroupSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test Group",
"id": "testGroup",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | historicalMetricsSummaryRepResourceCollection |
404 | Not Found | No workflow version exists at the requested path. | error2 |
Get the headers for the history metrics summary for all users of a selected workflow version
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/users
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/users',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/users')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /workflows/{workflowId}/processes/history/metrics/groups/users
Returns the headers for the history metrics summary for all users of a selected workflow version.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow version. |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful. | None |
404 | Not Found | No workflow exists at the requested path. | None |
Retrieve the history metrics summary for all users of a selected workflow version
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/users \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/users', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /workflows/{workflowId}/processes/history/metrics/groups/users
Retrieves the history metrics summary for all users of a selected workflow version. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow version. |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Example responses
This displays the workload progress based on the users.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricUserSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test User",
"id": "testUser",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricUserSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test User",
"id": "testUser",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The operation was successful. | historicalMetricsSummaryRepResourceCollection |
404 | Not Found | No workflow exists at the requested path. | error2 |
RetriGet the headers for the history metrics summary for all of the users of a selected workflow version and group
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users
Returns the headers for the history metrics summary for all of the users of a selected workflow version and group.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow. |
groupId | path | string | true | groupId |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | No workflow exists at the requested path. | None |
Retrieve the history metrics summary for all of the users of a selected workflow version and group
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /workflows/{workflowId}/processes/history/metrics/groups/groups/{groupId}/users
Retrieves the history metrics summary for all of the users of a selected workflow version and group. The returned items are of type application/vnd.sas.investigation.workflow.historical.metrics.summary+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
workflowId | path | string | true | The ID of the workflow. |
groupId | path | string | true | groupId |
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
taskName | query | string | false | Filters on the task name. |
taskDefinitionId | query | string | false | Filters on the specific task. |
containsTaskName | query | string | false | Filters for all task names that contain this value. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
includeUnclaimedTasks | query | boolean | false | Includes those tasks not currently assigned. |
includeCancelledTasks | query | boolean | false | Includes tasks whose processes were canceled. |
Example responses
This displays the workload progress based on the users.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricUserSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test User",
"id": "testUser",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/processes/history/metrics",
"uri": "/svi-datahub/workflows/processes/history/metrics",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistoryMetricUserSummary",
"accept": "application/vnd.sas.investigation.workflow.historical.metrics.summary",
"start": 0,
"count": 1,
"items": [
{
"version": 1,
"name": "Test User",
"id": "testUser",
"meanTimePerTask": 23937.5,
"medianTimePerTask": 23937.5,
"timeOnCompletedTasks": 47875,
"timeOnUncompletedTasks": 0,
"meanTimePerTaskClaimTimeBasis": 10562,
"medianTimePerTaskClaimTimeBasis": 10562,
"timeOnCompletedTasksClaimTimeBasis": 21124,
"timeOnUncompletedTasksClaimTimeBasis": 0
}
],
"limit": 1,
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | historicalMetricsSummaryRepResourceCollection |
404 | Not Found | No workflow exists at the requested path. | error2 |
History
Endpoint to view history of workflow process activity.
Get the headers for the history for any number of process instances
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/processes/history
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/processes/history',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/processes/history')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/processes/history", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /processes/history
Returns the headers for the history for any number of process instances.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
removeCancelledProcesses | query | boolean | false | Do not include history data for those processes that were canceled. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Get the history for any number of process instances
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/processes/history \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/processes/history',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/processes/history', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/processes/history", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /processes/history
Retrieves the history for any number of process instances. The returned items are of type application/vnd.sas.investigation.workflow.historical.workflow.task+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
startAt | query | integer(int64) | false | Filters based on this start timestamp. |
endAt | query | integer(int64) | false | Filters based on this end timestamp. |
removeCancelledProcesses | query | boolean | false | Do not include history data for those processes that were canceled. |
Example responses
A list of the workflow process and task historical activity.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/history",
"uri": "/workflows/processes/history",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistory",
"accept": "application/vnd.sas.investigation.workflow.historical.workflow.task",
"start": 0,
"count": 443,
"items": [
{
"version": 1,
"entityId": 100514,
"entityName": "person",
"entityLabel": "Person",
"workflowDefinitionId": "person_workflow:2:877ed08b-2bc4-11e9-b00f-f4939fed3251",
"workflowName": "person_workflow",
"workflowLabel": "Person Workflow",
"workflowLabelResource": "svi.workflow.person.1549633087059.label.txt",
"workflowDescriptionResource": "svi.workflow.person.1549633087059.description.txt",
"workflowVersion": 2,
"entityInstanceId": "85490a37-e537-4352-90b1-8eb26906fa48",
"entityInstanceLabel": "ll ll",
"id": "036cbc80-2bc5-11e9-b00f-f4939fed3251",
"name": "User Task PG2 All PP",
"definitionId": "UserTask1549632873900",
"processInstanceId": "036c9560-2bc5-11e9-b00f-f4939fed3251",
"participants": [
{
"id": "sviusrs",
"type": "GROUP",
"name": "Visual Investigator Users"
}
],
"duration": 0,
"startedAt": "2019-02-08T17:14:37.752Z"
}
],
"limit": 100,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/workflows/processes/history",
"uri": "/workflows/processes/history",
"type": "application/vnd.sas.collection"
}
],
"name": "workflowProcessHistory",
"accept": "application/vnd.sas.investigation.workflow.historical.workflow.task",
"start": 0,
"count": 443,
"items": [
{
"version": 1,
"entityId": 100514,
"entityName": "person",
"entityLabel": "Person",
"workflowDefinitionId": "person_workflow:2:877ed08b-2bc4-11e9-b00f-f4939fed3251",
"workflowName": "person_workflow",
"workflowLabel": "Person Workflow",
"workflowLabelResource": "svi.workflow.person.1549633087059.label.txt",
"workflowDescriptionResource": "svi.workflow.person.1549633087059.description.txt",
"workflowVersion": 2,
"entityInstanceId": "85490a37-e537-4352-90b1-8eb26906fa48",
"entityInstanceLabel": "ll ll",
"id": "036cbc80-2bc5-11e9-b00f-f4939fed3251",
"name": "User Task PG2 All PP",
"definitionId": "UserTask1549632873900",
"processInstanceId": "036c9560-2bc5-11e9-b00f-f4939fed3251",
"participants": [
{
"id": "sviusrs",
"type": "GROUP",
"name": "Visual Investigator Users"
}
],
"duration": 0,
"startedAt": "2019-02-08T17:14:37.752Z"
}
],
"limit": 100,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | historicalWorkflowTaskRepResourceCollection |
Settings
Create a new administrator workflow setting
Code samples
# You can also use wget
curl -X POST https://example.com/workflows/settings/administrators \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.setting+json' \
-H 'Accept: application/vnd.sas.investigation.workflow.setting+json' \
-H 'Content-Type: string'
const inputBody = '{
"id": "TASKS_TAB_COLUMNS",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
}
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.setting+json',
'Accept':'application/vnd.sas.investigation.workflow.setting+json',
'Content-Type':'string'
};
fetch('https://example.com/workflows/settings/administrators',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.setting+json',
'Accept': 'application/vnd.sas.investigation.workflow.setting+json',
'Content-Type': 'string'
}
r = requests.post('https://example.com/workflows/settings/administrators', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.setting+json"},
"Accept": []string{"application/vnd.sas.investigation.workflow.setting+json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/workflows/settings/administrators", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /settings/administrators
Creates a new administrator workflow setting.
Body parameter
Create the task setting.
{
"id": "TASKS_TAB_COLUMNS",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Content-Type | header | string | false | The version of the workflow setting in the body. |
body | body | workflowSettingRep | true | settings |
Example responses
Task settings that control display options for the task grids at the tenant level.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-04T16:12:55.145Z",
"lastUpdatedBy": "videmo"
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-04T16:12:55.145Z",
"lastUpdatedBy": "videmo"
}
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | A setting was created. | workflowSettingRep |
400 | Bad Request | The request was invalid. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Last-Modified | integer | int64 | The time at which this resource was last updated. |
201 | Location | string | The location of the new resource. |
Get the headers for list of administrator workflow settings
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/settings/administrators
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/settings/administrators',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/workflows/settings/administrators')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/settings/administrators", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /settings/administrators
Returns the headers for a list of administrator workflow settings.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Get a list of administrator workflow settings
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/settings/administrators \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/workflows/settings/administrators',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/workflows/settings/administrators', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/settings/administrators", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /settings/administrators
Retrieves a list of administrator workflow settings. The returned items are of type application/vnd.sas.investigation.workflow.setting+json.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | The comma-separated list of resource members to return in the collection. |
filter | query | string | false | Filters the collection using prefix function syntax using selected resource members. |
start | query | integer(int64) | false | The zero-based index of the first item in the collection. |
limit | query | integer(int32) | false | The number of items that were requested for the collection. |
sortBy | query | string | false | The sorting preference for selected resource members in the returned collection. |
Example responses
A list of task settings that control display options for the task grids at the tenant level.
{
"links": [
{
"method": "GET",
"rel": "list",
"href": "/svi-datahub/workflows/settings/administrators",
"uri": "/svi-datahub/workflows/settings/administrators",
"type": "application/vnd.sas.collection"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-datahub/workflows/settings/administrators",
"uri": "/svi-datahub/workflows/settings/administrators",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting"
},
{
"method": "DELETE",
"rel": "delete all",
"href": "/svi-datahub/workflows/settings/administrators",
"uri": "/svi-datahub/workflows/settings/administrators"
}
],
"name": "workflowSettings",
"accept": "application/vnd.sas.investigation.workflow.setting",
"start": 0,
"count": 2,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS"
}
],
"version": 1,
"id": "MYTASKS_HOME_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "entityLabel",
"order": 1
},
{
"name": "entityInstanceLabel",
"order": 2
},
{
"name": "name",
"order": 3
},
{
"name": "description",
"order": 4
},
{
"name": "dueDateTimestamp",
"order": 5
}
],
"defaultSort": [
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 1
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-01T21:39:31.048Z",
"lastUpdatedBy": "<svi_db_user>"
},
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "assignee",
"order": 6
},
{
"name": "claimedAt",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "name",
"direction": "descending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-16T00:09:49.638Z",
"lastUpdatedBy": "videmo"
}
],
"limit": 2,
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "list",
"href": "/svi-datahub/workflows/settings/administrators",
"uri": "/svi-datahub/workflows/settings/administrators",
"type": "application/vnd.sas.collection"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-datahub/workflows/settings/administrators",
"uri": "/svi-datahub/workflows/settings/administrators",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting"
},
{
"method": "DELETE",
"rel": "delete all",
"href": "/svi-datahub/workflows/settings/administrators",
"uri": "/svi-datahub/workflows/settings/administrators"
}
],
"name": "workflowSettings",
"accept": "application/vnd.sas.investigation.workflow.setting",
"start": 0,
"count": 2,
"items": [
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/MYTASKS_HOME_COLUMNS"
}
],
"version": 1,
"id": "MYTASKS_HOME_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "entityLabel",
"order": 1
},
{
"name": "entityInstanceLabel",
"order": 2
},
{
"name": "name",
"order": 3
},
{
"name": "description",
"order": 4
},
{
"name": "dueDateTimestamp",
"order": 5
}
],
"defaultSort": [
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 1
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-01T21:39:31.048Z",
"lastUpdatedBy": "<svi_db_user>"
},
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "assignee",
"order": 6
},
{
"name": "claimedAt",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "name",
"direction": "descending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-16T00:09:49.638Z",
"lastUpdatedBy": "videmo"
}
],
"limit": 2,
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowSettingRepResourceCollection |
Delete all of the administrator workflow settings
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/settings/administrators
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/workflows/settings/administrators',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/workflows/settings/administrators')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/settings/administrators", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /settings/administrators
Deletes all of the administrator workflow settings.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
Get the headers for administrator setting information
Code samples
# You can also use wget
curl -X HEAD https://example.com/workflows/settings/administrators/{settingId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.investigation.workflow.setting+json'
const headers = {
'Accept':'application/vnd.sas.investigation.workflow.setting+json'
};
fetch('https://example.com/workflows/settings/administrators/{settingId}',
{
method: 'HEAD',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.investigation.workflow.setting+json'
}
r = requests.head('https://example.com/workflows/settings/administrators/{settingId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.investigation.workflow.setting+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/workflows/settings/administrators/{settingId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /settings/administrators/{settingId}
Returns the headers for the details for a specified administrator workflow setting.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
settingId | path | string | true | The ID of the setting. |
Example responses
Task settings that control display options for the task grids at the tenant level.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-04T16:12:55.145Z",
"lastUpdatedBy": "videmo"
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-04T16:12:55.145Z",
"lastUpdatedBy": "videmo"
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowSettingRep |
404 | Not Found | No setting exists at the requested path. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | integer | int64 | The time at which this setting was last updated. |
Get administrator setting information
Code samples
# You can also use wget
curl -X GET https://example.com/workflows/settings/administrators/{settingId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.investigation.workflow.setting+json'
const headers = {
'Accept':'application/vnd.sas.investigation.workflow.setting+json'
};
fetch('https://example.com/workflows/settings/administrators/{settingId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.investigation.workflow.setting+json'
}
r = requests.get('https://example.com/workflows/settings/administrators/{settingId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.investigation.workflow.setting+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/workflows/settings/administrators/{settingId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /settings/administrators/{settingId}
Retrieves the details for a specified administrator workflow setting.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
settingId | path | string | true | The ID of the setting. |
Example responses
Task settings that control display options for the task grids at the tenant level.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-04T16:12:55.145Z",
"lastUpdatedBy": "videmo"
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-04T16:12:55.145Z",
"lastUpdatedBy": "videmo"
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowSettingRep |
404 | Not Found | No setting exists at the requested path. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | integer | int64 | The time at which this setting was last updated. |
Delete an administrator workflow setting
Code samples
# You can also use wget
curl -X DELETE https://example.com/workflows/settings/administrators/{settingId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error'
const headers = {
'Accept':'application/vnd.sas.error'
};
fetch('https://example.com/workflows/settings/administrators/{settingId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error'
}
r = requests.delete('https://example.com/workflows/settings/administrators/{settingId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/workflows/settings/administrators/{settingId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /settings/administrators/{settingId}
Deletes an administrator workflow setting.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
settingId | path | string | true | The ID of the setting. |
Example responses
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The operation was successful. | None |
404 | Not Found | No setting exists at the requested path. | error2 |
Update an existing administrator workflow setting
Code samples
# You can also use wget
curl -X PUT https://example.com/workflows/settings/administrators/{settingId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.investigation.workflow.setting+json' \
-H 'Accept: application/vnd.sas.investigation.workflow.setting+json' \
-H 'Content-Type: string' \
-H 'If-Unmodified-Since: 0'
const inputBody = '{
"id": "TASKS_TAB_COLUMNS",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "assignee",
"order": 6
},
{
"name": "claimedAt",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "name",
"direction": "descending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
}
}';
const headers = {
'Content-Type':'application/vnd.sas.investigation.workflow.setting+json',
'Accept':'application/vnd.sas.investigation.workflow.setting+json',
'Content-Type':'string',
'If-Unmodified-Since':'0'
};
fetch('https://example.com/workflows/settings/administrators/{settingId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.investigation.workflow.setting+json',
'Accept': 'application/vnd.sas.investigation.workflow.setting+json',
'Content-Type': 'string',
'If-Unmodified-Since': '0'
}
r = requests.put('https://example.com/workflows/settings/administrators/{settingId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.investigation.workflow.setting+json"},
"Accept": []string{"application/vnd.sas.investigation.workflow.setting+json"},
"Content-Type": []string{"string"},
"If-Unmodified-Since": []string{"0"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/workflows/settings/administrators/{settingId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /settings/administrators/{settingId}
Updates an existing administrator workflow setting.
Body parameter
Update the task settings.
{
"id": "TASKS_TAB_COLUMNS",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "assignee",
"order": 6
},
{
"name": "claimedAt",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "name",
"direction": "descending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
settingId | path | string | true | The ID of the setting. |
Content-Type | header | string | false | The version of the workflow setting in the body. |
If-Unmodified-Since | header | integer(int64) | false | The time at which this setting was last modified. |
body | body | workflowSettingRep | false | none |
Example responses
Task settings that control display options for the task grids at the tenant level.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-04T16:12:55.145Z",
"lastUpdatedBy": "videmo"
}
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"type": "application/vnd.sas.investigation.workflow.setting",
"responseType": "application/vnd.sas.investigation.workflow.setting+json"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS",
"uri": "/svi-datahub/workflows/settings/administrators/TASKS_TAB_COLUMNS"
}
],
"version": 1,
"id": "TASKS_TAB_COLUMNS",
"user": "<svi_administrator>",
"columns": {
"defaultColumns": [
{
"name": "isClaimedByCurrentUser",
"order": 1
},
{
"name": "entityLabel",
"order": 2
},
{
"name": "entityInstanceLabel",
"order": 3
},
{
"name": "name",
"order": 4
},
{
"name": "workflowLabel",
"order": 5
},
{
"name": "claimedAt",
"order": 6
},
{
"name": "assignee",
"order": 7
},
{
"name": "createdAt",
"order": 8
},
{
"name": "dueDateTimestamp",
"order": 9
}
],
"defaultSort": [
{
"name": "isClaimedByCurrentUser",
"direction": "ascending",
"order": 1
},
{
"name": "dueDateTimestamp",
"direction": "ascending",
"order": 2
}
]
},
"createdAt": "2023-08-01T21:39:31.048Z",
"createdBy": "<svi_db_user>",
"lastUpdatedAt": "2023-08-04T16:12:55.145Z",
"lastUpdatedBy": "videmo"
}
This is an example of an error returned for bad requests.
{
"httpStatusCode": 400,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a resource is not found.
{
"httpStatusCode": 404,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a precondition failed.
{
"httpStatusCode": 412,
"message": "example error message",
"version": 2
}
{
"httpStatusCode": 412,
"message": "example error message",
"version": 2
}
This is an example of an error returned when a precondition is required.
{
"httpStatusCode": 428,
"message": "example error message",
"version": 2
}
{
"httpStatusCode": 428,
"message": "example error message",
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | workflowSettingRep |
400 | Bad Request | The request was invalid. | error2 |
404 | Not Found | No setting exists at the requested path. | error2 |
412 | Precondition Failed | The If-Match request header did not match the resource's entity tag, or the If-Unmodified-Since request header did not match the resource's last modified timestamp. | error2 |
428 | Precondition Required | The request headers did not include an If-Match or If-Unmodified-Since precondition. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Last-Modified | string | date-time | The time at which this setting was last updated. |
Schemas
workflowInstanceContextRep
{
"variables": {},
"entityInstanceId": "string"
}
workflowInstanceContextRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
variables | object | false | none | A map of the workflow variables for this instance. |
entityInstanceId | string | false | none | The ID of the entity instance. |
sortPreferenceRep
{
"name": "string",
"direction": "string",
"order": 0
}
sortPreferenceRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the column to sort. |
direction | string | false | none | The direction of the sort. |
order | integer(int32) | false | none | The order of the sort. |
workflowRep
{
"entityLabel": "string",
"xmlModel": "string",
"entityInstances": [
{
"variables": {},
"entityInstanceId": "string"
}
],
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"description": "string",
"useForAutoStart": false,
"enabled": false,
"descriptionResource": "string",
"createdAt": "2019-08-24T14:15:22Z",
"entityName": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"entityDefinedProcessVariables": [
"string"
],
"userDefinedProcessVariables": [
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
],
"labelResource": "string",
"entityId": 0,
"label": "string",
"version": 0,
"graphicalModel": "string",
"createdBy": "string",
"name": "string",
"resourceStrings": {
"property1": "string",
"property2": "string"
},
"workflowVersion": 0,
"startOnNewEntityInstance": false,
"lastUpdatedBy": "string"
}
workflowRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityLabel | string | false | none | The label of the entity. |
xmlModel | string | false | none | The Business Process Model and Notation (BPMN) XML model representation of the workflow. |
entityInstances | [workflowInstanceContextRep] | false | none | The list of entities running with this template. |
lastUpdatedAt | string(date-time) | false | none | The timestamp for the last updated time. |
description | string | false | none | The description of the workflow. |
useForAutoStart | boolean | false | none | A flag indicating that this workflow should be used on entity creation. |
enabled | boolean | false | none | A flag indicating that this workflow can be run. |
descriptionResource | string | false | none | The resource key for the workflow. |
createdAt | string(date-time) | false | none | The timestamp for the creation time. |
entityName | string | false | none | The name of the entity. |
links | [link] | false | none | The links that apply to this resource. |
id | string | false | none | The ID of the workflow. |
entityDefinedProcessVariables | [string] | false | none | The workflow variables derived from the entity. |
userDefinedProcessVariables | [variableRep] | false | none | The workflow variables defined by users. |
labelResource | string | false | none | The resource key for the workflow label. |
entityId | integer(int64) | false | none | The ID of the entity. |
label | string | false | none | The label of the workflow. |
version | integer(int32) | false | none | This media type's schema version number. This representation is version 2. |
graphicalModel | string | false | none | The GoJS model representation of the workflow. |
createdBy | string | false | none | The string for the creator's user name. |
name | string | false | none | The name of the workflow. |
resourceStrings | object | false | none | A collection of resource keys and strings for the translatable strings in the workflow. |
» additionalProperties | string | false | none | none |
workflowVersion | integer(int32) | false | none | The version of the workflow. |
startOnNewEntityInstance | boolean | false | none | A flag for starting on entity creation. |
lastUpdatedBy | string | false | none | The string for the user name of the last person to update this definition. |
workflowTaskRepResourceCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"entityLabel": "string",
"participantsVariable": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"workflowDefinitionId": "string",
"description": "string",
"workflowLabel": "string",
"savedAssigneeOnCompleteVariable": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"workflowDescriptionResource": "string",
"workflowLabelResource": "string",
"createdAt": "2019-08-24T14:15:22Z",
"boundaryEventType": "TIMER_DURATION",
"isProcessInstanceSuspended": false,
"isBoundaryEventInterrupting": false,
"boundaryEventDueDateTimeStamp": 0,
"entityName": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"tag": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"definitionId": "string",
"participants": [
{
"name": "string",
"id": "string",
"type": "USER"
}
],
"claimedAt": "2019-08-24T14:15:22Z",
"owner": "string",
"processInstanceId": "string",
"entityInstanceLabel": "string",
"dueDateTimeStamp": 0,
"entityId": 0,
"workflowName": "string",
"workflowDescription": "string",
"entityInstanceId": "string",
"version": 0,
"isClaimedByCurrentUser": false,
"autoAssigneeVariable": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"name": "string",
"assignee": "string",
"workflowVersion": 0,
"actions": [
{
"entityFieldVariables": [
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
],
"name": "string",
"disabled": false,
"id": "string",
"processVariables": [
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
],
"pagePrompt": {
"defaults": [
{
"name": "string",
"id": "string"
}
],
"mobile": [
{
"name": "string",
"id": "string"
}
]
},
"tag": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
}
]
}
]
}
workflowTaskRepResourceCollection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
workflowTaskRepResourceCollection | any | false | none | A collection of workflow tasks. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an 'items' array property. These extensions define the application/vnd.sas.collection media type (version 2) |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [workflowTaskRep] | false | none | The array of resource members. |
participantRep
{
"name": "string",
"id": "string",
"type": "USER"
}
participantRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the participant. |
id | string | false | none | The ID of the participant. |
type | string | false | none | The type (user or group) of the participant. |
Enumerated Values
Property | Value |
---|---|
type | USER |
type | GROUP |
workflowSettingRepResourceCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"createdAt": "2019-08-24T14:15:22Z",
"createdBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"columns": {
"defaultColumns": [
{
"name": "string",
"order": 0
}
],
"defaultSort": [
{
"name": "string",
"direction": "string",
"order": 0
}
]
},
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"user": "string",
"version": 0,
"lastUpdatedBy": "string"
}
]
}
workflowSettingRepResourceCollection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
workflowSettingRepResourceCollection | any | false | none | A collection of workflow settings. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an 'items' array property. These extensions define the application/vnd.sas.collection media type (version 2) |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [workflowSettingRep] | false | none | The array of resource members. |
workflowProcessRep
{
"entityLabel": "string",
"resumeFailed": false,
"workflowDefinitionId": "string",
"workflowLabel": "string",
"workflowDescriptionResource": "string",
"suspendFailed": false,
"lastSuspendedAt": "2019-08-24T14:15:22Z",
"workflowLabelResource": "string",
"entityName": "string",
"completeReason": "string",
"canceledBy": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"state": "RUNNING",
"startedAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"isSuspended": false,
"entityInstanceLabel": "string",
"entityId": 0,
"lastResumedBy": "string",
"workflowName": "string",
"lastResumedAt": "2019-08-24T14:15:22Z",
"workflowDescription": "string",
"entityInstanceId": "string",
"version": 0,
"startedBy": "string",
"workflowVersion": 0,
"lastSuspendedBy": "string"
}
workflowProcessRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityLabel | string | false | none | The label of the entity. |
resumeFailed | boolean | false | none | A flag for a process that could not be resumed. |
workflowDefinitionId | string | false | none | THe ID of the workflow definition. |
workflowLabel | string | false | none | The lLabel of the workflow. |
workflowDescriptionResource | string | false | none | The resource key for the workflow description. |
suspendFailed | boolean | false | none | A fFlag for a process that could not be suspended. |
lastSuspendedAt | string(date-time) | false | none | The timestamp for the last time this process was suspended. |
workflowLabelResource | string | false | none | The resource key for the workflow label. |
entityName | string | false | none | The name of the entity. |
completeReason | string | false | none | The string that records the final state of the process. |
canceledBy | string | false | none | The user name of the person who canceled the process. |
links | [link] | false | none | The links that apply to this resource. |
id | string | false | none | The ID of the workflow process. |
state | string | false | none | The current state of the process. |
startedAt | string(date-time) | false | none | The timestamp that records the start time. |
completedAt | string(date-time) | false | none | The timestamp that records the completion time. |
isSuspended | boolean | false | none | A flag that indicates whether the process is suspended. |
entityInstanceLabel | string | false | none | A label of the entity instance this workflow process is running against. |
entityId | integer(int64) | false | none | The ID of the entity. |
lastResumedBy | string | false | none | The user name of the person who last resumed the process. |
workflowName | string | false | none | The name of the workflow. |
lastResumedAt | string(date-time) | false | none | The timestamp for the last time this process was resumed. |
workflowDescription | string | false | none | The description of the workflow. |
entityInstanceId | string | false | none | The ID of the entity instance this workflow process is running against. |
version | integer(int32) | false | none | This media type's schema version number. This representation is version 1. |
startedBy | string | false | none | The user name of the person who started the process. |
workflowVersion | integer(int32) | false | none | The version of the workflow definition. |
lastSuspendedBy | string | false | none | The user name of the person who last suspended the process. |
Enumerated Values
Property | Value |
---|---|
state | RUNNING |
state | SUSPENDED |
state | CANCELED |
state | COMPLETE |
workflowTaskRep
{
"entityLabel": "string",
"participantsVariable": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"workflowDefinitionId": "string",
"description": "string",
"workflowLabel": "string",
"savedAssigneeOnCompleteVariable": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"workflowDescriptionResource": "string",
"workflowLabelResource": "string",
"createdAt": "2019-08-24T14:15:22Z",
"boundaryEventType": "TIMER_DURATION",
"isProcessInstanceSuspended": false,
"isBoundaryEventInterrupting": false,
"boundaryEventDueDateTimeStamp": 0,
"entityName": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"tag": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"definitionId": "string",
"participants": [
{
"name": "string",
"id": "string",
"type": "USER"
}
],
"claimedAt": "2019-08-24T14:15:22Z",
"owner": "string",
"processInstanceId": "string",
"entityInstanceLabel": "string",
"dueDateTimeStamp": 0,
"entityId": 0,
"workflowName": "string",
"workflowDescription": "string",
"entityInstanceId": "string",
"version": 0,
"isClaimedByCurrentUser": false,
"autoAssigneeVariable": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"name": "string",
"assignee": "string",
"workflowVersion": 0,
"actions": [
{
"entityFieldVariables": [
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
],
"name": "string",
"disabled": false,
"id": "string",
"processVariables": [
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
],
"pagePrompt": {
"defaults": [
{
"name": "string",
"id": "string"
}
],
"mobile": [
{
"name": "string",
"id": "string"
}
]
},
"tag": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
}
]
}
workflowTaskRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityLabel | string | false | none | The label of the entity. |
participantsVariable | variableRep | false | none | A representation of a workflow variable. |
workflowDefinitionId | string | false | none | The ID of the workflow definition. |
description | string | false | none | The description of the task. |
workflowLabel | string | false | none | The label of the workflow. |
savedAssigneeOnCompleteVariable | variableRep | false | none | A representation of a workflow variable. |
workflowDescriptionResource | string | false | none | The resource key for the workflow description. |
workflowLabelResource | string | false | none | The resource key for the workflow label. |
createdAt | string(date-time) | false | none | The task creation time. |
boundaryEventType | string | false | none | The type of boundary timer event (duration or date). |
isProcessInstanceSuspended | boolean | false | none | A flag designating whether the process associated with the task is suspended. |
isBoundaryEventInterrupting | boolean | false | none | A flag designating whether the boundary timer event cancels this task when triggered. |
boundaryEventDueDateTimeStamp | integer(int64) | false | none | The time for the boundary event. |
entityName | string | false | none | The name of the entity. |
links | [link] | false | none | The links that apply to this resource |
id | string | false | none | The ID of the task. |
tag | variableRep | false | none | A representation of a workflow variable. |
definitionId | string | false | none | The ID of the workflow definition this task is running against. |
participants | [participantRep] | false | none | A list of user and group participants who can work this task. |
claimedAt | string(date-time) | false | none | The date claimed. |
owner | string | false | none | The owner of the task. |
processInstanceId | string | false | none | The ID of the workflow process this task is running under. |
entityInstanceLabel | string | false | none | The label of the entity instance this workflow process is running against. |
dueDateTimeStamp | integer(int64) | false | none | The due date. |
entityId | integer(int64) | false | none | The ID of the entity. |
workflowName | string | false | none | The name of the workflow. |
workflowDescription | string | false | none | The description of the workflow. |
entityInstanceId | string | false | none | The ID of the entity instance this workflow process is running against. |
version | integer(int32) | false | none | This media type's schema version number. This representation is version 1. |
isClaimedByCurrentUser | boolean | false | none | The flag designating whether the task is claimed by the user issuing the request. |
autoAssigneeVariable | variableRep | false | none | A representation of a workflow variable. |
name | string | false | none | The name of the task. |
assignee | string | false | none | The user name of the user assigned to this task. |
workflowVersion | integer(int32) | false | none | The version of the workflow definition. |
actions | [actionRep] | false | none | A list of actions for this task. |
Enumerated Values
Property | Value |
---|---|
boundaryEventType | TIMER_DURATION |
boundaryEventType | TIMER_DATE |
actionRep
{
"entityFieldVariables": [
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
],
"name": "string",
"disabled": false,
"id": "string",
"processVariables": [
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
],
"pagePrompt": {
"defaults": [
{
"name": "string",
"id": "string"
}
],
"mobile": [
{
"name": "string",
"id": "string"
}
]
},
"tag": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
}
actionRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityFieldVariables | [variableRep] | false | none | Entity fields to be updated upon completion of this action. |
name | string | false | none | The name of the action. |
disabled | boolean | false | none | The disable action is disabled for user {NEW PROPERTY}. |
id | string | false | none | The ID of the action. |
processVariables | [variableRep] | false | none | The workflow process variables to be updated upon completion of this action. |
pagePrompt | pagePromptRep | false | none | The page template used when completing workflow tasks. |
tag | variableRep | false | none | A representation of a workflow variable. |
pageDetailsRep
{
"name": "string",
"id": "string"
}
pageDetailsRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the page template. |
id | string | false | none | The ID of the page template. |
selectionRep
{
"resources": [
"string"
],
"version": 0
}
selectionRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
resources | [string] | false | none | A list of resource keys. |
version | integer(int32) | false | none | This media type's schema version number. This representation is version 1. |
workflowProcessRepResourceCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"entityLabel": "string",
"resumeFailed": false,
"workflowDefinitionId": "string",
"workflowLabel": "string",
"workflowDescriptionResource": "string",
"suspendFailed": false,
"lastSuspendedAt": "2019-08-24T14:15:22Z",
"workflowLabelResource": "string",
"entityName": "string",
"completeReason": "string",
"canceledBy": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"state": "RUNNING",
"startedAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"isSuspended": false,
"entityInstanceLabel": "string",
"entityId": 0,
"lastResumedBy": "string",
"workflowName": "string",
"lastResumedAt": "2019-08-24T14:15:22Z",
"workflowDescription": "string",
"entityInstanceId": "string",
"version": 0,
"startedBy": "string",
"workflowVersion": 0,
"lastSuspendedBy": "string"
}
]
}
workflowProcessRepResourceCollection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
workflowProcessRepResourceCollection | any | false | none | A collection of workflow processes. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an 'items' array property. These extensions define the application/vnd.sas.collection media type (version 2) |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [workflowProcessRep] | false | none | The array of resource members. |
genericReferenceRep
{
"name": "string",
"id": "string"
}
genericReferenceRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the reference. |
id | string | false | none | The ID of the reference. |
columnSettingRep
{
"defaultColumns": [
{
"name": "string",
"order": 0
}
],
"defaultSort": [
{
"name": "string",
"direction": "string",
"order": 0
}
]
}
columnSettingRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
defaultColumns | [columnPreferenceRep] | false | none | The default columns for the grid. |
defaultSort | [sortPreferenceRep] | false | none | The default sorting of the columns. |
columnPreferenceRep
{
"name": "string",
"order": 0
}
columnPreferenceRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the column. |
order | integer(int32) | false | none | The preference priority. |
historicalMetricsSummaryRep
{
"meanTimePerTaskClaimTimeBasis": 0,
"workflowTasks": [
{
"name": "string",
"id": "string"
}
],
"timeOnCompletedTasksClaimTimeBasis": 0,
"timeOnCompletedTasks": 0,
"medianTimePerTaskClaimTimeBasis": 0,
"meanTimePerTask": 0,
"workflowNames": [
{
"name": "string",
"id": "string"
}
],
"workflowVersions": [
{
"id": "string",
"version": 0
}
],
"name": "string",
"timeOnUncompletedTasksClaimTimeBasis": 0,
"timeOnUncompletedTasks": 0,
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"label": "string",
"version": 0,
"medianTimePerTask": 0
}
historicalMetricsSummaryRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
meanTimePerTaskClaimTimeBasis | number(double) | false | none | The average time spent per task using the claim time basis {NEW PROPERTY}. |
workflowTasks | [genericReferenceRep] | false | none | A list of all tasks for this workflow version (only used when rolling up data to the workflow version level). |
timeOnCompletedTasksClaimTimeBasis | number(double) | false | none | The total time spent on completed tasks using the claim time basis {NEW PROPERTY}. |
timeOnCompletedTasks | number(double) | false | none | The total time spent on completed tasks. |
medianTimePerTaskClaimTimeBasis | number(double) | false | none | The median time spent per task using the claim time basis {NEW PROPERTY}. |
meanTimePerTask | number(double) | false | none | The average time spent per task. |
workflowNames | [genericReferenceRep] | false | none | A list of all workflow names related to this entity {NEW PROPERTY}. |
workflowVersions | [genericVersionReferenceRep] | false | none | A list of all versions of a workflow (only used when rolling up data to the workflow level). |
name | string | false | none | The name of the resource collected. |
timeOnUncompletedTasksClaimTimeBasis | number(double) | false | none | The total time spent on uncompleted tasks using the claim time basis {NEW PROPERTY}. |
timeOnUncompletedTasks | number(double) | false | none | The total time on uncompleted tasks. |
links | [link] | false | none | The links that apply to this resource. |
id | string | false | none | The ID of the resource collected. |
label | string | false | none | The label of the resource collected. |
version | integer(int32) | false | none | This media type's schema version number. This representation is version 1. |
medianTimePerTask | number(double) | false | none | The median time spent per task. |
variableRep
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
variableRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityInstanceIdVariableName | string | false | none | The name of the process variable that contains the entity instance ID of the entity field variable reference where the value can be obtained. |
valueVariableId | string | false | none | The ID of the process variable or entity field variable reference where the value can be obtained. |
defaultValue | string | false | none | The default value of the variable. |
isEntity | boolean | false | none | A flag for distinguishing entities. |
userSelectionStrategy | string | false | none | The object containing user or group settings (used only for variables of USER_GROUP data type). The representation of the user or group data include: USERS,GROUPS, or USERS_AND_GROUPS |
label | string | false | none | The label of the variable. |
type | string | false | none | The data type of the variable. |
defaultValueResource | string | false | none | The resource key of the default value. |
allowMultipleSelections | boolean | false | none | A flag for allowing multiple selections (used only for variables of USER_GROUP data type) A flag for allowing multiple users or groups. |
verifyValueIsSet | boolean | false | none | A flag for the additional confirmation window. |
entityName | string | false | none | The entity name for the entity field variable reference where the value can be obtained. |
name | string | false | none | The name of the variable. |
valueVariableName | string | false | none | The name of the process variable or entity field variable reference where the value can be obtained. |
valueResource | string | false | none | The resource key of the current value. |
id | string | false | none | The ID of the variable. |
setToNull | boolean | false | none | A flag to indicate to set the variable to null value. |
value | string | false | none | The current value of the variable. |
Enumerated Values
Property | Value |
---|---|
userSelectionStrategy | USERS |
userSelectionStrategy | GROUPS |
userSelectionStrategy | USERS_AND_GROUPS |
type | BOOLEAN |
type | STRING |
type | SMALLINT |
type | INTEGER |
type | LONG |
type | FLOAT |
type | DOUBLE |
type | NUMERIC |
type | DATE |
type | TIMESTAMP |
type | USER_GROUP |
type | REFERENCE_DATA |
type | JSON |
historicalWorkflowTaskRepResourceCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"entityLabel": "string",
"participantsVariable": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"workflowDefinitionId": "string",
"description": "string",
"workflowLabel": "string",
"workflowDescriptionResource": "string",
"duration": 0,
"workflowLabelResource": "string",
"entityName": "string",
"action": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"startedAt": "2019-08-24T14:15:22Z",
"definitionId": "string",
"participants": [
{
"name": "string",
"id": "string",
"type": "USER"
}
],
"claimedAt": "2019-08-24T14:15:22Z",
"processInstanceId": "string",
"completedAt": "2019-08-24T14:15:22Z",
"entityInstanceLabel": "string",
"dueDateTimeStamp": "2019-08-24T14:15:22Z",
"entityId": 0,
"workflowName": "string",
"workflowDescription": "string",
"entityInstanceId": "string",
"version": 0,
"name": "string",
"assignee": "string",
"workflowVersion": 0
}
]
}
historicalWorkflowTaskRepResourceCollection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
historicalWorkflowTaskRepResourceCollection | any | false | none | A collection of workflow process history. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an 'items' array property. These extensions define the application/vnd.sas.collection media type (version 2) |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [historicalWorkflowTaskRep] | false | none | The array of resource members. |
genericVersionReferenceRep
{
"id": "string",
"version": 0
}
genericVersionReferenceRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The ID of the object. |
version | integer(int32) | false | none | The version of the object. |
historicalMetricsSummaryRepResourceCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"meanTimePerTaskClaimTimeBasis": 0,
"workflowTasks": [
{
"name": "string",
"id": "string"
}
],
"timeOnCompletedTasksClaimTimeBasis": 0,
"timeOnCompletedTasks": 0,
"medianTimePerTaskClaimTimeBasis": 0,
"meanTimePerTask": 0,
"workflowNames": [
{
"name": "string",
"id": "string"
}
],
"workflowVersions": [
{
"id": "string",
"version": 0
}
],
"name": "string",
"timeOnUncompletedTasksClaimTimeBasis": 0,
"timeOnUncompletedTasks": 0,
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"label": "string",
"version": 0,
"medianTimePerTask": 0
}
]
}
historicalMetricsSummaryRepResourceCollection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
historicalMetricsSummaryRepResourceCollection | any | false | none | A collection of information about the process metric summary. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an 'items' array property. These extensions define the application/vnd.sas.collection media type (version 2) |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [historicalMetricsSummaryRep] | false | none | The array of resource members. |
historicalWorkflowTaskRep
{
"entityLabel": "string",
"participantsVariable": {
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
},
"workflowDefinitionId": "string",
"description": "string",
"workflowLabel": "string",
"workflowDescriptionResource": "string",
"duration": 0,
"workflowLabelResource": "string",
"entityName": "string",
"action": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"startedAt": "2019-08-24T14:15:22Z",
"definitionId": "string",
"participants": [
{
"name": "string",
"id": "string",
"type": "USER"
}
],
"claimedAt": "2019-08-24T14:15:22Z",
"processInstanceId": "string",
"completedAt": "2019-08-24T14:15:22Z",
"entityInstanceLabel": "string",
"dueDateTimeStamp": "2019-08-24T14:15:22Z",
"entityId": 0,
"workflowName": "string",
"workflowDescription": "string",
"entityInstanceId": "string",
"version": 0,
"name": "string",
"assignee": "string",
"workflowVersion": 0
}
historicalWorkflowTaskRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityLabel | string | false | none | The label of the entity. |
participantsVariable | variableRep | false | none | A representation of a workflow variable. |
workflowDefinitionId | string | false | none | The ID of the workflow definition. |
description | string | false | none | The description of the task. |
workflowLabel | string | false | none | The label of the workflow. |
workflowDescriptionResource | string | false | none | The resource key for the workflow description. |
duration | integer(int64) | false | none | The duration of this task. |
workflowLabelResource | string | false | none | The resource key for the workflow label. |
entityName | string | false | none | The name of the entity. |
action | string | false | none | The task action. |
links | [link] | false | none | The links that apply to this resource. |
id | string | false | none | The ID of the task. |
startedAt | string(date-time) | false | none | The start time of this task. |
definitionId | string | false | none | The ID of the workflow definition this task is running against. |
participants | [participantRep] | false | none | The list of user and group participants who can work on this task. |
claimedAt | string(date-time) | false | none | The date claimed. |
processInstanceId | string | false | none | The ID of the workflow process this task is running under. |
completedAt | string(date-time) | false | none | The completion time of this task. |
entityInstanceLabel | string | false | none | The label of the entity instance this workflow process is running against. |
dueDateTimeStamp | string(date-time) | false | none | The date due. |
entityId | integer(int64) | false | none | The ID of the entity. |
workflowName | string | false | none | The name of the workflow. |
workflowDescription | string | false | none | The description of the workflow. |
entityInstanceId | string | false | none | The ID of the entity instance this workflow process is running against. |
version | integer(int32) | false | none | This media type's schema version number. This representation is version 1. |
name | string | false | none | The name of the task. |
assignee | string | false | none | The user name of the user assigned to this task. |
workflowVersion | integer(int32) | false | none | The version of the workflow definition. |
pagePromptRep
{
"defaults": [
{
"name": "string",
"id": "string"
}
],
"mobile": [
{
"name": "string",
"id": "string"
}
]
}
pagePromptRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
defaults | [pageDetailsRep] | false | none | The default page template used. |
mobile | [pageDetailsRep] | false | none | The page template used for mobile clients. |
workflowRepResourceCollection
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0,
"items": [
{
"entityLabel": "string",
"xmlModel": "string",
"entityInstances": [
{
"variables": {},
"entityInstanceId": "string"
}
],
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"description": "string",
"useForAutoStart": false,
"enabled": false,
"descriptionResource": "string",
"createdAt": "2019-08-24T14:15:22Z",
"entityName": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"entityDefinedProcessVariables": [
"string"
],
"userDefinedProcessVariables": [
{
"entityInstanceIdVariableName": "string",
"valueVariableId": "string",
"defaultValue": "string",
"isEntity": false,
"userSelectionStrategy": "USERS",
"label": "string",
"type": "BOOLEAN",
"defaultValueResource": "string",
"allowMultipleSelections": false,
"verifyValueIsSet": false,
"entityName": "string",
"name": "string",
"valueVariableName": "string",
"valueResource": "string",
"id": "string",
"setToNull": false,
"value": "string"
}
],
"labelResource": "string",
"entityId": 0,
"label": "string",
"version": 0,
"graphicalModel": "string",
"createdBy": "string",
"name": "string",
"resourceStrings": {
"property1": "string",
"property2": "string"
},
"workflowVersion": 0,
"startOnNewEntityInstance": false,
"lastUpdatedBy": "string"
}
]
}
workflowRepResourceCollection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
workflowRepResourceCollection | any | false | none | A collection of workflow templates. |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an 'items' array property. These extensions define the application/vnd.sas.collection media type (version 2) |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [workflowRep] | false | none | The array of resource members. |
workflowSettingRep
{
"createdAt": "2019-08-24T14:15:22Z",
"createdBy": "string",
"lastUpdatedAt": "2019-08-24T14:15:22Z",
"columns": {
"defaultColumns": [
{
"name": "string",
"order": 0
}
],
"defaultSort": [
{
"name": "string",
"direction": "string",
"order": 0
}
]
},
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"id": "string",
"user": "string",
"version": 0,
"lastUpdatedBy": "string"
}
workflowSettingRep
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
createdAt | string(date-time) | false | none | The time of creation. |
createdBy | string | false | none | The name of the user who created the settings. |
lastUpdatedAt | string(date-time) | false | none | The time of the last update. |
columns | columnSettingRep | false | none | A collection of settings for displaying grid columns. |
links | [link] | false | none | The links that apply to this resource. |
id | string | false | none | The ID of the setting. |
user | string | false | none | The name of user for these settings. |
version | integer(int32) | false | none | This media type's schema version number. This representation is version 1. |
lastUpdatedBy | string | false | none | The name of the user who last updated the settings. |
error2
{
"message": "string",
"id": "string",
"errorCode": 0,
"httpStatusCode": 0,
"details": [
"string"
],
"remediation": "string",
"errors": [
null
],
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
Error
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | The message for the error. |
id | string | false | none | The string ID for the error. |
errorCode | integer | false | none | The numeric ID for the error. |
httpStatusCode | integer | true | none | The HTTP status code for the error. |
details | [string] | false | none | Messages that provide additional details about the cause of the error. |
remediation | string | false | none | A message that describes how to resolve the error. |
errors | [error2] | false | none | Any additional errors that occurred. |
links | [link] | false | none | The links that apply to the error. |
version | integer | true | none | The version number of the error representation. This representation is version 2. |
baseCollection2
{
"name": "string",
"start": 0,
"limit": 0,
"count": 0,
"accept": "string",
"links": [
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
],
"version": 0
}
Base Collection
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the collection. |
start | integer(int64) | false | none | The zero-based index of the first item in the collection. |
limit | integer | false | none | The number of items that were requested for the collection. |
count | integer(int64) | false | none | If populated indicates the number of items in the collection. |
accept | string | false | none | A space-delimited list of media types from which an Accept header may be constructed. |
links | [link] | false | none | The links that apply to the collection. |
version | integer | false | none | The version number of the collection representation. This representation is version 2. |
link
{
"method": "string",
"rel": "string",
"uri": "string",
"href": "string",
"title": "string",
"type": "string",
"itemType": "string",
"responseType": "string",
"responseItemType": "string"
}
Link
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
method | string | false | none | The HTTP method for the link. |
rel | string | true | none | The relationship of the link to the resource. |
uri | string | false | none | The relative URI for the link. |
href | string | false | none | The URL for the link. |
title | string | false | none | The title for the link. |
type | string | false | none | The media type or link type for the link. |
itemType | string | false | none | If this is a link to a container, itemType is the media type or link type for the items in the container. |
responseType | string | false | none | The media type or link type of the response body for a PUT , POST , or PATCH operation. |
responseItemType | string | false | none | The media type or link type of the items in the response body for a PUT , POST , or PATCH operation. |
Examples
Search and Discovery
Base URLs:
- https://example.com/svi-sand
Terms of service Email: SAS Developers Web: SAS Developers License: Terms of Use
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The SAS Visual Investigator Search and Discovery API provides access to real-time exploration and visualization of the data in SAS Visual Investigator.
Usage Notes
Overview
Context
This API provides access to the Search and Discovery (SAND) component of SAS Visual Investigator (VI).
VI is an intelligence analytics solution. The user documentation can be found in the SAS Visual Investigator: Help Center.
SAND is responsible for:
the real-time exploration of objects and relationships using free text, faceted, geospatial, and graph search capabilities.
visualizing search results in various meaningful ways, such as in a table, on a map, or as a graph.
configuring the underlying search engine.
Other VI components related to SAND are:
Data Hub responsible for accessing customer data and storing VI-generated data.
Indexer responsible for indexing customer and VI-generated data into SAND managed indices.
Alerts responsible for generating and triaging alerts.
Feature responsible for managing user group memberships for authorization and entity-level security purposes.
Purpose
This API provides access to the Search and Discovery component of Visual Investigator in order to perform real-time search operations over JSON-formatted data and visualize the results in various meaningful ways. This differs from the SAS VIYA Search service, which provides free text and faceted search capabilities but not geospatial or graph search, or the ability to visualize the results in multiple ways.
Consumers and Usage
This API is primarily used by SAS Visual Investigator services, clients, and any authenticated and authorized REST client to perform free text, faceted, geospatial, or graph searches over JSON-formatted data and present or consume one or more of the resultant visualizations.
The following use cases are described in detail in the examples section:
Use Case One A request to /searches to search for all person objects with the name John Smith and aged between 20 and 30.
Use Case Two A request to /traversals to traverse the relationships for a given person object to find related people, reports and addresses.
Use Case Three A request to /vertices to retrieve detailed information about a single report object such as the summary label as well as the adjacent and degree counts.
Use Case Four A request to /admin/config to import configuration into a new system.
Use Case Five A sequence of requests to /admin/indices/person, the underlying search engine, and /admin/operations to re-index all the person data in the background (so as not to interrupt on going searches).
Use Case Six Defining events in a request to /admin/config/types to facilitate time and geospatial searching for account objects.
Security
All the resources in this API require a valid OAuth 2.0 token from SASLogon.
Calls that do not include a valid OAuth 2.0 token made from a web-browser are re-directed to the SASLogon page, whereas calls made from other clients receive a 401 HTTP code.
The resources in this API are restricted to members of the sviusrs or sasapp groups, all other users receive a 403 HTTP code.
In addition,
all of the search-related resources require users to have the svi.search capability
all of the text analytics related resources require users to have the svi.text_analytics capability
all of the administration-related resources (other than HEAD and GET on /admin/config, /admin/config/types and /admin/config/types/type) require users to have the svi.administration.sand capability
Users without the required capabilities receive a 403 HTTP code.
The Feature component can be used to manage group memberships and assign capabilities.
Terminology
User terminology
user
represents an end user of SAS Visual Investigator.
group
represents a collection of users for authorization and security purposes. Groups are managed by the Feature component.
capability
an authorization key that a user must have to be able to perform a particular operation within SAS Visual Investigator. Capabilities are managed by the Feature component. In relation to the SAND component, users must have the search capability to perform any search-related operations, the text analytics capability to perform text analytics, and the administration capability to perform any administration-related operations.
Data terminology
object
represents a unit of data in the system. Objects have a type, unique identifier and consist of named values. Objects can be hierarchical and contain other objects.
entity (object type)
describes the structure of a particular object by listing the fields and their data types. Field data types include: Boolean, date, double, integer, long, and text. Entities can be classified as internal, external or resolved. (See below.)
internal entity
describes the structure of an object that is stored within VI and therefore can be created, viewed, edited or deleted within SAS Visual Investigator.
external entity
describes the structure of an object that is stored in an external database or file and therefore can be viewed only within SAS Visual Investigator.
resolved entity
describes the structure of an object that consists of field values extracted from internal and external entity objects by the Entity Resolution component in SAS Visual Investigator. These objects are stored within VI but can only be viewed. For example, the Entity Resolution component can be configured to resolve organization objects by extracting business names, addresses, and telephone numbers etc. from field values in multiple internal or external entity objects.
compound value
a unique identifier for a resolved entity object. This is different from the unique identifier of an internal or external entity object because it is constructed from multiple field values extracted from the resolved entity object's contributing objects. Individually, the extracted field values might not be unique, but their combination produces a unique value called a compound value.
relationship
represents a connection between two objects (including the connections between a resolved entity object and its contributing internal or external entity objects). Relationships have a type, unique identifier and a set of fields just like objects. A relationship can be between two different objects only. In other words, objects cannot be related to themselves. Resolved entity objects cannot be related to other resolved entity objects, except via their contributing entity objects. (Not to be confused with the Relationships service definition.)
relationship type
describes the structure of a particular relationship by listing the fields and their data types. Field data types include: Boolean, date, double, integer, long, and text.
events
capture what, when, where information and are the units of data for the Map, Map Feature, Time Line and Time Bar visualizations. (See below.) Events are extracted from internal and external entity objects as they are indexed.
Search terminology
free text search
a search based on a text query conforming to a particular syntax. Objects containing data that match the text query are included in the results.
faceted search
a search based on applying particular filters in order to drill down further into particular search results. Objects containing data that match the filters are included in the results.
geospatial search
a search based on a geographical area as defined by one or more geospatial shapes, such as circle, rectangle or polygon. Objects containing geographical data that falls within or borders the specified shapes are included in the results.
graph search
a search based on connections between objects. Objects and the relationships between them that match the search criteria are included in the results.
hit
a single object found in a search.
vertex
an object within the context of a graph search.
edge
a relationship within the context of a graph search.
path
a finite sequence of relationships (edges) connecting a sequence of objects (vertices).
traversal
a breadth first graph search following all the relationships (edges) extending outwards from one or more objects (vertices).
corpus
the collection of unstructured text extracted from search results over which text analytics are performed.
Sankey diagram
a flow diagram where the size of the arrows is determined by the number of objects containing the text analytics result on both sides of the arrow.
Visualization terminology
The following visualizations provide different ways of viewing and exploring search results:
hits
the total number of hits grouped by entity.
summary
the hits as a paged list where each list entry is a summary of the object's field values the content that matched the query.
table
the hits as a paged table where the columns are a subset of the fields and the rows contain the values.
time line
the datetime data extracted from the hits as a paged series of swim lanes (charts with time on the X axis and the datetime data plotted on the Y axis), one swim lane per object found in the search.
time bar
the number of hits per datetime interval for display on a chart, which can be used to help scroll through the results on the Time Line.
map
the geo data extracted from the hits for display on a map.
map feature
the details about the objects at a specified geo location on a map.
network
the objects and their relationships as a network chart. Also known as a graph with vertices that represent objects and edges that represent relationships.
facets
the hit counts per field value grouped by entity. The included fields must be pre-configured on a per entity basis and are restricted to categorical text fields (meaning those with a small number of different values) or pre-configured numerical or date ranges on numerical or date fields. The Facets visualization is intended to inform the consuming application which filters to apply in order to drill down into the results.
text analytics
the significant terms, phrases, and topics as well as named person, location and organization entities extracted from the unstructured text in the objects found by the search.
Analyzer terminology
analyzer
An analyzer is used by the underlying search engine to process the content of text fields during indexing and to process query terms at search time. The analyzer(s) applied to a particular field therefore determine the search behavior for that field.
standard analyzers
Here is the list of standard analyzers:
standard: produces lowercase tokens by splitting the text on word boundaries as defined by the Unicode Text Segmentation algorithm. It is useful when the stemming and stop word removal features etc. of the language-specific analyzers are not required.
simple: produces lowercase tokens by splitting the text on non-letter characters (the non-letter characters will be removed). It is useful for removing numbers and other non-letter characters.
whitespace: simply splits the text on whitespace characters. Useful for case-sensitive matching on parts of the text.
stop: like the Simple analyzer but also removes English stop words. (Unfortunately, the list of stop words cannot be modified without creating a custom analyzer.)
keyword: a no-op analyzer that treats the text as a single token.
fingerprint: implements the fingerprint algorithm that treats the text as a single token where the individual words are lowercase, normalized, and sorted with duplicates removed.
language analyzers
Here is the list of language analyzers:
arabic, armenian, basque, bengali, brazilian, bulgarian, catalan, cjk, czech, danish, dutch, english, estonian, finnish, french, galician, german, greek, hindi, hungarian, indonesian, irish, italian, kuromoji, latvian, lithuanian, nori, norwegian, persian, polish, portuguese, romanian, russian, smartcn, sorani, spanish, swedish, thai, turkish.
cjk is a simple analyzer for Chinese, Japanese and Korean that produces bi-grams. smartcn on the other hand uses probability to tokenise Chinese text. kuromoji is the dedicated analyzer for Japanese. nori is the dedicated analyzer for Korean.
sand analyzers
Here is the list of sand analyzers:
sand_icu_search: like the Standard analyzer but with better support for analyzing Asian languages because it uses the International Components for Unicode (ICU) tokenizer (as opposed to the standard tokenizer). The default analyzer if there is not a language analyzer matching the global or tenant locale. Also, the recommended analyzer for searching when the text is in multiple languages.
sand_not_analyzed: treats the text as a single token. The recommended analyzer for faceting on the unmodified text.
sand_icu_facet: converts the text into a single lowercase token using an ICU normalization algorithm. The recommended analyzer for case-insensitive faceting.
sand_icu_sort: uses the Unicode collation element table appropriate to the global or tenant locale setting to convert the text into a sortable key. The recommended analyzer for sorting.
sand_icu_shingle: produces lowercase bi-grams from the text using the ICU tokenizer and normalization algorithm. When used as an additional analyzer, it boosts results matching two consecutive query terms.
sand_filename: produces lowercase tokens by splitting the text on non-alphanumeric characters (the non-alphanumeric characters will be removed). Useful for removing non-alphanumeric characters.
sand_phonetic: produces sounds-like tokens for phonetic searching using one of twelve phonetic algorithms.
sand_synonym: produces the same output for a pre-defined list of terms to facilitate synonym searching. It is based on the language analyzer appropriate to the global or tenant locale so that the list of synonyms does not need to include stems or stop words.
Error Codes
HTTP status code | Error code | Description |
---|---|---|
500 | 95000 | An internal error occurred. |
503 | 95001 | An error occurred during a request to a different service. |
400 | 95002 | A request parameter is missing a value. |
400 | 95010 | The request body contains an invalid value. |
403 | 95011 | The current user is not authorized to perform the requested action. |
406, 415 | 95012 | The requested media type is invalid. |
415 | 95013 | The requested media type is not supported. |
400 | 95014 | The request is not readable. |
405 | 95015 | The HTTP method is not supported by the URI. |
400 | 95016 | A method argument is invalid. |
400, 428 | 95017 | A parameter is missing from the request. |
400 | 95018 | There is no matching handler for the request. |
400 | 95019 | A request parameter could not be satisfied. |
400 | 95020 | A HTTP header contains an invalid value. |
400 | 95030 | A range query or filter is missing a value for its parameters. At least one of the "gt", "gte", "lt", or "lte" parameters must have a value. |
400 | 95031 | The parameters "gt" and "gte" both contain a value. Only one of these parameters can be used at a time. |
400 | 95032 | The parameters "lt" and "lte" both contain a value. Only one of these parameters can be used at a time. |
400 | 95033 | The value of the "gt" or "gte" parameter is greater than the value of the "lt" or "lte" parameter. |
400 | 95034 | Both range parameters have the same value but this is only appropriate for the "gte" and "lte" parameters. |
400 | 95036 | The "orderBy" parameter has an invalid value. |
400 | 95037 | The "orderDirection" parameter has an invalid value. |
400 | 95038 | An attempt was made to order the results by field that does not exist. |
400 | 95039 | An attempt was made to order the results by a text field that does not have the "sort" feature. |
400 | 95040 | The "precision" parameter has a value that is not a whole number in the range 1 to 12. |
400 | 95041 | The "limit" parameter has a value less than zero. |
400 | 95042 | The top-left latitude of the specified bounded-box query is less than its bottom-right latitude. |
400 | 95043 | The specified polygon query has less than three points. |
400 | 95044 | The date range contains an invalid datetime value. |
400 | 95045 | A duplicate field name was detected. |
400 | 95046 | One or more fields have an invalid type. |
400 | 95047 | The bulk request contains an invalid data operation. |
400 | 95048 | The type definition has an invalid category. |
400 | 95049 | One or more text fields have an invalid value for the features option. |
400 | 95050 | The object identifier is invalid. It must be of the form "type#id" where type is the name of the type and id is the identifier. |
400 | 95051 | The accuracy setting for datetime values is invalid. Accepted values: oneHundredYear, fiftyYear, tenYear, year, month, day, hour, minute, second, millisecond. |
400 | 95052 | The interval setting for datetime values is invalid. Accepted values: oneHundredYear, fiftyYear, tenYear, year, quarter, month, week, day, hour, minute, second. |
400 | 95053 | A boolean query has no query clauses; at least one is required. |
400 | 95054 | The default search analyzer is not a valid OpenSearch or sand analyzer. |
400 | 95055 | The default facet analyzer is not a valid OpenSearch or sand analyzer. |
400 | 95056 | The default sort analyzer is not a valid OpenSearch or sand analyzer. |
400 | 95057 | The "analysis.icuFilter" setting has an invalid value. Supported ICU filters: icu_normalizer_filter, icu_folding_filter. |
400 | 95058 | The search analyzer for a given text field is not a valid OpenSearch or sand analyzer. |
400 | 95059 | The facet analyzer for a given text field is not a valid OpenSearch or sand analyzer. |
400 | 95060 | The sort analyzer for a given text field is not a valid OpenSearch or sand analyzer. |
400 | 95061 | One of the configured locales in relation to the "sand_icu_sort" analyzer is missing a language code. |
503 | 95062 | The results for a text analytics job could not be saved. |
503 | 95063 | The results for a text analytics job could not be retrieved. |
503 | 95064 | The results for a text analytics job could not be deleted. |
503 | 95065 | The results for a text analytics job could not be cleaned up. |
503 | 95066 | The list of synonyms could not be saved. |
503 | 95067 | The list of synonyms could not be retrieved. |
503 | 95068 | The list of synonyms could not be deleted. |
503 | 95069 | The state of an initialization task could not be retrieved. |
400 | 95070 | The map filter contains an invalid GeoJSON shape. |
503 | 95071 | The custom analyzers could not be saved. |
503 | 95072 | The custom analyzers could not be retrieved. |
503 | 95073 | The custom analyzers could not be deleted. |
503 | 95074 | A custom analyzer could not be saved. |
503 | 95075 | A custom analyzer could not be retrieved. |
503 | 95076 | A custom analyzer could not be deleted. |
503 | 95077 | The GeoJSON shapes could not be saved. |
503 | 95078 | The GeoJSON shapes could not be retrieved. |
503 | 95079 | The GeoJSON shapes could not be deleted. |
503 | 95080 | A GeoJSON shape could not be saved. |
503 | 95081 | A GeoJSON shape could not be retrieved. |
503 | 95082 | A GeoJSON shape could not be deleted. |
500 | 95100 | The URL provided to the OpenSearch engine could not be resolved. |
503 | 95101 | A request could not be sent to the OpenSearch engine. |
503 | 95102 | The response from the OpenSearch engine could not be parsed. |
503 | 95103 | The response from the OpenSearch engine is null. |
503 | 95104 | The response from the OpenSearch engine has no content. |
503 | 95105 | A request to the OpenSearch engine returned an error. |
404 | 95106 | The bulk data request contains an entity type that does not exist. |
400 | 95107 | The bulk data request for the OpenSearch engine could not be parsed. |
400 | 95108 | The query contains syntax errors. |
503 | 95109 | The search request to the OpenSearch engine timed out. |
503 | 95110 | The OpenSearch engine was unable to search one or more indices. |
400 | 95111 | The query contains a leading wildcard (i.e. * or ?). Searching with leading wildcards is not allowed. |
503 | 95112 | A security role could not be created for a relationship. |
503 | 95113 | A security role could not be deleted for a relationship. |
400 | 95114 | The start and limit parameters in the request exceed the paging limit. |
503 | 95115 | OpenSearch security is not initialized. |
503 | 95116 | OpenSearch returned an unexpected error. |
503 | 95117 | OpenSearch returned an error involving one or more indices. |
400 | 95130 | A text query has an invalid language. Supported languages: lucene. |
400 | 95131 | The identifier of the current user could not be determined. Try again or delete all references to "%current_user_id%" from the text query. |
400 | 95132 | A terms filter references a field that does not exist. |
404 | 95139 | No vertex was found for the given identifier. |
400 | 95140 | The graph search was canceled because there were too many objects to process. |
503 | 95141 | The configuration for a number of types could not be deleted. |
404 | 95142 | The request contains an alias for an entity that does not exist or does not have the the "indexed for search" option selected. |
409 | 95143 | An attempt was made to create a new type with the name of an existing type. |
404 | 95144 | The request contains an entity that does not exist. |
404 | 95145 | The request contains an entity that does not exist or does not have the the "indexed for search" option selected. |
400 | 95146 | The request contains a type that is not configured to represent edges in a graph. |
400 | 95147 | The request contains a type that is not configured to represent vertices in a graph. |
412 | 95148 | The type configuration being edited is for an out-of-date version. Retrieve and edit the latest version of the configuration. |
503 | 95149 | The configuration for multiple types could not be read. |
503 | 95150 | The configuration for a single type could not be read. |
503 | 95151 | The configuration for a single type could not be saved. |
503 | 95152 | The configuration for a single type could not be deleted. |
503 | 95153 | The name of the index for a single type could not be read. |
503 | 95154 | The name of the index for a single type could not be deleted. |
503 | 95155 | The name of the index for a single type could not be saved. |
503 | 95156 | The names of all the indices could not be deleted. |
503 | 95157 | The template for a single type could not be read. |
503 | 95158 | The template for a single type could not be saved. |
503 | 95159 | The template for a single type could not be deleted. |
503 | 95160 | The index for a single type could not be read. |
503 | 95161 | The index for a single type could not be created. |
503 | 95162 | The index for a single type could not be updated. |
503 | 95163 | The index for a single type could not be deleted. |
503 | 95164 | The links for objects of a given entity type could not be deleted. |
400 | 95166 | The summary configuration for a given type contains a field that does not exist. |
400 | 95167 | The summary configuration for a given type contains a field that is not indexed for search. |
400 | 95168 | The table configuration for a given type contains a field that does not exist. |
400 | 95169 | The table configuration for a given type contains a field that is not indexed for search. |
400 | 95170 | The graph configuration for a given type contains a field that does not exist. |
400 | 95171 | The graph configuration for a given type contains a field that is not indexed for search. |
400 | 95172 | The facets configuration for a given type contains a field that does not exist. |
400 | 95173 | The facets configuration for a given type contains a field that is not indexed for search. |
400 | 95174 | The text analytics configuration for a given type contains a field that does not exist. |
400 | 95175 | The text analytics configuration for a given type contains a field that is not indexed for search. |
400 | 95176 | The text analytics configuration for a given type contains an inappropriate field: only boolean, date, numerical, and text fields are appropriate. |
400 | 95177 | The text analytics configuration for a given type has "from" and "to" fields but does not have any fields to analyze. |
400 | 95178 | The text analytics configuration for a given type has a "to" field but no "from" field. |
400 | 95179 | The text analytics configuration for a given type has a "from" field but no "to" field. |
400 | 95180 | The label configuration for a given type contains a field that does not exist. |
400 | 95181 | The description configuration for a given type contains a field that does not exist. |
400 | 95182 | The summary configuration for a given type uses an invalid highlighter. Suppported highlighters: plain, unified, fvh. |
503 | 95183 | An initialization task could not be started. |
400 | 95185 | The facets configuration for a given type contains a non-categorical field in a terms facet. |
400 | 95186 | The facets configuration for a given type contains a non-numerical field in a numerical range facet. |
400 | 95187 | The facets configuration for a given type contains a non-datetime field in a date range facet. |
400 | 95188 | The table configuration for a given type contains a field whose values cannot be sorted. |
200 | 95189 | The data for a single type needs to be re-indexed for all the configuration changes to take effect. |
200 | 95190 | The data for multiple types needs to be re-indexed for all the configuration changes to take effect. |
404 | 95191 | The text analytics results could not be found for the specified job. |
202 | 95192 | The text analytics results are not yet available for the specified job. |
404 | 95193 | There are no text analytics results of the requested category for the specified job. |
404 | 95194 | There are no text analytics results matching the requested phrase for the specified job. |
404 | 95195 | There are no text analytics results matching the requested category and phrase for the specified job. |
400 | 95196 | An invalid surname position was specified for the auto-aliasing feature in text analytics. Valid positions: first, last. |
400 | 95197 | The text analytics job failed because there were no fields to analyze. Fields should be configured for the relevant entity types or provided in the request. |
400 | 95198 | The text analytics job failed because there were no search results matching the query. |
206 | 95199 | The text analytics job only partially succeeded because there was not enough data. |
500 | 95200 | The text analytics job failed because the CAS-related operations could not be skipped. |
206 | 95201 | The text analytics job only partially succeeded because a table could not be created in CAS. |
206 | 95202 | The text analytics job only partially succeeded because the data could not be loaded into a CAS table. |
206 | 95203 | The text analytics job only partially succeeded because a required CAS action could not be loaded. |
206 | 95204 | The text analytics job only partially succeeded because the "textMining" CAS action failed to run. |
206 | 95205 | The text analytics job only partially succeeded because the "textMining" CAS action returned an error. |
206 | 95206 | The text analytics job only partially succeeded because the "textMining" CAS action is not licensed. |
400 | 95207 | The request contains a locale that is not a BCP 47 language tag. |
400 | 95208 | The request contains a locale that is not supported. The /analytics/locales endpoint lists the supported locales. |
400 | 95209 | The request contains a locale that the "textMining" CAS action is not licensed for. |
206 | 95210 | The text analytics job only partially succeeded because the "dataStep" CAS action failed to run. |
206 | 95211 | The text analytics job only partially succeeded because the "dataStep" CAS action returned an error. |
206 | 95212 | The text analytics job only partially succeeded because CAS returned an error. |
400 | 95213 | A Facets visualization has an invalid value for the "mode" parameter. Accepted values: filter, selection. |
400 | 95214 | A numerical or date range facet is missing values for both the "filter" and "ranges" parameters; at least one parameter requires a value. |
400 | 95215 | A numerical or date range facet has both the "allowExact" and "allowRange" parameters set to "false". Change the value of one parameter or delete the "filter" parameter. |
400 | 95216 | A terms facet has a value for the "displayLimit" parameter that is not greater than zero. |
400 | 95218 | An event has been defined with both a point timestamp and an interval timestamp. |
400 | 95219 | An event has been defined with only a value for the start or end of the interval timestamp. Provide a value for the other side of the interval. |
400 | 95220 | An event has been defined with a latitude/longitude value and a GeoJSON value but only one of these methods of defining a location is expected. |
400 | 95221 | An event has been defined with a partial latitude/longitude value. Provide a value for the missing location parameter. |
400 | 95222 | An event has been defined that does not have a time or location value. |
400 | 95223 | No Time Line data was found in the requested page of results. |
200 | 95224 | The search only partially succeeded. |
400 | 95225 | The values of the request parameters "types" and "excludeCategoryAliases" combine to produce an empty list of indices to search. This will result in nothing being deleted. Consider changing the value of one of the parameters. |
400 | 95226 | The query contains an extra open or close bracket. |
400 | 95227 | The query contains a malformed child query. Child queries are of the form: CHILD_QUERY(child entity name,%child query%) |
400 | 95228 | The data for a single relationship needs to be re-indexed for all the configuration changes to take effect. |
400 | 95229 | The list of synonyms is empty. |
400 | 95230 | One of the synonyms in the list exceeds the 1000 character limit. |
400 | 95231 | One of the synonyms in the list does not have enough terms. At least two terms are required that are not stop words. |
400 | 95232 | The graph metrics calculation was canceled because there were too many objects to process. |
400 | 95233 | The query contains an extra boolean operator. |
409 | 95234 | A custom analyzer couldn't be created because one already exists with the same name. |
400 | 95235 | The analyzer being udpated or deleted is a system analyzer. System analyzers cannot be updated or deleted. |
412 | 95236 | The version of the analyzer being updated is out-of-date. Retrieve and edit the latest version of the analyzer. |
400 | 95237 | The name of a custom analyzer exceeds the maximum length of 100. |
400 | 95238 | The display name of a custom analyzer exceeds the maximum length of 100. |
404 | 95239 | The GeoJSON shape referred to in the request does not exist. |
412 | 95240 | The version of the GeoJSON shape being updated is out-of-date. Retrieve and edit the latest version of the GeoJSON shape. |
409 | 95241 | A GeoJSON shape couldn't be created because one already exists with the same identifier. |
400 | 95242 | The identifier of a GeoJSON shape exceeds the maximum length of 36. |
400 | 95243 | The name of a GeoJSON shape exceeds the maximum length of 100. |
400 | 95244 | The group of a GeoJSON shape exceeds the maximum length of 100. |
400 | 95245 | A GeoJSON shape contains invalid GeoJSON. Refer to the GeoJSON standard for more information. |
400 | 95246 | The events configuration for a given type contains a field that does not exist. |
400 | 95247 | The events configuration for a given type contains an absolute path to a child entity field but a relative path is required instead. |
200 | 95248 | All of the entity and relationship types need to be re-indexed for all the configuration changes to take effect. |
400 | 95249 | The query does not match the content of the current object. |
200 | 95250 | The matching content in the current object could not be highlighted. |
400 | 95251 | An analyzer has a solution name that exceeds the maximum length of 250. |
400 | 95252 | A GeoJSON shape has a solution name that exceeds the maximum length of 250. |
400 | 95253 | An entity or relationship type has a solution name that exceeds the maximum length of 200. |
400 | 95254 | One or more GeoJSON shapes contain invalid GeoJSON. Refer to the GeoJSON standard for more information. |
400 | 95255 | An entity or relationship type has a display name that exceeds the maximum length of 255. |
400 | 95256 | An application setting could not be updated. |
400 | 95258 | An application setting could not be updated because its parent setting has not been updated first. |
400 | 95259 | The request contains duplicate application settings. |
400 | 95330 | The request contains an invalid type name. Type names can contain up to 100 alphanumeric characters or underscores but cannot start with an underscore. |
400 | 95331 | The request contains an invalid field name. Field names can contain up to 150 alphanumeric characters or underscores but cannot start with an underscore. |
400 | 95332 | The request contains an OR or AND query that does not have at least two subqueries. |
400 | 95333 | The request contains an OR or AND filter that does not have at least two subfilters. |
400 | 95334 | The request contains an invalid datetime value. Datetime values must be in ISO format yyyy-mm-dd[Thh:mm:ss.sssZ]. |
400 | 95335 | The search request does not contain at least one visualization. |
400 | 95336 | A radius filter is missing a latitude or longitude value. |
400 | 95337 | A bounded-box filter is missing a latitude/longitude value for the top-left and bottom-right corners. |
400 | 95338 | The top-left latitude of a bounded-box filter is less than its bottom-right latitude. |
400 | 95339 | A polygon filter does not have at least three coordinates. |
400 | 95340 | A polygon filter is missing a latitude or longitude value for one of its coordinates. |
400 | 95341 | Inner fields have been defined for a field that is not of the type "object" or "nested". |
400 | 95342 | Analyzer options have been set on a field that is not of the type "text". |
400 | 95343 | The "features" option has been set on a field that is not of the type "text". |
400 | 95344 | A text field has been defined with a non-string value in one of the analyzer options. |
400 | 95345 | The "features" option has been set on a text field without using a string array. |
400 | 95346 | The "indexed_for_search" option is not supported for system types. |
400 | 95347 | The "number_of_shards" option has been set on a type with a value that is not greater than or equal to 1 and less than or equal to 1024. |
400 | 95348 | The "number_of_replicas" option has been set on a type with a value that is not greater than or equal to 0 and less than or equal to 1024. |
400 | 95349 | The "refresh_interval" option has been set on a type with a value that is not greater than or equal to -1. |
400 | 95350 | The request to explore the text analytics results is missing a value for the "category" parameter. |
400 | 95351 | The request to explore the text analytics results is missing a value for the "phrase" parameter. |
400 | 95352 | The text analytics request contains an identity with a category that is not one of: person, location, organization. |
400 | 95353 | The sankey diagram request contains a result category that is not one of: unigram, bigram, trigram, person, organization, location, significantTerm, topic |
400 | 95354 | A file could not be read from the imported configuration ZIP file. |
400 | 95355 | The text analytics request contains duplicate identity names. |
400 | 95356 | The text analytics request contains duplicate alias names. |
500 | 95357 | Part of the response could not be serialized. |
404 | 95358 | The specified analyzer does not exist. |
404 | 95359 | The specified setting does not exist. |
400 | 95360 | An unsupported value was provided to the filter parameter for the /admin/settings endpoint. |
503 | 95361 | A request could not be sent to the Configuration Service. |
503 | 95362 | A request to the Configuration Service returned an error. |
400 | 95363 | The paths request has too many parameters. Use the \"type\" and \"id\" parameters to identify a single start object, or use the \"types\" and \"query\" parameters to identify one or more start objects. |
400 | 95364 | The "fields" parameter contains a duplicate entity name. |
Operations
Root
The root of the API.
Get the links for the API
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/ \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.api+json'
const headers = {
'Accept':'application/vnd.sas.api+json'
};
fetch('https://example.com/svi-sand/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.api+json'
}
r = requests.get('https://example.com/svi-sand/', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.api+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /
Returns the links to the top-level resources for the API.
Example responses
An example of the response from /svi-sand listing the top-level links.
{
"links": [
{
"method": "POST",
"rel": "search",
"href": "/svi-sand/searches",
"uri": "/svi-sand/searches",
"type": "application/vnd.sas.sand.search.request",
"responseType": "application/vnd.sas.sand.search.response"
},
{
"method": "POST",
"rel": "highlight",
"href": "/svi-sand/highlighting",
"uri": "/svi-sand/highlighting",
"type": "application/vnd.sas.sand.highlighting.request",
"responseType": "application/vnd.sas.sand.highlighting"
},
{
"method": "POST",
"rel": "graphSearch",
"href": "/svi-sand/graphs",
"uri": "/svi-sand/graphs",
"type": "application/vnd.sas.sand.graph.request",
"responseType": "application/vnd.sas.sand.graph"
},
{
"method": "POST",
"rel": "getEdges",
"href": "/svi-sand/graphs/edges",
"uri": "/svi-sand/graphs/edges",
"type": "application/vnd.sas.sand.query.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.edge"
},
{
"method": "GET",
"rel": "getVertex",
"href": "/svi-sand/vertices/{type}/{identifier}",
"uri": "/svi-sand/vertices/{type}/{identifier}",
"type": "application/vnd.sas.sand.vertex"
},
{
"method": "POST",
"rel": "graphTraversal",
"href": "/svi-sand/traversals",
"uri": "/svi-sand/traversals",
"type": "application/vnd.sas.sand.traversal.request",
"responseType": "application/vnd.sas.sand.graph"
},
{
"method": "POST",
"rel": "pathsSearch",
"href": "/svi-sand/paths",
"uri": "/svi-sand/paths",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
},
{
"method": "POST",
"rel": "importConfiguration",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "GET",
"rel": "exportConfiguration",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "DELETE",
"rel": "deleteConfiguration",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config"
},
{
"method": "GET",
"rel": "getAnalyzers",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "GET",
"rel": "getShapes",
"href": "/svi-sand/admin/config/shapes",
"uri": "/svi-sand/admin/config/shapes",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.geo.shape"
},
{
"method": "GET",
"rel": "getSynonymns",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "DELETE",
"rel": "deleteByQuery",
"href": "/svi-sand/admin/data",
"uri": "/svi-sand/admin/data",
"type": "application/vnd.sas.sand.query.request"
},
{
"method": "DELETE",
"rel": "deleteRelationshipsInvolvingType",
"href": "/svi-sand/admin/data/{type}/relationships",
"uri": "/svi-sand/admin/data/{type}/relationships"
},
{
"method": "POST",
"rel": "createIndices",
"href": "/svi-sand/admin/indices",
"uri": "/svi-sand/admin/indices",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
},
{
"method": "DELETE",
"rel": "deleteIndices",
"href": "/svi-sand/admin/indices",
"uri": "/svi-sand/admin/indices"
},
{
"method": "POST",
"rel": "adminOperation",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "GET",
"rel": "getSettings",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
}
{
"links": [
{
"method": "POST",
"rel": "search",
"href": "/svi-sand/searches",
"uri": "/svi-sand/searches",
"type": "application/vnd.sas.sand.search.request",
"responseType": "application/vnd.sas.sand.search.response"
},
{
"method": "POST",
"rel": "highlight",
"href": "/svi-sand/highlighting",
"uri": "/svi-sand/highlighting",
"type": "application/vnd.sas.sand.highlighting.request",
"responseType": "application/vnd.sas.sand.highlighting"
},
{
"method": "POST",
"rel": "graphSearch",
"href": "/svi-sand/graphs",
"uri": "/svi-sand/graphs",
"type": "application/vnd.sas.sand.graph.request",
"responseType": "application/vnd.sas.sand.graph"
},
{
"method": "POST",
"rel": "getEdges",
"href": "/svi-sand/graphs/edges",
"uri": "/svi-sand/graphs/edges",
"type": "application/vnd.sas.sand.query.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.edge"
},
{
"method": "GET",
"rel": "getVertex",
"href": "/svi-sand/vertices/{type}/{identifier}",
"uri": "/svi-sand/vertices/{type}/{identifier}",
"type": "application/vnd.sas.sand.vertex"
},
{
"method": "POST",
"rel": "graphTraversal",
"href": "/svi-sand/traversals",
"uri": "/svi-sand/traversals",
"type": "application/vnd.sas.sand.traversal.request",
"responseType": "application/vnd.sas.sand.graph"
},
{
"method": "POST",
"rel": "pathsSearch",
"href": "/svi-sand/paths",
"uri": "/svi-sand/paths",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
},
{
"method": "POST",
"rel": "importConfiguration",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "GET",
"rel": "exportConfiguration",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "DELETE",
"rel": "deleteConfiguration",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config"
},
{
"method": "GET",
"rel": "getAnalyzers",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "GET",
"rel": "getShapes",
"href": "/svi-sand/admin/config/shapes",
"uri": "/svi-sand/admin/config/shapes",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.geo.shape"
},
{
"method": "GET",
"rel": "getSynonymns",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "DELETE",
"rel": "deleteByQuery",
"href": "/svi-sand/admin/data",
"uri": "/svi-sand/admin/data",
"type": "application/vnd.sas.sand.query.request"
},
{
"method": "DELETE",
"rel": "deleteRelationshipsInvolvingType",
"href": "/svi-sand/admin/data/{type}/relationships",
"uri": "/svi-sand/admin/data/{type}/relationships"
},
{
"method": "POST",
"rel": "createIndices",
"href": "/svi-sand/admin/indices",
"uri": "/svi-sand/admin/indices",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
},
{
"method": "DELETE",
"rel": "deleteIndices",
"href": "/svi-sand/admin/indices",
"uri": "/svi-sand/admin/indices"
},
{
"method": "POST",
"rel": "adminOperation",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "GET",
"rel": "getSettings",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | api |
Get the headers for the API
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /
Returns the headers for the API. Also used to determine whether the service provided by the API is available.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Search
Search related endpoints.
Perform a search
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/searches \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.search.request+json' \
-H 'Accept: application/vnd.sas.sand.search.response+json'
const inputBody = '{
"types": [
"report",
"person",
"incident"
],
"query": {
"type": "or",
"queries": [
{
"type": "text",
"language": "lucene",
"text": "John Smith"
},
{
"type": "object",
"objectIds": [
{
"type": "report",
"id": "SDF46AS"
},
{
"type": "report",
"id": "FN654A"
}
]
}
]
},
"visualizations": {
"visualization1": {
"type": "map"
},
"visualization2": {
"type": "table",
"start": 1,
"limit": 100
},
"visualization3": {
"type": "facets",
"mode": "filter"
},
"visualization4": {
"type": "facets",
"mode": "selection"
}
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.search.request+json',
'Accept':'application/vnd.sas.sand.search.response+json'
};
fetch('https://example.com/svi-sand/searches',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.search.request+json',
'Accept': 'application/vnd.sas.sand.search.response+json'
}
r = requests.post('https://example.com/svi-sand/searches', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.search.request+json"},
"Accept": []string{"application/vnd.sas.sand.search.response+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/searches", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /searches
Perform a new search, refine a previous search, or request different visualizations of the results of a previous search.
Body parameter
An example of the request to /searches where the user wants to view the specified report objects as well as all incident and person objects that contain either of the terms, "John" and "Smith" on the Map and Table visualizations. The user would also like to use the Facets and Selection visualizations to determine what filters might be worth applying to reduce their result set or select particular results of interest.
{
"types": [
"report",
"person",
"incident"
],
"query": {
"type": "or",
"queries": [
{
"type": "text",
"language": "lucene",
"text": "John Smith"
},
{
"type": "object",
"objectIds": [
{
"type": "report",
"id": "SDF46AS"
},
{
"type": "report",
"id": "FN654A"
}
]
}
]
},
"visualizations": {
"visualization1": {
"type": "map"
},
"visualization2": {
"type": "table",
"start": 1,
"limit": 100
},
"visualization3": {
"type": "facets",
"mode": "filter"
},
"visualization4": {
"type": "facets",
"mode": "selection"
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | searchRequest | false | none |
Example responses
An example of the response from /searches containing examples of the Summary and Facets visualizations.
{
"types": [
"report",
"person",
"incident"
],
"query": {
"type": "or",
"queries": [
{
"type": "text",
"language": "lucene",
"text": "John Smith"
},
{
"type": "object",
"objectIds": [
{
"type": "report",
"id": "SDF46AS"
},
{
"type": "report",
"id": "FN654A"
}
]
}
]
},
"visualizations": {
"results": {
"type": "summary",
"start": 1,
"limit": 50,
"hitCount": 6,
"order": {
"type": "score",
"direction": "descending"
},
"results": [
{
"id": "ju0RrSsRQRqdSnrKO75AFQ",
"type": "person",
"typeLabel": "Person",
"title": "Smith, John",
"attachmentsCount": 0,
"fields": [
{
"name": "Forename",
"type": "text",
"value": "John"
}
],
"highlighting": {
"full_name": [
"<em>John</em> <em>Smith</em>"
]
}
}
]
},
"facets": {
"type": "facets",
"mode": "filter",
"facets": [
{
"objectType": "_all",
"facets": [
{
"type": "type",
"hitCount": 6,
"buckets": [
{
"type": "incident",
"hitCount": 3
},
{
"type": "person",
"hitCount": 2
},
{
"type": "report",
"hitCount": 1
}
]
}
]
},
{
"objectType": "person",
"facets": [
{
"type": "range",
"field": "age",
"hitCount": 2,
"min": 19,
"max": 43,
"ranges": [
{
"description": "<20",
"lt": 20,
"hitCount": 1
},
{
"description": "[20, 30)",
"gte": 20,
"lt": 30,
"hitCount": 0
},
{
"description": "[30, 40)",
"gte": 30,
"lt": 40,
"hitCount": 1
},
{
"description": ">=40",
"gte": 40,
"hitCount": 0
}
]
},
{
"type": "terms",
"field": "gender",
"hitCount": 2,
"buckets": [
{
"term": "male",
"hitCount": 2
}
]
}
]
},
{
"objectType": "incident",
"facets": [
{
"type": "terms",
"field": "crime",
"hitCount": 3,
"buckets": [
{
"term": "assault",
"hitCount": 2
},
{
"term": "theft",
"hitCount": 1
}
]
}
]
}
]
}
},
"errors": []
}
An example of the Facets visualization response in filter mode with examples of the type, dateRange, terms and range facets.
{
"type": "facets",
"mode": "filter",
"facets": [
{
"objectType": "_all",
"facets": [
{
"type": "type",
"hitCount": 60,
"buckets": [
{
"type": "person",
"hitCount": 40
},
{
"type": "report",
"hitCount": 20
}
]
},
{
"type": "dateRange",
"field": "createdate",
"accuracy": "second",
"filter": {
"displayFormat": "dd-MM-yyyy HH:MM:SS",
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
}
}
]
},
{
"objectType": "person",
"facets": [
{
"type": "range",
"field": "age",
"hitCount": 40,
"min": 19,
"max": 43,
"ranges": [
{
"description": "<20",
"lt": 20,
"hitCount": 2
},
{
"description": "[20, 30)",
"gte": 20,
"lt": 30,
"hitCount": 13
},
{
"description": "[30, 40)",
"gte": 30,
"lt": 40,
"hitCount": 20
},
{
"description": ">=40",
"gte": 40,
"hitCount": 5
}
]
},
{
"type": "terms",
"field": "gender",
"hitCount": 40,
"buckets": [
{
"term": "female",
"hitCount": 26
},
{
"term": "male",
"hitCount": 14
}
]
}
]
},
{
"objectType": "report",
"facets": [
{
"type": "terms",
"field": "crime",
"hitCount": 20,
"buckets": [
{
"term": "assault",
"hitCount": 14
},
{
"term": "theft",
"hitCount": 6
}
]
},
{
"type": "range",
"field": "risk",
"hitCount": 20,
"min": 1,
"max": 10,
"filter": {
"displayFormat": "integer",
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
}
}
]
}
]
}
An example of the Hits visualization response showing a total of 20 results: 12 person objects and 8 report objects.
{
"type": "hits",
"hitCount": 20,
"hitsPerType": [
{
"type": "person",
"hitCount": 12
},
{
"type": "report",
"hitCount": 8
}
]
}
An example of the Map visualization response where there are too many results to be returned as a collection so that results are clustered. Only two clusters are shown for brevity.
{
"type": "mapCluster",
"view": [],
"maxFeatures": 100,
"hitCount": 4925,
"eventCount": 4982,
"featureCount": 4375,
"approxGlobalFeatureCount": 4375,
"clusters": [
{
"geohash": "u",
"bounds": [
[
0.015556,
69.947798
],
[
28.93471,
45.002418
]
],
"count": 1791,
"selectedCount": 239
},
{
"geohash": "r",
"bounds": [
[
135.413346,
-10.897056
],
[
153.564517,
-43.286318
]
],
"count": 1015,
"selectedCount": 1015
}
]
}
An example of the Map Feature visualization response.
{
"type": "mapFeature",
"maxEvents": 5,
"lat": -41.25094,
"lon": 147.190278,
"features": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
147.190278,
-41.25094
]
},
"properties": {
"events": [
{
"eventId": "ce63176d-e0b6-420d-9f00-64d91bd7a4eb",
"eventCategory": "policy_holder_address",
"eventLabel": "John Smith resides at 1 Glasgow Road, Glasgow, UK",
"eventDescription": "Semi-detached, 3 bedrooms, brick walls, tile roof",
"objectId": "LK13R1R1N",
"objectType": "insurance_claim",
"objectTypeLabel": "Insurance Claim",
"objectLabel": "Claim 9823 in relation to policy 32502",
"objectDescription": "Claim for stolen vehicle filed on 2016-01-28",
"objectAttachmentsCount": 2
},
{
"eventId": "1312237e-7772-4eed-9722-3e63726deb86",
"eventCategory": "policy_holder_address",
"eventLabel": "John Smith resides at 1 Glasgow Road, Glasgow, UK",
"eventDescription": "Semi-detached, 3 bedrooms, brick walls, tile roof",
"objectId": "LK13R1R1N",
"objectType": "insurance_claim",
"objectTypeLabel": "Insurance Claim",
"objectLabel": "Claim 8233 in relation to policy 98622",
"objectDescription": "Claim for stolen vehicle filed on 2016-01-28",
"objectAttachmentsCount": 2
}
],
"eventCount": 2,
"selectedEventCount": 1
}
}
]
}
}
An example of the Map visualization response where the results are returned as a collection. Only a single feature is shown for brevity.
{
"type": "map",
"view": [],
"maxFeatures": 10000,
"hitCount": 4925,
"eventCount": 4982,
"featureCount": 4587,
"approxGlobalFeatureCount": 4901,
"features": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
147.190278,
-41.25094
]
},
"properties": {
"events": [
{
"objectId": "37265789239",
"objectType": "customer",
"selected": false
},
{
"objectId": "89080643168",
"objectType": "customer",
"selected": true
}
],
"eventCount": 2,
"selectedEventCount": 1
}
}
]
}
}
An example of the Summary visualization response. The fields, highlighting and results parts of the response have been abbreviated for brevity.
{
"type": "summary",
"start": 1,
"limit": 10,
"hitCount": 20,
"order": {
"type": "score",
"direction": "descending"
},
"results": [
{
"id": "ju0RrSsRQRqdSnrKO75AFQ",
"type": "person",
"typeLabel": "Person",
"label": "Smith, John",
"attachmentsCount": 3,
"fields": [
{
"name": "Forename",
"type": "text",
"value": "John"
}
],
"highlighting": {
"full_name": [
"John <em>Smith</em>"
]
}
}
]
}
An example of the Table visualization response. Only a few columns and data entries are shown for brevity.
{
"type": "table",
"start": 1,
"limit": 100,
"hitCount": 500,
"order": {
"type": "field",
"fields": [
{
"name": "account_opened_date",
"direction": "descending"
}
]
},
"columnHeadings": [
{
"field": "_attachments_count",
"label": "Number of Attachments",
"type": "long"
},
{
"field": "_label",
"label": "Label",
"type": "text"
},
{
"field": "_type",
"label": "Entity Type",
"type": "text"
}
],
"data": [
{
"_type": "business_account",
"id": "321891465654",
"_label": "Account: 321891465654",
"_attachments_count": 0
},
{
"_type": "business_account",
"id": "240512631306",
"_label": "Account: 240512631306",
"_attachments_count": 3
},
{
"_type": "business_account",
"id": "108583739092",
"_label": "Account: 108583739092",
"_attachments_count": 1
}
]
}
An example of the Time Line visualization response. Only a single swim lane and swim lane entry are shown for brevity.
{
"type": "timeline",
"start": 1,
"limit": 50,
"order": {
"type": "doc",
"direction": "ascending"
},
"intervalCount": 1,
"minimumClusterSize": 2,
"paddingFactor": 1,
"interval": "year",
"hitCount": 2,
"eventCount": 3,
"globalMinTime": "1981-02-19T05:59:00.001Z",
"globalMaxTime": "2014-07-11T01:02:03.123Z",
"minTime": "1981-02-19T05:59:00.001Z",
"maxTime": "2014-07-11T01:02:03.123Z",
"swinLanes": [
{
"id": "customer#24419536",
"objectId": "24419536",
"objectType": "customer",
"objectTypeLabel": "Customer",
"label": "ALEXANDR TE NIJE",
"description": "National Id: 671042300 - Full Name: Alexandr te Nije - Risk: 2614",
"attachmentsCount": 1
}
],
"swimLaneEntries": [
{
"group": "customers#24419536",
"startTimestamp": "2009-11-14T00:00Z",
"endTimestamp": "2009-11-14T00:00Z",
"eventId": "1f933a25-de3f-4c20-87ab-6ccb909361a8",
"eventCategory": "customer_dob",
"eventLabel": "Customer Date of Birth",
"eventDescription": "<br>Name: Alexandr Te Nije<br>Type: HS"
}
]
}
An example of the Time Bar visualization response. Only a few intervals are shown for brevity.
{
"type": "timebar",
"intervalCount": 50,
"geoEventsRequired": false,
"hitCount": 120,
"eventCount": 240,
"globalMinTime": "1980-01-21T00:00:00.000Z",
"globalMaxTime": "1989-12-21T05:00:00.000Z",
"interval": "day",
"intervalSize": 86400000,
"timebarIntervals": [
{
"start": "1980-01-21T00:00:00.000Z",
"hitCount": 2
},
{
"start": "1980-01-22T00:00:00.000Z",
"hitCount": 0
},
{
"start": "1980-12-21T00:00:00.000Z",
"hitCount": 2
}
]
}
An example of an event within the context of the Map visualization.
{
"eventId": "ce63176d-e0b6-420d-9f00-64d91bd7a4eb",
"eventCategory": "policy_holder_address",
"eventLabel": "John Smith resides at 1 Glasgow Road, Glasgow, UK",
"eventDescription": "Semi-detached, 3 bedrooms, brick walls, tile roof",
"objectId": "LK13R1R1N",
"objectType": "insurance_claim",
"objectTypeLabel": "Insurance Claim",
"objectLabel": "Claim 9823 in relation to policy 32502",
"objectDescription": "Claim for stolen vehicle filed on 2016-01-28",
"objectAttachmentsCount": 12,
"selected": false
}
An example of an event within the context of the Time Line visualization.
{
"group": "JH2R19C",
"startTimestamp": "1982-03-14",
"endTimestamp": "1982-03-14",
"eventId": "c252f89a-5aff-4c95-9fdd-7400a0a8f859",
"eventCategory": "policy_holder_dob",
"eventLabel": "John Smith was born on 1982-03-14",
"eventDescription": "Date of birth for John Smith",
"objectId": "LK13R1R1N",
"objectType": "insurance_claim",
"objectTypeLabel": "Insurance Claim",
"objectLabel": "Claim 9823 in relation to policy 32502",
"objectDescription": "Claim for stolen vehicle filed on 2016-01-28",
"objectAttachmentsCount": 0
}
An example of the response from /searches containing examples of the Summary and Facets visualizations.
{
"types": [
"report",
"person",
"incident"
],
"query": {
"type": "or",
"queries": [
{
"type": "text",
"language": "lucene",
"text": "John Smith"
},
{
"type": "object",
"objectIds": [
{
"type": "report",
"id": "SDF46AS"
},
{
"type": "report",
"id": "FN654A"
}
]
}
]
},
"visualizations": {
"results": {
"type": "summary",
"start": 1,
"limit": 50,
"hitCount": 6,
"order": {
"type": "score",
"direction": "descending"
},
"results": [
{
"id": "ju0RrSsRQRqdSnrKO75AFQ",
"type": "person",
"typeLabel": "Person",
"title": "Smith, John",
"attachmentsCount": 0,
"fields": [
{
"name": "Forename",
"type": "text",
"value": "John"
}
],
"highlighting": {
"full_name": [
"<em>John</em> <em>Smith</em>"
]
}
}
]
},
"facets": {
"type": "facets",
"mode": "filter",
"facets": [
{
"objectType": "_all",
"facets": [
{
"type": "type",
"hitCount": 6,
"buckets": [
{
"type": "incident",
"hitCount": 3
},
{
"type": "person",
"hitCount": 2
},
{
"type": "report",
"hitCount": 1
}
]
}
]
},
{
"objectType": "person",
"facets": [
{
"type": "range",
"field": "age",
"hitCount": 2,
"min": 19,
"max": 43,
"ranges": [
{
"description": "<20",
"lt": 20,
"hitCount": 1
},
{
"description": "[20, 30)",
"gte": 20,
"lt": 30,
"hitCount": 0
},
{
"description": "[30, 40)",
"gte": 30,
"lt": 40,
"hitCount": 1
},
{
"description": ">=40",
"gte": 40,
"hitCount": 0
}
]
},
{
"type": "terms",
"field": "gender",
"hitCount": 2,
"buckets": [
{
"term": "male",
"hitCount": 2
}
]
}
]
},
{
"objectType": "incident",
"facets": [
{
"type": "terms",
"field": "crime",
"hitCount": 3,
"buckets": [
{
"term": "assault",
"hitCount": 2
},
{
"term": "theft",
"hitCount": 1
}
]
}
]
}
]
}
},
"errors": []
}
An example of the Facets visualization response in filter mode with examples of the type, dateRange, terms and range facets.
{
"type": "facets",
"mode": "filter",
"facets": [
{
"objectType": "_all",
"facets": [
{
"type": "type",
"hitCount": 60,
"buckets": [
{
"type": "person",
"hitCount": 40
},
{
"type": "report",
"hitCount": 20
}
]
},
{
"type": "dateRange",
"field": "createdate",
"accuracy": "second",
"filter": {
"displayFormat": "dd-MM-yyyy HH:MM:SS",
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
}
}
]
},
{
"objectType": "person",
"facets": [
{
"type": "range",
"field": "age",
"hitCount": 40,
"min": 19,
"max": 43,
"ranges": [
{
"description": "<20",
"lt": 20,
"hitCount": 2
},
{
"description": "[20, 30)",
"gte": 20,
"lt": 30,
"hitCount": 13
},
{
"description": "[30, 40)",
"gte": 30,
"lt": 40,
"hitCount": 20
},
{
"description": ">=40",
"gte": 40,
"hitCount": 5
}
]
},
{
"type": "terms",
"field": "gender",
"hitCount": 40,
"buckets": [
{
"term": "female",
"hitCount": 26
},
{
"term": "male",
"hitCount": 14
}
]
}
]
},
{
"objectType": "report",
"facets": [
{
"type": "terms",
"field": "crime",
"hitCount": 20,
"buckets": [
{
"term": "assault",
"hitCount": 14
},
{
"term": "theft",
"hitCount": 6
}
]
},
{
"type": "range",
"field": "risk",
"hitCount": 20,
"min": 1,
"max": 10,
"filter": {
"displayFormat": "integer",
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
}
}
]
}
]
}
An example of the Hits visualization response showing a total of 20 results: 12 person objects and 8 report objects.
{
"type": "hits",
"hitCount": 20,
"hitsPerType": [
{
"type": "person",
"hitCount": 12
},
{
"type": "report",
"hitCount": 8
}
]
}
An example of the Map visualization response where there are too many results to be returned as a collection so that results are clustered. Only two clusters are shown for brevity.
{
"type": "mapCluster",
"view": [],
"maxFeatures": 100,
"hitCount": 4925,
"eventCount": 4982,
"featureCount": 4375,
"approxGlobalFeatureCount": 4375,
"clusters": [
{
"geohash": "u",
"bounds": [
[
0.015556,
69.947798
],
[
28.93471,
45.002418
]
],
"count": 1791,
"selectedCount": 239
},
{
"geohash": "r",
"bounds": [
[
135.413346,
-10.897056
],
[
153.564517,
-43.286318
]
],
"count": 1015,
"selectedCount": 1015
}
]
}
An example of the Map Feature visualization response.
{
"type": "mapFeature",
"maxEvents": 5,
"lat": -41.25094,
"lon": 147.190278,
"features": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
147.190278,
-41.25094
]
},
"properties": {
"events": [
{
"eventId": "ce63176d-e0b6-420d-9f00-64d91bd7a4eb",
"eventCategory": "policy_holder_address",
"eventLabel": "John Smith resides at 1 Glasgow Road, Glasgow, UK",
"eventDescription": "Semi-detached, 3 bedrooms, brick walls, tile roof",
"objectId": "LK13R1R1N",
"objectType": "insurance_claim",
"objectTypeLabel": "Insurance Claim",
"objectLabel": "Claim 9823 in relation to policy 32502",
"objectDescription": "Claim for stolen vehicle filed on 2016-01-28",
"objectAttachmentsCount": 2
},
{
"eventId": "1312237e-7772-4eed-9722-3e63726deb86",
"eventCategory": "policy_holder_address",
"eventLabel": "John Smith resides at 1 Glasgow Road, Glasgow, UK",
"eventDescription": "Semi-detached, 3 bedrooms, brick walls, tile roof",
"objectId": "LK13R1R1N",
"objectType": "insurance_claim",
"objectTypeLabel": "Insurance Claim",
"objectLabel": "Claim 8233 in relation to policy 98622",
"objectDescription": "Claim for stolen vehicle filed on 2016-01-28",
"objectAttachmentsCount": 2
}
],
"eventCount": 2,
"selectedEventCount": 1
}
}
]
}
}
An example of the Map visualization response where the results are returned as a collection. Only a single feature is shown for brevity.
{
"type": "map",
"view": [],
"maxFeatures": 10000,
"hitCount": 4925,
"eventCount": 4982,
"featureCount": 4587,
"approxGlobalFeatureCount": 4901,
"features": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
147.190278,
-41.25094
]
},
"properties": {
"events": [
{
"objectId": "37265789239",
"objectType": "customer",
"selected": false
},
{
"objectId": "89080643168",
"objectType": "customer",
"selected": true
}
],
"eventCount": 2,
"selectedEventCount": 1
}
}
]
}
}
An example of the Summary visualization response. The fields, highlighting and results parts of the response have been abbreviated for brevity.
{
"type": "summary",
"start": 1,
"limit": 10,
"hitCount": 20,
"order": {
"type": "score",
"direction": "descending"
},
"results": [
{
"id": "ju0RrSsRQRqdSnrKO75AFQ",
"type": "person",
"typeLabel": "Person",
"label": "Smith, John",
"attachmentsCount": 3,
"fields": [
{
"name": "Forename",
"type": "text",
"value": "John"
}
],
"highlighting": {
"full_name": [
"John <em>Smith</em>"
]
}
}
]
}
An example of the Table visualization response. Only a few columns and data entries are shown for brevity.
{
"type": "table",
"start": 1,
"limit": 100,
"hitCount": 500,
"order": {
"type": "field",
"fields": [
{
"name": "account_opened_date",
"direction": "descending"
}
]
},
"columnHeadings": [
{
"field": "_attachments_count",
"label": "Number of Attachments",
"type": "long"
},
{
"field": "_label",
"label": "Label",
"type": "text"
},
{
"field": "_type",
"label": "Entity Type",
"type": "text"
}
],
"data": [
{
"_type": "business_account",
"id": "321891465654",
"_label": "Account: 321891465654",
"_attachments_count": 0
},
{
"_type": "business_account",
"id": "240512631306",
"_label": "Account: 240512631306",
"_attachments_count": 3
},
{
"_type": "business_account",
"id": "108583739092",
"_label": "Account: 108583739092",
"_attachments_count": 1
}
]
}
An example of the Time Line visualization response. Only a single swim lane and swim lane entry are shown for brevity.
{
"type": "timeline",
"start": 1,
"limit": 50,
"order": {
"type": "doc",
"direction": "ascending"
},
"intervalCount": 1,
"minimumClusterSize": 2,
"paddingFactor": 1,
"interval": "year",
"hitCount": 2,
"eventCount": 3,
"globalMinTime": "1981-02-19T05:59:00.001Z",
"globalMaxTime": "2014-07-11T01:02:03.123Z",
"minTime": "1981-02-19T05:59:00.001Z",
"maxTime": "2014-07-11T01:02:03.123Z",
"swinLanes": [
{
"id": "customer#24419536",
"objectId": "24419536",
"objectType": "customer",
"objectTypeLabel": "Customer",
"label": "ALEXANDR TE NIJE",
"description": "National Id: 671042300 - Full Name: Alexandr te Nije - Risk: 2614",
"attachmentsCount": 1
}
],
"swimLaneEntries": [
{
"group": "customers#24419536",
"startTimestamp": "2009-11-14T00:00Z",
"endTimestamp": "2009-11-14T00:00Z",
"eventId": "1f933a25-de3f-4c20-87ab-6ccb909361a8",
"eventCategory": "customer_dob",
"eventLabel": "Customer Date of Birth",
"eventDescription": "<br>Name: Alexandr Te Nije<br>Type: HS"
}
]
}
An example of the Time Bar visualization response. Only a few intervals are shown for brevity.
{
"type": "timebar",
"intervalCount": 50,
"geoEventsRequired": false,
"hitCount": 120,
"eventCount": 240,
"globalMinTime": "1980-01-21T00:00:00.000Z",
"globalMaxTime": "1989-12-21T05:00:00.000Z",
"interval": "day",
"intervalSize": 86400000,
"timebarIntervals": [
{
"start": "1980-01-21T00:00:00.000Z",
"hitCount": 2
},
{
"start": "1980-01-22T00:00:00.000Z",
"hitCount": 0
},
{
"start": "1980-12-21T00:00:00.000Z",
"hitCount": 2
}
]
}
An example of an event within the context of the Map visualization.
{
"eventId": "ce63176d-e0b6-420d-9f00-64d91bd7a4eb",
"eventCategory": "policy_holder_address",
"eventLabel": "John Smith resides at 1 Glasgow Road, Glasgow, UK",
"eventDescription": "Semi-detached, 3 bedrooms, brick walls, tile roof",
"objectId": "LK13R1R1N",
"objectType": "insurance_claim",
"objectTypeLabel": "Insurance Claim",
"objectLabel": "Claim 9823 in relation to policy 32502",
"objectDescription": "Claim for stolen vehicle filed on 2016-01-28",
"objectAttachmentsCount": 12,
"selected": false
}
An example of an event within the context of the Time Line visualization.
{
"group": "JH2R19C",
"startTimestamp": "1982-03-14",
"endTimestamp": "1982-03-14",
"eventId": "c252f89a-5aff-4c95-9fdd-7400a0a8f859",
"eventCategory": "policy_holder_dob",
"eventLabel": "John Smith was born on 1982-03-14",
"eventDescription": "Date of birth for John Smith",
"objectId": "LK13R1R1N",
"objectType": "insurance_claim",
"objectTypeLabel": "Insurance Claim",
"objectLabel": "Claim 9823 in relation to policy 32502",
"objectDescription": "Claim for stolen vehicle filed on 2016-01-28",
"objectAttachmentsCount": 0
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | searchResponse |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Returns highlighting for a single object
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/highlighting \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.highlighting.request+json' \
-H 'Accept: application/vnd.sas.sand.highlighting+json'
const inputBody = '{
"type": "report",
"id": "1698c5f2-86da-49f5-b762-2f1cf2a1f9e0",
"query": {
"type": "text",
"text": "report:fox CHILD_QUERY(notes,%notes.note:jump%)",
"language": "lucene",
"modes": [
"standard"
]
},
"includeFieldHighlighting": true,
"defaultChildEntityLimit": 10,
"childEntityHighlightingParameters": {
"notes": {
"start": 1,
"limit": 10
}
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.highlighting.request+json',
'Accept':'application/vnd.sas.sand.highlighting+json'
};
fetch('https://example.com/svi-sand/highlighting',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.highlighting.request+json',
'Accept': 'application/vnd.sas.sand.highlighting+json'
}
r = requests.post('https://example.com/svi-sand/highlighting', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.highlighting.request+json"},
"Accept": []string{"application/vnd.sas.sand.highlighting+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/highlighting", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /highlighting
Produces highlighting snippets for a single object based on a given query.
Body parameter
An example of the request for /highlighing. In this example, the user is looking for highlighting snippets on a given report object for a text query that targeted the top-level report field as well as the note field in the notes child entity. Also refer to the query examples.
{
"type": "report",
"id": "1698c5f2-86da-49f5-b762-2f1cf2a1f9e0",
"query": {
"type": "text",
"text": "report:fox CHILD_QUERY(notes,%notes.note:jump%)",
"language": "lucene",
"modes": [
"standard"
]
},
"includeFieldHighlighting": true,
"defaultChildEntityLimit": 10,
"childEntityHighlightingParameters": {
"notes": {
"start": 1,
"limit": 10
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | highlightingRequest | false | none |
Example responses
An example of the response from /highlighting. In this example, the user is looking for highlighting snippets on a given report object for a text query that targeted the top-level report field as well as the note field in the notes child entity.
{
"type": "report",
"id": "1698c5f2-86da-49f5-b762-2f1cf2a1f9e0",
"query": {
"type": "text",
"text": "report:fox CHILD_QUERY(notes,%notes.note:jump%)",
"language": "lucene",
"modes": [
"standard"
]
},
"includeFieldHighlighting": true,
"defaultChildEntityLimit": 10,
"fieldHighlighting": {
"report": [
"The quick brown <em>fox</em>"
]
},
"childEntityHighlighting": {
"notes": {
"start": 1,
"limit": 10,
"count": 2,
"childObjects": [
{
"id": "c27a9862-d9e9-46ec-a3c1-bd0a1420a436",
"highlighting": {
"note": [
"<em>jumped</em> over the lazy dog"
]
}
},
{
"id": "91dae554-756b-43e8-ac13-db77f7ab0a59",
"highlighting": {
"note": [
"<em>jumped</em> over the sleeping horse"
]
}
}
]
}
}
}
{
"type": "report",
"id": "1698c5f2-86da-49f5-b762-2f1cf2a1f9e0",
"query": {
"type": "text",
"text": "report:fox CHILD_QUERY(notes,%notes.note:jump%)",
"language": "lucene",
"modes": [
"standard"
]
},
"includeFieldHighlighting": true,
"defaultChildEntityLimit": 10,
"fieldHighlighting": {
"report": [
"The quick brown <em>fox</em>"
]
},
"childEntityHighlighting": {
"notes": {
"start": 1,
"limit": 10,
"count": 2,
"childObjects": [
{
"id": "c27a9862-d9e9-46ec-a3c1-bd0a1420a436",
"highlighting": {
"note": [
"<em>jumped</em> over the lazy dog"
]
}
},
{
"id": "91dae554-756b-43e8-ac13-db77f7ab0a59",
"highlighting": {
"note": [
"<em>jumped</em> over the sleeping horse"
]
}
}
]
}
}
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | highlighting |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Network
Network visualization related endpoints.
Generate a network
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/graphs \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.graph.request+json' \
-H 'Accept: application/vnd.sas.sand.graph+json'
const inputBody = '{
"vertexTypes": [
"report",
"person",
"address"
],
"query": {
"type": "text",
"language": "lucene",
"text": "john smith"
},
"filter": {
"type": "or",
"filters": [
{
"type": "type",
"types": [
"address"
]
},
{
"type": "and",
"filters": [
{
"type": "type",
"types": [
"report"
]
},
{
"type": "terms",
"field": "crime",
"objectType": "report",
"terms": [
"theft",
"assault"
]
}
]
},
{
"type": "and",
"filters": [
{
"type": "type",
"types": [
"person"
]
},
{
"type": "range",
"field": "age",
"gte": 20,
"lte": 30
}
]
}
]
},
"selection": {
"filter": {
"type": "and",
"filters": [
{
"type": "type",
"types": [
"report"
]
},
{
"type": "terms",
"field": "crime",
"objectType": "report",
"terms": [
"theft"
]
}
]
}
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.graph.request+json',
'Accept':'application/vnd.sas.sand.graph+json'
};
fetch('https://example.com/svi-sand/graphs',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.graph.request+json',
'Accept': 'application/vnd.sas.sand.graph+json'
}
r = requests.post('https://example.com/svi-sand/graphs', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.graph.request+json"},
"Accept": []string{"application/vnd.sas.sand.graph+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/graphs", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /graphs
Provides access to the Network visualization. Returns a graph showing the objects that matched the search request as vertices and the relationships between them as edges.
Body parameter
An example of the request for /graphs. In this example, the user is interested in viewing the network for theft or assault reports, persons between the age of 20 and 30 and any related addresses all of which contain either of the terms, "john" or "smith". The user also wants to have the theft reports marked as selected. To achieve this, the user first restricts the vertex types to report, person, address, and then specifies a free text query for "john smith". Filters are then added for the report and person types. Note that the top-level OR filter also includes a filter for the address type to ensure that addresses are included in the graph as the filter is applied after the query. Finally, the user adds a selection filter to have the theft reports marked as selected. Also refer to the query, filter, and selection examples.
{
"vertexTypes": [
"report",
"person",
"address"
],
"query": {
"type": "text",
"language": "lucene",
"text": "john smith"
},
"filter": {
"type": "or",
"filters": [
{
"type": "type",
"types": [
"address"
]
},
{
"type": "and",
"filters": [
{
"type": "type",
"types": [
"report"
]
},
{
"type": "terms",
"field": "crime",
"objectType": "report",
"terms": [
"theft",
"assault"
]
}
]
},
{
"type": "and",
"filters": [
{
"type": "type",
"types": [
"person"
]
},
{
"type": "range",
"field": "age",
"gte": 20,
"lte": 30
}
]
}
]
},
"selection": {
"filter": {
"type": "and",
"filters": [
{
"type": "type",
"types": [
"report"
]
},
{
"type": "terms",
"field": "crime",
"objectType": "report",
"terms": [
"theft"
]
}
]
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
calculateMetrics | query | boolean | false | Whether to calculate the degree and adjacent counts for all the vertices. As this calculation is expensive, it can take some time particularly for highly connected vertices. Skipping the calculation is recommended when the counts are not needed or when generating the counts leads to a poor user experience. |
expansionLimit | query | integer | false | The maximum number of adjacent vertices per vertex in the graph. If a value greater than zero is specified and any vertices exceed the limit, then those vertices will be excluded from the edge search and the metrics calculation. |
metricsLimit | query | integer | false | The maximum number of new vertices to be found by the search when calculating the metrics. If a value greater than zero is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
metricsAggregationLimit | query | integer | false | The aggregation used to exclude highly connected vertices from the metrics calculation will be skipped when the number of leaf vertices exceeds this limit. The default value of -1 means the aggregation will always run; a value of 0 means the aggregation will never run. |
body | body | graphRequest | false | none |
Example responses
An example of the response from /graphs or /traversals. Also refer to the edge and vertex examples.
{
"counts": {
"edges": 2,
"vertices": 4
},
"vertices": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 2001,
"degree": 2001
}
],
"edges": [
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
]
}
],
"expansionLimit": 2000,
"expansionLimitExceeded": [
{
"type": "person",
"id": "115"
}
]
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between two entity objects.
{
"id": "9",
"type": "entityRelationship",
"subType": "claim-address-residence",
"label": "Primary residence",
"fields": [
{
"name": "address_line_1",
"type": "text",
"value": "42 Main Street"
}
],
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
],
"validFrom": "2002-07-14T00:00Z",
"validTo": "2013-12-31T00:00Z",
"style": {
"color": "#ffffff",
"width": 1,
"dashType": "dashed"
}
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between a resolved entity object and one of its contributing objects.
{
"id": "5",
"type": "resolvedEntityRelationship",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "raised by",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
],
"validFrom": "2005-11-22T09:30Z",
"validTo": "2011-05-06T14:00Z"
}
An example of the response from /vertices/{type}/{identifier} as well as more generally a vertex within the context of the Network visualization. Note the degree count will be greater than the adjacent count when there are multiple edges between this and another vertex. The properties are always returned from /vertices but fewer properties are returned for other endpoints, for example, /traversals does not include adjacent, degree, adjacentByType or degreeByType unless its extendedFormat parameter is set to true.
{
"id": "337",
"type": "report",
"typeLabel": "Report",
"label": "Theft of red bmw reported by John Smith",
"attachmentsCount": 1,
"adjacent": 4,
"degree": 5,
"adjacentByType": {
"person": 1,
"report": 3
},
"degreeByType": {
"mentions": 2,
"related to": 3
},
"fields": [
{
"name": "reportedAt",
"type": "date",
"value": "2012-01-05"
}
],
"validFrom": "2001-08-16T05:00:00Z",
"validTo": "2014-10-25T17:00:00Z",
"selected": false,
"style": {
"iconName": "reportIcon1",
"markerColor": "#ffffff",
"backgroundColor": "#ffffff",
"shape": "square",
"scale": 1,
"additionalLabel": "Information Report",
"indicatorIcons": [
{
"name": "High Priority",
"position": "N"
},
{
"name": "Verified",
"position": "S"
}
]
}
}
An example of the response from /graphs or /traversals. Also refer to the edge and vertex examples.
{
"counts": {
"edges": 2,
"vertices": 4
},
"vertices": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 2001,
"degree": 2001
}
],
"edges": [
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
]
}
],
"expansionLimit": 2000,
"expansionLimitExceeded": [
{
"type": "person",
"id": "115"
}
]
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between two entity objects.
{
"id": "9",
"type": "entityRelationship",
"subType": "claim-address-residence",
"label": "Primary residence",
"fields": [
{
"name": "address_line_1",
"type": "text",
"value": "42 Main Street"
}
],
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
],
"validFrom": "2002-07-14T00:00Z",
"validTo": "2013-12-31T00:00Z",
"style": {
"color": "#ffffff",
"width": 1,
"dashType": "dashed"
}
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between a resolved entity object and one of its contributing objects.
{
"id": "5",
"type": "resolvedEntityRelationship",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "raised by",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
],
"validFrom": "2005-11-22T09:30Z",
"validTo": "2011-05-06T14:00Z"
}
An example of the response from /vertices/{type}/{identifier} as well as more generally a vertex within the context of the Network visualization. Note the degree count will be greater than the adjacent count when there are multiple edges between this and another vertex. The properties are always returned from /vertices but fewer properties are returned for other endpoints, for example, /traversals does not include adjacent, degree, adjacentByType or degreeByType unless its extendedFormat parameter is set to true.
{
"id": "337",
"type": "report",
"typeLabel": "Report",
"label": "Theft of red bmw reported by John Smith",
"attachmentsCount": 1,
"adjacent": 4,
"degree": 5,
"adjacentByType": {
"person": 1,
"report": 3
},
"degreeByType": {
"mentions": 2,
"related to": 3
},
"fields": [
{
"name": "reportedAt",
"type": "date",
"value": "2012-01-05"
}
],
"validFrom": "2001-08-16T05:00:00Z",
"validTo": "2014-10-25T17:00:00Z",
"selected": false,
"style": {
"iconName": "reportIcon1",
"markerColor": "#ffffff",
"backgroundColor": "#ffffff",
"shape": "square",
"scale": 1,
"additionalLabel": "Information Report",
"indicatorIcons": [
{
"name": "High Priority",
"position": "N"
},
{
"name": "Verified",
"position": "S"
}
]
}
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | graph |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Returns edges with additional summary information
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/graphs/edges \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.query.request+json' \
-H 'Accept: application/vnd.sas.collection+json'
const inputBody = '{
"types": [
"person"
],
"query": {
"type": "text",
"language": "lucene",
"text": "forename:john AND surname:smith"
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.query.request+json',
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/graphs/edges',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.query.request+json',
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.post('https://example.com/svi-sand/graphs/edges', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.query.request+json"},
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/graphs/edges", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /graphs/edges
Performs a new search and returns edges with additional summary information. The response item media type is application/vnd.sas.sand.edge.
Body parameter
An example of a request to /admin/data that deletes all objects containing "john" in the forename field and "smith" in the surname field.
{
"types": [
"person"
],
"query": {
"type": "text",
"language": "lucene",
"text": "forename:john AND surname:smith"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first edge to include in the current page. |
limit | query | integer | false | The maximum number of edges to include in each page. |
body | body | queryRequest | false | none |
Example responses
An example of the response from /graphs/edges.
{
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/graphs/edges?start=0&limit=100",
"uri": "/svi-sand/graphs/edges?start=0&limit=100",
"type": "application/vnd.sas.sand.query.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.edge"
},
{
"method": "POST",
"rel": "collection",
"href": "/svi-sand/graphs/edges",
"uri": "/svi-sand/graphs/edges",
"type": "application/vnd.sas.sand.query.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.edge"
}
],
"name": "edges",
"accept": "application/vnd.sas.sand.edge",
"start": 0,
"count": 2,
"items": [
{
"id": "9",
"type": "entityRelationship",
"subType": "claim-address-residence",
"label": "Primary residence",
"fields": [
{
"name": "address_line_1",
"type": "text",
"value": "42 Main Street"
}
],
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
],
"validFrom": "2002-07-14T00:00:00Z",
"validTo": "2013-12-31T00:00:00Z",
"style": {
"color": "#ffffff",
"width": 1,
"dashType": "dashed"
}
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "raised by",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
],
"validFrom": "2005-11-22T09:30:00Z",
"validTo": "2011-05-06T14:00:00Z"
}
],
"limit": 100,
"version": 2
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between two entity objects.
{
"id": "9",
"type": "entityRelationship",
"subType": "claim-address-residence",
"label": "Primary residence",
"fields": [
{
"name": "address_line_1",
"type": "text",
"value": "42 Main Street"
}
],
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
],
"validFrom": "2002-07-14T00:00Z",
"validTo": "2013-12-31T00:00Z",
"style": {
"color": "#ffffff",
"width": 1,
"dashType": "dashed"
}
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between a resolved entity object and one of its contributing objects.
{
"id": "5",
"type": "resolvedEntityRelationship",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "raised by",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
],
"validFrom": "2005-11-22T09:30Z",
"validTo": "2011-05-06T14:00Z"
}
An example of the response from /graphs/edges.
{
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/graphs/edges?start=0&limit=100",
"uri": "/svi-sand/graphs/edges?start=0&limit=100",
"type": "application/vnd.sas.sand.query.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.edge"
},
{
"method": "POST",
"rel": "collection",
"href": "/svi-sand/graphs/edges",
"uri": "/svi-sand/graphs/edges",
"type": "application/vnd.sas.sand.query.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.edge"
}
],
"name": "edges",
"accept": "application/vnd.sas.sand.edge",
"start": 0,
"count": 2,
"items": [
{
"id": "9",
"type": "entityRelationship",
"subType": "claim-address-residence",
"label": "Primary residence",
"fields": [
{
"name": "address_line_1",
"type": "text",
"value": "42 Main Street"
}
],
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
],
"validFrom": "2002-07-14T00:00:00Z",
"validTo": "2013-12-31T00:00:00Z",
"style": {
"color": "#ffffff",
"width": 1,
"dashType": "dashed"
}
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "raised by",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
],
"validFrom": "2005-11-22T09:30:00Z",
"validTo": "2011-05-06T14:00:00Z"
}
],
"limit": 100,
"version": 2
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between two entity objects.
{
"id": "9",
"type": "entityRelationship",
"subType": "claim-address-residence",
"label": "Primary residence",
"fields": [
{
"name": "address_line_1",
"type": "text",
"value": "42 Main Street"
}
],
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
],
"validFrom": "2002-07-14T00:00Z",
"validTo": "2013-12-31T00:00Z",
"style": {
"color": "#ffffff",
"width": 1,
"dashType": "dashed"
}
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between a resolved entity object and one of its contributing objects.
{
"id": "5",
"type": "resolvedEntityRelationship",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "raised by",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
],
"validFrom": "2005-11-22T09:30Z",
"validTo": "2011-05-06T14:00Z"
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | edgeCollection |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Get the details for a vertex
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/vertices/{type}/{identifier} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.vertex+json'
const headers = {
'Accept':'application/vnd.sas.sand.vertex+json'
};
fetch('https://example.com/svi-sand/vertices/{type}/{identifier}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.vertex+json'
}
r = requests.get('https://example.com/svi-sand/vertices/{type}/{identifier}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.vertex+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/vertices/{type}/{identifier}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /vertices/{type}/{identifier}
Returns additional information about a single vertex on the Network visualization. This is intended to be used to enhance the Network visualization after retrieving it from /graphs or /traversals; the response from which includes the values for this resource's parameters. The additional information includes the label, adjacent (number of vertices one edge away from this vertex), degree (number of edges entering and leaving the vertex), the adjacent count broken down by entity type, and the degree broken down by relationship type.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the entity type for the vertex. |
identifier | path | string | true | The unique identifier for the vertex. |
expansionLimit | query | integer | false | The maximum number of adjacent vertices. If a value greater than zero is specified and the vertex exceeds the limit, the metrics calculation will be skipped and no degree and adjacent information will be returned. |
metricsLimit | query | integer | false | The maximum number of new vertices to be found by the search when calculating the metrics. If a value greater than zero is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and no degree and adjacent information will be returned. |
metricsAggregationLimit | query | integer | false | The aggregation used to exclude highly connected vertices from the metrics calculation will be skipped when the number of leaf vertices exceeds this limit. The default value of -1 means the aggregation will always run; a value of 0 means the aggregation will never run. |
Example responses
An example of the response from /vertices/{type}/{identifier} as well as more generally a vertex within the context of the Network visualization. Note the degree count will be greater than the adjacent count when there are multiple edges between this and another vertex. The properties are always returned from /vertices but fewer properties are returned for other endpoints, for example, /traversals does not include adjacent, degree, adjacentByType or degreeByType unless its extendedFormat parameter is set to true.
{
"id": "337",
"type": "report",
"typeLabel": "Report",
"label": "Theft of red bmw reported by John Smith",
"attachmentsCount": 1,
"adjacent": 4,
"degree": 5,
"adjacentByType": {
"person": 1,
"report": 3
},
"degreeByType": {
"mentions": 2,
"related to": 3
},
"fields": [
{
"name": "reportedAt",
"type": "date",
"value": "2012-01-05"
}
],
"validFrom": "2001-08-16T05:00:00Z",
"validTo": "2014-10-25T17:00:00Z",
"selected": false,
"style": {
"iconName": "reportIcon1",
"markerColor": "#ffffff",
"backgroundColor": "#ffffff",
"shape": "square",
"scale": 1,
"additionalLabel": "Information Report",
"indicatorIcons": [
{
"name": "High Priority",
"position": "N"
},
{
"name": "Verified",
"position": "S"
}
]
}
}
{
"id": "337",
"type": "report",
"typeLabel": "Report",
"label": "Theft of red bmw reported by John Smith",
"attachmentsCount": 1,
"adjacent": 4,
"degree": 5,
"adjacentByType": {
"person": 1,
"report": 3
},
"degreeByType": {
"mentions": 2,
"related to": 3
},
"fields": [
{
"name": "reportedAt",
"type": "date",
"value": "2012-01-05"
}
],
"validFrom": "2001-08-16T05:00:00Z",
"validTo": "2014-10-25T17:00:00Z",
"selected": false,
"style": {
"iconName": "reportIcon1",
"markerColor": "#ffffff",
"backgroundColor": "#ffffff",
"shape": "square",
"scale": 1,
"additionalLabel": "Information Report",
"indicatorIcons": [
{
"name": "High Priority",
"position": "N"
},
{
"name": "Verified",
"position": "S"
}
]
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | vertex |
404 | Not Found | The type does not exist or the vertex does not exist. | error2 |
Check the existence of a vertex
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/vertices/{type}/{identifier}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/vertices/{type}/{identifier}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/vertices/{type}/{identifier}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/vertices/{type}/{identifier}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /vertices/{type}/{identifier}
Checks the existence of an object. 200 OK is returned if the vertex exists and 404 Not Found if it does not exist.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the entity type for the vertex. |
identifier | path | string | true | The unique identifier for the vertex. |
expansionLimit | query | integer | false | The maximum number of adjacent vertices. If a value greater than zero is specified and the vertex exceeds the limit, the metrics calculation will be skipped and no degree and adjacent information will be returned. |
metricsLimit | query | integer | false | The maximum number of new vertices to be found by the search when calculating the metrics. If a value greater than zero is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and no degree and adjacent information will be returned. |
metricsAggregationLimit | query | integer | false | The aggregation used to exclude highly connected vertices from the metrics calculation will be skipped when the number of leaf vertices exceeds this limit. The default value of -1 means the aggregation will always run; a value of 0 means the aggregation will never run. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The type does not exist or the vertex does not exist. | None |
Expand the relationships of one or more vertices
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/traversals \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.traversal.request+json' \
-H 'Accept: application/vnd.sas.sand.graph+json'
const inputBody = '{
"vertexTypes": [
"report",
"person",
"address"
],
"vertexFilter": {
"type": "or",
"filters": [
{
"type": "type",
"types": [
"person",
"address"
]
},
{
"type": "and",
"filters": [
{
"type": "type",
"types": [
"report"
]
},
{
"type": "terms",
"field": "crime",
"objectType": "report",
"terms": [
"theft"
]
}
]
}
]
},
"edgeTypes": [
"entityRelationship"
],
"query": {
"type": "object",
"objectIds": [
{
"type": "person",
"id": "9g8ds"
},
{
"type": "address",
"id": "420e9"
}
]
},
"depth": 2,
"extendedFormat": false
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.traversal.request+json',
'Accept':'application/vnd.sas.sand.graph+json'
};
fetch('https://example.com/svi-sand/traversals',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.traversal.request+json',
'Accept': 'application/vnd.sas.sand.graph+json'
}
r = requests.post('https://example.com/svi-sand/traversals', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.traversal.request+json"},
"Accept": []string{"application/vnd.sas.sand.graph+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/traversals", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /traversals
Performs a breadth first graph search following all the relationships (edges) extending outwards from one or more objects (vertices) in the Network visualization. The initial objects whose relationships are to be traversed are found by executing the given query.
Body parameter
An example of the request to /traversals where the user wants to expand a person and an address up to 2 levels to find all related theft reports.
{
"vertexTypes": [
"report",
"person",
"address"
],
"vertexFilter": {
"type": "or",
"filters": [
{
"type": "type",
"types": [
"person",
"address"
]
},
{
"type": "and",
"filters": [
{
"type": "type",
"types": [
"report"
]
},
{
"type": "terms",
"field": "crime",
"objectType": "report",
"terms": [
"theft"
]
}
]
}
]
},
"edgeTypes": [
"entityRelationship"
],
"query": {
"type": "object",
"objectIds": [
{
"type": "person",
"id": "9g8ds"
},
{
"type": "address",
"id": "420e9"
}
]
},
"depth": 2,
"extendedFormat": false
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
calculateMetrics | query | boolean | false | Whether to calculate the degree and adjacent counts for all the vertices. As this calculation is expensive, it can take some time particularly for highly connected vertices. Skipping the calculation is recommended when the counts are not needed or when generating the counts leads to a poor user experience. |
edgeExpansionLimit | query | integer | false | The maximum number of new vertices to be found when traversing edges. If a value greater than 0 is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
expansionLimit | query | integer | false | The maximum number of new vertices to be found when searching vertices. If a value greater than 0 is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
metricsLimit | query | integer | false | The maximum number of new vertices to be found by the search when calculating the metrics. If a value greater than 0 is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
metricsAggregationLimit | query | integer | false | The aggregation used to exclude highly connected vertices from the metrics calculation will be skipped when the number of leaf vertices exceeds this limit. The default value of -1 means the aggregation will always run; a value of 0 means the aggregation will never run. |
body | body | traversalRequest | false | none |
Example responses
An example of the response from /graphs or /traversals. Also refer to the edge and vertex examples.
{
"counts": {
"edges": 2,
"vertices": 4
},
"vertices": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 2001,
"degree": 2001
}
],
"edges": [
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
]
}
],
"expansionLimit": 2000,
"expansionLimitExceeded": [
{
"type": "person",
"id": "115"
}
]
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between two entity objects.
{
"id": "9",
"type": "entityRelationship",
"subType": "claim-address-residence",
"label": "Primary residence",
"fields": [
{
"name": "address_line_1",
"type": "text",
"value": "42 Main Street"
}
],
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
],
"validFrom": "2002-07-14T00:00Z",
"validTo": "2013-12-31T00:00Z",
"style": {
"color": "#ffffff",
"width": 1,
"dashType": "dashed"
}
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between a resolved entity object and one of its contributing objects.
{
"id": "5",
"type": "resolvedEntityRelationship",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "raised by",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
],
"validFrom": "2005-11-22T09:30Z",
"validTo": "2011-05-06T14:00Z"
}
An example of the response from /vertices/{type}/{identifier} as well as more generally a vertex within the context of the Network visualization. Note the degree count will be greater than the adjacent count when there are multiple edges between this and another vertex. The properties are always returned from /vertices but fewer properties are returned for other endpoints, for example, /traversals does not include adjacent, degree, adjacentByType or degreeByType unless its extendedFormat parameter is set to true.
{
"id": "337",
"type": "report",
"typeLabel": "Report",
"label": "Theft of red bmw reported by John Smith",
"attachmentsCount": 1,
"adjacent": 4,
"degree": 5,
"adjacentByType": {
"person": 1,
"report": 3
},
"degreeByType": {
"mentions": 2,
"related to": 3
},
"fields": [
{
"name": "reportedAt",
"type": "date",
"value": "2012-01-05"
}
],
"validFrom": "2001-08-16T05:00:00Z",
"validTo": "2014-10-25T17:00:00Z",
"selected": false,
"style": {
"iconName": "reportIcon1",
"markerColor": "#ffffff",
"backgroundColor": "#ffffff",
"shape": "square",
"scale": 1,
"additionalLabel": "Information Report",
"indicatorIcons": [
{
"name": "High Priority",
"position": "N"
},
{
"name": "Verified",
"position": "S"
}
]
}
}
An example of the response from /graphs or /traversals. Also refer to the edge and vertex examples.
{
"counts": {
"edges": 2,
"vertices": 4
},
"vertices": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 2001,
"degree": 2001
}
],
"edges": [
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
]
}
],
"expansionLimit": 2000,
"expansionLimitExceeded": [
{
"type": "person",
"id": "115"
}
]
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between two entity objects.
{
"id": "9",
"type": "entityRelationship",
"subType": "claim-address-residence",
"label": "Primary residence",
"fields": [
{
"name": "address_line_1",
"type": "text",
"value": "42 Main Street"
}
],
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
],
"validFrom": "2002-07-14T00:00Z",
"validTo": "2013-12-31T00:00Z",
"style": {
"color": "#ffffff",
"width": 1,
"dashType": "dashed"
}
}
An example of an edge within the responses from /graphs, /graphs/edges, /traversals and /paths. This example is a relationship between a resolved entity object and one of its contributing objects.
{
"id": "5",
"type": "resolvedEntityRelationship",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "raised by",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person",
"compoundValues": [
"Smith 1982-03-14"
]
}
],
"validFrom": "2005-11-22T09:30Z",
"validTo": "2011-05-06T14:00Z"
}
An example of the response from /vertices/{type}/{identifier} as well as more generally a vertex within the context of the Network visualization. Note the degree count will be greater than the adjacent count when there are multiple edges between this and another vertex. The properties are always returned from /vertices but fewer properties are returned for other endpoints, for example, /traversals does not include adjacent, degree, adjacentByType or degreeByType unless its extendedFormat parameter is set to true.
{
"id": "337",
"type": "report",
"typeLabel": "Report",
"label": "Theft of red bmw reported by John Smith",
"attachmentsCount": 1,
"adjacent": 4,
"degree": 5,
"adjacentByType": {
"person": 1,
"report": 3
},
"degreeByType": {
"mentions": 2,
"related to": 3
},
"fields": [
{
"name": "reportedAt",
"type": "date",
"value": "2012-01-05"
}
],
"validFrom": "2001-08-16T05:00:00Z",
"validTo": "2014-10-25T17:00:00Z",
"selected": false,
"style": {
"iconName": "reportIcon1",
"markerColor": "#ffffff",
"backgroundColor": "#ffffff",
"shape": "square",
"scale": 1,
"additionalLabel": "Information Report",
"indicatorIcons": [
{
"name": "High Priority",
"position": "N"
},
{
"name": "Verified",
"position": "S"
}
]
}
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | graph |
400 | Bad Request | The request is malformed or contains invalid parameter values; or the search had to be canceled because the number of new vertices exceeded the expansion limit. | error2 |
Find matching paths from one or more start objects
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/paths \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.paths.request+json' \
-H 'Accept: application/vnd.sas.collection+json'
const inputBody = '{
"type": "report",
"id": "6SA1FD1",
"nextLevel": {
"vertexTypes": [
"person"
],
"nextLevel": {
"vertexTypes": [
"address"
]
}
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.paths.request+json',
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/paths',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.paths.request+json',
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.post('https://example.com/svi-sand/paths', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.paths.request+json"},
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/paths", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /paths
Performs a path search from one or more start objects. The desired path is described by a sequence of vertex and edge filters. Matching paths are returned as a list of endpoints from the leaf vertex to the root vertex as it is usually the leaves that the client is most interested in with the rest of the path being used as contextual information. The response item media type is application/vnd.sas.sand.path. This endpoint is experimental and should be used only in test environments.
Body parameter
An example of the request for /paths with a single start object. In this example, the user wants to find all paths from the specified report to an address via a person.
{
"type": "report",
"id": "6SA1FD1",
"nextLevel": {
"vertexTypes": [
"person"
],
"nextLevel": {
"vertexTypes": [
"address"
]
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first path to include in the current page. |
limit | query | integer | false | The maximum number of paths to include in each page. |
calculateMetrics | query | boolean | false | Whether to calculate the degree and adjacent counts for all the vertices. As this calculation is expensive, it can take some time particularly for highly connected vertices. Skipping the calculation is recommended when the counts are not needed or when generating the counts leads to a poor user experience. |
edgeExpansionLimit | query | integer | false | The maximum number of new vertices to be found when traversing edges. If a value greater than 0 is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
expansionLimit | query | integer | false | The maximum number of new vertices to be found when searching vertices. If a value greater than 0 is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
metricsLimit | query | integer | false | The maximum number of new vertices to be found by the search when calculating the metrics. If a value greater than 0 is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
metricsAggregationLimit | query | integer | false | The aggregation used to exclude highly connected vertices from the metrics calculation will be skipped when the number of leaf vertices exceeds this limit. The default value of -1 means the aggregation will always run; a value of 0 means the aggregation will never run. |
body | body | pathsRequest | false | none |
Example responses
An example of the response from /paths.
{
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/paths?start=0&limit=50",
"uri": "/svi-sand/paths?start=0&limit=50",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
},
{
"method": "POST",
"rel": "collection",
"href": "/svi-sand/paths",
"uri": "/svi-sand/paths",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
}
],
"name": "paths",
"accept": "application/vnd.sas.sand.path",
"start": 0,
"count": 1,
"items": [
{
"endpoints": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "11",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person"
}
]
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 4,
"degree": 4
}
]
}
],
"limit": 50,
"version": 2
}
An example of a path within the response from /paths.
{
"endpoints": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "11",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person"
}
]
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 4,
"degree": 4
}
]
}
An example of the response from /paths.
{
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/paths?start=0&limit=50",
"uri": "/svi-sand/paths?start=0&limit=50",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
},
{
"method": "POST",
"rel": "collection",
"href": "/svi-sand/paths",
"uri": "/svi-sand/paths",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
}
],
"name": "paths",
"accept": "application/vnd.sas.sand.path",
"start": 0,
"count": 1,
"items": [
{
"endpoints": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "11",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person"
}
]
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 4,
"degree": 4
}
]
}
],
"limit": 50,
"version": 2
}
An example of a path within the response from /paths.
{
"endpoints": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "11",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person"
}
]
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 4,
"degree": 4
}
]
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | pathCollection |
400 | Bad Request | The request is malformed or contains invalid parameter values; or the search had to be canceled because the number of new vertices exceeded the expansion limit. | error2 |
Find paths between the start and end objects up to a specified number of hops in length
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/relatedObjects \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.related.objects.request+json' \
-H 'Accept: application/vnd.sas.collection+json'
const inputBody = '{
"startTypes": [
"report"
],
"startQuery": {
"type": "object",
"objectIds": [
{
"type": "report",
"id": "SDF46AS"
},
{
"type": "report",
"id": "FN654A"
}
]
},
"endTypes": [
"address"
],
"endQuery": {
"type": "text",
"language": "lucene",
"text": "_type:address"
},
"hops": 2
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.related.objects.request+json',
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/relatedObjects',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.related.objects.request+json',
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.post('https://example.com/svi-sand/relatedObjects', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.related.objects.request+json"},
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/relatedObjects", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /relatedObjects
Performs a path search between the start and end objects. Matching paths are returned as a list of endpoints from the leaf vertex to the root vertex as it is usually the leaves that the client is most interested in with the rest of the path being used as contextual information. The response item media type is application/vnd.sas.sand.path. This endpoint is experimental and should be used only in test environments.
Body parameter
An example of the request to /relatedObjects. In this example, the user wants to find all address objects one or two hops from the specified report objects.
{
"startTypes": [
"report"
],
"startQuery": {
"type": "object",
"objectIds": [
{
"type": "report",
"id": "SDF46AS"
},
{
"type": "report",
"id": "FN654A"
}
]
},
"endTypes": [
"address"
],
"endQuery": {
"type": "text",
"language": "lucene",
"text": "_type:address"
},
"hops": 2
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first path to include in the current page. |
limit | query | integer | false | The maximum number of paths to include in each page. |
edgeExpansionLimit | query | integer | false | The maximum number of new vertices to be found when traversing edges. If a value greater than 0 is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
expansionLimit | query | integer | false | The maximum number of new vertices to be found when searching vertices. If a value greater than 0 is specified and the number of new vertices found by the search exceeds the limit, then the search will be canceled and a message will be returned. |
body | body | relatedObjectsRequest | false | none |
Example responses
An example of the response from /paths.
{
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/paths?start=0&limit=50",
"uri": "/svi-sand/paths?start=0&limit=50",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
},
{
"method": "POST",
"rel": "collection",
"href": "/svi-sand/paths",
"uri": "/svi-sand/paths",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
}
],
"name": "paths",
"accept": "application/vnd.sas.sand.path",
"start": 0,
"count": 1,
"items": [
{
"endpoints": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "11",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person"
}
]
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 4,
"degree": 4
}
]
}
],
"limit": 50,
"version": 2
}
An example of a path within the response from /paths.
{
"endpoints": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "11",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person"
}
]
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 4,
"degree": 4
}
]
}
An example of the response from /paths.
{
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/paths?start=0&limit=50",
"uri": "/svi-sand/paths?start=0&limit=50",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
},
{
"method": "POST",
"rel": "collection",
"href": "/svi-sand/paths",
"uri": "/svi-sand/paths",
"type": "application/vnd.sas.sand.paths.request",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.path"
}
],
"name": "paths",
"accept": "application/vnd.sas.sand.path",
"start": 0,
"count": 1,
"items": [
{
"endpoints": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "11",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person"
}
]
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 4,
"degree": 4
}
]
}
],
"limit": 50,
"version": 2
}
An example of a path within the response from /paths.
{
"endpoints": [
{
"id": "10",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900136650",
"attachmentsCount": 3,
"adjacent": 1,
"degree": 1
},
{
"id": "9",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "10",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "73",
"type": "address",
"typeLabel": "Address",
"label": "1203 SAMUEL ADAMS CIR, CONCORD, NC",
"attachmentsCount": 1,
"adjacent": 3,
"degree": 3
},
{
"id": "11",
"type": "entityRelationship",
"label": "regarding",
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "73",
"type": "address"
}
]
},
{
"id": "4",
"type": "claim",
"typeLabel": "Claim",
"label": "Claim: 0009900073608",
"attachmentsCount": 2,
"adjacent": 1,
"degree": 1
},
{
"id": "5",
"type": "resolvedEntityRelationship",
"label": "raised by",
"compoundValues": [
"Smith 1982-03-14"
],
"endpoints": [
{
"id": "4",
"type": "claim"
},
{
"id": "115",
"type": "person"
}
]
},
{
"id": "115",
"type": "person",
"typeLabel": "Person",
"compoundValues": [
"Smith 1982-03-14"
],
"label": "John Smith",
"adjacent": 4,
"degree": 4
}
]
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | pathCollection |
400 | Bad Request | The request is malformed or contains invalid parameter values; or the search had to be canceled because the number of new vertices exceeded the expansion limit. | error2 |
TextAnalytics
Text Analytics visualization related endpoints.
Starts a new text analytics job
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/analytics \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.analytics.request+json' \
-H 'Accept: application/vnd.sas.sand.analytics.job+json'
const inputBody = '{
"types": [
"email"
],
"query": {
"type": "object",
"objectIds": [
{
"type": "email",
"id": "2417"
},
{
"type": "email",
"id": "1327"
},
{
"type": "email",
"id": "2659"
}
]
},
"categories": [
"significantTerm",
"topic",
"person",
"organization"
],
"fields": [
"subject",
"body"
],
"fromField": "metadatafrom",
"toFields": [
"metdatato",
"cc"
],
"excludes": {
"significantTerm": [
"fw",
"time",
"pls"
],
"person": [
"pam evens"
]
},
"identities": {
"person": [
{
"name": "james robert smith",
"aliases": [
{
"name": "james robert smith"
},
{
"name": "james smith"
}
]
}
]
},
"maxResultsPerCategory": 200,
"locale": "en-US"
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.analytics.request+json',
'Accept':'application/vnd.sas.sand.analytics.job+json'
};
fetch('https://example.com/svi-sand/analytics',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.analytics.request+json',
'Accept': 'application/vnd.sas.sand.analytics.job+json'
}
r = requests.post('https://example.com/svi-sand/analytics', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.analytics.request+json"},
"Accept": []string{"application/vnd.sas.sand.analytics.job+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/analytics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /analytics
Starts a new background job that performs text analytics on the unstructured text in the objects found by the search. The job extracts significant terms, phrases, and topics as well as resolving named person, location, and organization entities. The response will include the unique identifier to be used with the related API endpoints to navigate the results.
Body parameter
An example of the request for /analytics containing the parameters of a text analytics job. Also refer to the query examples.
{
"types": [
"email"
],
"query": {
"type": "object",
"objectIds": [
{
"type": "email",
"id": "2417"
},
{
"type": "email",
"id": "1327"
},
{
"type": "email",
"id": "2659"
}
]
},
"categories": [
"significantTerm",
"topic",
"person",
"organization"
],
"fields": [
"subject",
"body"
],
"fromField": "metadatafrom",
"toFields": [
"metdatato",
"cc"
],
"excludes": {
"significantTerm": [
"fw",
"time",
"pls"
],
"person": [
"pam evens"
]
},
"identities": {
"person": [
{
"name": "james robert smith",
"aliases": [
{
"name": "james robert smith"
},
{
"name": "james smith"
}
]
}
]
},
"maxResultsPerCategory": 200,
"locale": "en-US"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | analyticsRequest | false | none |
Example responses
An example of the response from /analytics and /analytics/{jobId} containing the identifier, state and parameters of a scheduled text analytics job.
{
"identifier": "dff24648-3310-481f-8890-38ea823c4562",
"state": "running",
"types": [
"email"
],
"query": {
"type": "object",
"objectIds": [
{
"type": "email",
"id": "2417"
},
{
"type": "email",
"id": "1327"
},
{
"type": "email",
"id": "2659"
}
]
},
"categories": [
"significantTerm",
"topic",
"person",
"organization"
],
"fields": [
"subject",
"body"
],
"fromField": "metadatafrom",
"toFields": [
"metdatato",
"cc"
],
"excludes": {
"significantTerm": [
"fw",
"time",
"pls"
],
"person": [
"Pam Evens"
]
},
"identities": {
"person": [
{
"name": "james robert smith",
"aliases": [
{
"name": "james robert smith"
},
{
"name": "james smith"
}
]
}
]
},
"maxResultsPerCategory": 200,
"locale": "en-US",
"errors": [],
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "state",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancel",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state?value=cancelled",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/identities",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/categories",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/results",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/sankeyDiagrams",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
{
"identifier": "dff24648-3310-481f-8890-38ea823c4562",
"state": "running",
"types": [
"email"
],
"query": {
"type": "object",
"objectIds": [
{
"type": "email",
"id": "2417"
},
{
"type": "email",
"id": "1327"
},
{
"type": "email",
"id": "2659"
}
]
},
"categories": [
"significantTerm",
"topic",
"person",
"organization"
],
"fields": [
"subject",
"body"
],
"fromField": "metadatafrom",
"toFields": [
"metdatato",
"cc"
],
"excludes": {
"significantTerm": [
"fw",
"time",
"pls"
],
"person": [
"Pam Evens"
]
},
"identities": {
"person": [
{
"name": "james robert smith",
"aliases": [
{
"name": "james robert smith"
},
{
"name": "james smith"
}
]
}
]
},
"maxResultsPerCategory": 200,
"locale": "en-US",
"errors": [],
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "state",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancel",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state?value=cancelled",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/identities",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/categories",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/results",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/sankeyDiagrams",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 | Accepted | The job was started. | analyticsJob |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
202 | Location | string | The URI of the new text analytics job. |
Get the locales supported by text analytics
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/analytics/locales \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/analytics/locales',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/svi-sand/analytics/locales', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/analytics/locales", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /analytics/locales
Returns the name and BCP-47 language tag for each locale supported by text analytics.
Example responses
An example of the response from /analytics/locales specifying the locales that are supported for text analytics. This example lists the English and Spanish locales.
{
"links": [
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
],
"name": "locales",
"accept": "application/vnd.sas.sand.analytics.locale",
"count": 2,
"items": [
{
"name": "English",
"nativeName": "English",
"tag": "en"
},
{
"name": "Spanish",
"nativeName": "Español",
"tag": "es"
}
],
"version": 2
}
{
"links": [
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
],
"name": "locales",
"accept": "application/vnd.sas.sand.analytics.locale",
"count": 2,
"items": [
{
"name": "English",
"nativeName": "English",
"tag": "en"
},
{
"name": "Spanish",
"nativeName": "Español",
"tag": "es"
}
],
"version": 2
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyticsLocaleCollection |
Get the headers for the locales supported by text analytics
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/analytics/locales
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/analytics/locales',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/analytics/locales')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/analytics/locales", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /analytics/locales
Returns the headers for the locales supported by text analytics.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Get the details of a text analytics job
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/analytics/{jobId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.analytics.job+json'
const headers = {
'Accept':'application/vnd.sas.sand.analytics.job+json'
};
fetch('https://example.com/svi-sand/analytics/{jobId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.analytics.job+json'
}
r = requests.get('https://example.com/svi-sand/analytics/{jobId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.analytics.job+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/analytics/{jobId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /analytics/{jobId}
Returns the state and parameters of a given text analytics job.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
Example responses
An example of the response from /analytics and /analytics/{jobId} containing the identifier, state and parameters of a scheduled text analytics job.
{
"identifier": "dff24648-3310-481f-8890-38ea823c4562",
"state": "running",
"types": [
"email"
],
"query": {
"type": "object",
"objectIds": [
{
"type": "email",
"id": "2417"
},
{
"type": "email",
"id": "1327"
},
{
"type": "email",
"id": "2659"
}
]
},
"categories": [
"significantTerm",
"topic",
"person",
"organization"
],
"fields": [
"subject",
"body"
],
"fromField": "metadatafrom",
"toFields": [
"metdatato",
"cc"
],
"excludes": {
"significantTerm": [
"fw",
"time",
"pls"
],
"person": [
"Pam Evens"
]
},
"identities": {
"person": [
{
"name": "james robert smith",
"aliases": [
{
"name": "james robert smith"
},
{
"name": "james smith"
}
]
}
]
},
"maxResultsPerCategory": 200,
"locale": "en-US",
"errors": [],
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "state",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancel",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state?value=cancelled",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/identities",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/categories",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/results",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/sankeyDiagrams",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
{
"identifier": "dff24648-3310-481f-8890-38ea823c4562",
"state": "running",
"types": [
"email"
],
"query": {
"type": "object",
"objectIds": [
{
"type": "email",
"id": "2417"
},
{
"type": "email",
"id": "1327"
},
{
"type": "email",
"id": "2659"
}
]
},
"categories": [
"significantTerm",
"topic",
"person",
"organization"
],
"fields": [
"subject",
"body"
],
"fromField": "metadatafrom",
"toFields": [
"metdatato",
"cc"
],
"excludes": {
"significantTerm": [
"fw",
"time",
"pls"
],
"person": [
"Pam Evens"
]
},
"identities": {
"person": [
{
"name": "james robert smith",
"aliases": [
{
"name": "james robert smith"
},
{
"name": "james smith"
}
]
}
]
},
"maxResultsPerCategory": 200,
"locale": "en-US",
"errors": [],
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "state",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancel",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state?value=cancelled",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/identities",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/categories",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/results",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/sankeyDiagrams",
"uri": "/svi-sand/analytics/dff24648-3310-481f-8890-38ea823c4562/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyticsJob |
404 | Not Found | There is no job for the given identifier. | error2 |
Get the headers for a text analytics job
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/analytics/{jobId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/analytics/{jobId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/analytics/{jobId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/analytics/{jobId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /analytics/{jobId}
Returns the headers for a given text analytics job.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | There is no job for the given identifier. | None |
Delete a text analytics job
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/analytics/{jobId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/analytics/{jobId}',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/analytics/{jobId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/analytics/{jobId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /analytics/{jobId}
While text analytics jobs are associated with a user's session and will be deleted when the session ends, this endpoint facilitates the deletion prior to ending the session. It is not necessary to cancel the job before deleting it.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Get the state of a text analytics job
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/analytics/{jobId}/state \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: text/plain'
const headers = {
'Accept':'text/plain'
};
fetch('https://example.com/svi-sand/analytics/{jobId}/state',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'text/plain'
}
r = requests.get('https://example.com/svi-sand/analytics/{jobId}/state', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"text/plain"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/analytics/{jobId}/state", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /analytics/{jobId}/state
Returns the current state of a given text analytics job. The valid states are: pending, running, completed, completedWithErrors, canceled, failed.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
Example responses
200 Response
"running"
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | string |
404 | Not Found | There is no job for the given identifier. | error2 |
Get the headers for the get state operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/analytics/{jobId}/state
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/analytics/{jobId}/state',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/analytics/{jobId}/state')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/analytics/{jobId}/state", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /analytics/{jobId}/state
Returns the headers for the get state operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | There is no job for the given identifier. | None |
Cancel a text analytics job
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-sand/analytics/{jobId}/state?value=string \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: text/plain'
const headers = {
'Accept':'text/plain'
};
fetch('https://example.com/svi-sand/analytics/{jobId}/state?value=string',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'text/plain'
}
r = requests.put('https://example.com/svi-sand/analytics/{jobId}/state', params={
'value': 'string'
}, headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"text/plain"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-sand/analytics/{jobId}/state", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /analytics/{jobId}/state
Cancels the specified text analytics job and returns the new job state.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
value | query | string | true | The new job state. The expected value is cancelled. |
Example responses
200 Response
"cancelled"
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
409 Response
{
"description": "An example of a 409 conflict Error message.",
"value": {
"errorCode": "95234",
"message": "An analyzer already exists with the name \"example\". ",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 409
}
}
{
"description": "An example of a 409 conflict Error message.",
"value": {
"errorCode": "95234",
"message": "An analyzer already exists with the name \"example\". ",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 409
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | string |
400 | Bad Request | When attempting to update the state to a value other than cancelled. | error2 |
404 | Not Found | There is no job for the given identifier. | error2 |
409 | Conflict | The job has already finished and cannot be canceled. | error2 |
Get the identities found by a text analytics job
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/analytics/{jobId}/identities \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.analytics.identities+json'
const headers = {
'Accept':'application/vnd.sas.sand.analytics.identities+json'
};
fetch('https://example.com/svi-sand/analytics/{jobId}/identities',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.analytics.identities+json'
}
r = requests.get('https://example.com/svi-sand/analytics/{jobId}/identities', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.analytics.identities+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/analytics/{jobId}/identities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /analytics/{jobId}/identities
Returns the identity information for the person, organization, and location entities that were resolved by the text analytics job. Identities consist of an entity name, frequency count, and any known aliases.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
Example responses
An example of the response from /analytics/{jobId}/identities containing the identities for the person, organization and location entities that were resolved by the text analytics job.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"identities": {
"person": [
{
"name": "james robert smith",
"frequencyCount": 23,
"aliases": [
{
"name": "james robert smith",
"frequencyCount": 14
},
{
"name": "james smith",
"frequencyCount": 9
}
]
},
{
"name": "sarah jones",
"frequencyCount": 5,
"aliases": [
{
"name": "sarah jones",
"frequencyCount": 5
}
]
}
],
"organization": [
{
"name": "white house",
"frequencyCount": 39,
"aliases": [
{
"name": "white house",
"frequencyCount": 39
}
]
},
{
"name": "department of state",
"frequencyCount": 25,
"aliases": [
{
"name": "department of state",
"frequencyCount": 25
}
]
}
],
"location": [
{
"name": "united states",
"frequencyCount": 36,
"aliases": [
{
"name": "united states",
"frequencyCount": 36
}
]
},
{
"name": "united kingdom",
"frequencyCount": 22,
"aliases": [
{
"name": "united kingdom",
"frequencyCount": 22
}
]
}
]
},
"errors": [],
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"identities": {
"person": [
{
"name": "james robert smith",
"frequencyCount": 23,
"aliases": [
{
"name": "james robert smith",
"frequencyCount": 14
},
{
"name": "james smith",
"frequencyCount": 9
}
]
},
{
"name": "sarah jones",
"frequencyCount": 5,
"aliases": [
{
"name": "sarah jones",
"frequencyCount": 5
}
]
}
],
"organization": [
{
"name": "white house",
"frequencyCount": 39,
"aliases": [
{
"name": "white house",
"frequencyCount": 39
}
]
},
{
"name": "department of state",
"frequencyCount": 25,
"aliases": [
{
"name": "department of state",
"frequencyCount": 25
}
]
}
],
"location": [
{
"name": "united states",
"frequencyCount": 36,
"aliases": [
{
"name": "united states",
"frequencyCount": 36
}
]
},
{
"name": "united kingdom",
"frequencyCount": 22,
"aliases": [
{
"name": "united kingdom",
"frequencyCount": 22
}
]
}
]
},
"errors": [],
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
202 Response
{
"description": "An example of a 202 accepted Error message.",
"value": {
"errorCode": "95192",
"message": "The text analytics results are not yet available for the identifier \"exampleId\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 202
}
}
{
"description": "An example of a 202 accepted Error message.",
"value": {
"errorCode": "95192",
"message": "The text analytics results are not yet available for the identifier \"exampleId\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 202
}
}
An example of the response from /analytics/{jobId}/identities containing the identities for the person, organization and location entities that were resolved by the text analytics job.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"identities": {
"person": [
{
"name": "james robert smith",
"frequencyCount": 23,
"aliases": [
{
"name": "james robert smith",
"frequencyCount": 14
},
{
"name": "james smith",
"frequencyCount": 9
}
]
},
{
"name": "sarah jones",
"frequencyCount": 5,
"aliases": [
{
"name": "sarah jones",
"frequencyCount": 5
}
]
}
],
"organization": [
{
"name": "white house",
"frequencyCount": 39,
"aliases": [
{
"name": "white house",
"frequencyCount": 39
}
]
},
{
"name": "department of state",
"frequencyCount": 25,
"aliases": [
{
"name": "department of state",
"frequencyCount": 25
}
]
}
],
"location": [
{
"name": "united states",
"frequencyCount": 36,
"aliases": [
{
"name": "united states",
"frequencyCount": 36
}
]
},
{
"name": "united kingdom",
"frequencyCount": 22,
"aliases": [
{
"name": "united kingdom",
"frequencyCount": 22
}
]
}
]
},
"errors": [],
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"identities": {
"person": [
{
"name": "james robert smith",
"frequencyCount": 23,
"aliases": [
{
"name": "james robert smith",
"frequencyCount": 14
},
{
"name": "james smith",
"frequencyCount": 9
}
]
},
{
"name": "sarah jones",
"frequencyCount": 5,
"aliases": [
{
"name": "sarah jones",
"frequencyCount": 5
}
]
}
],
"organization": [
{
"name": "white house",
"frequencyCount": 39,
"aliases": [
{
"name": "white house",
"frequencyCount": 39
}
]
},
{
"name": "department of state",
"frequencyCount": 25,
"aliases": [
{
"name": "department of state",
"frequencyCount": 25
}
]
}
],
"location": [
{
"name": "united states",
"frequencyCount": 36,
"aliases": [
{
"name": "united states",
"frequencyCount": 36
}
]
},
{
"name": "united kingdom",
"frequencyCount": 22,
"aliases": [
{
"name": "united kingdom",
"frequencyCount": 22
}
]
}
]
},
"errors": [],
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyticsIdentities |
202 | Accepted | The text analytics results are not available yet. For example, the job is still running. | error2 |
206 | Partial Content | The job did not complete successfully but there are some text analytics results. | analyticsIdentities |
404 | Not Found | There is no job for the given identifier. | error2 |
Get the headers for the get identities operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/analytics/{jobId}/identities
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/analytics/{jobId}/identities',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/analytics/{jobId}/identities')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/analytics/{jobId}/identities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /analytics/{jobId}/identities
Returns the headers for the get identities operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
202 | Accepted | The text analytics results are not available yet. For example, the job is still running. | None |
206 | Partial Content | The job did not complete successfully but there are some text analytics results. | None |
404 | Not Found | There is no job for the given identifier. | None |
Get the categories of text analytics results
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/analytics/{jobId}/categories \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.analytics.explore+json' \
-H 'Accept: application/vnd.sas.sand.analytics.categories+json'
const inputBody = '{}';
const headers = {
'Content-Type':'application/vnd.sas.sand.analytics.explore+json',
'Accept':'application/vnd.sas.sand.analytics.categories+json'
};
fetch('https://example.com/svi-sand/analytics/{jobId}/categories',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.analytics.explore+json',
'Accept': 'application/vnd.sas.sand.analytics.categories+json'
}
r = requests.post('https://example.com/svi-sand/analytics/{jobId}/categories', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.analytics.explore+json"},
"Accept": []string{"application/vnd.sas.sand.analytics.categories+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/analytics/{jobId}/categories", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /analytics/{jobId}/categories
Returns the categories of text analytics results that are available at the specified exploration level.
Body parameter
An empty request body can be used with /analytics/{jobId}/categories to retrieve all the categories for which results were generated.
{}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
body | body | analyticsExplore | false | none |
Example responses
An empty request body can be used with /analytics/{jobId}/categories to retrieve the categories for which results were generated. This example is a response to such a request.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"categories": [
"unigram",
"bigram",
"trigram",
"person",
"organization",
"location",
"significantTerm",
"topic"
],
"fromAndTo": true,
"errors": [],
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
The phrase member can be combined with category and used with /analytics/{jobId}/categories to retrieve the categories of results that were also extracted from the object(s) containing the specified phrase. This example shows the categories of results that were extracted from the same object(s) from which the "John Smith" person was resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "john smith"
},
"categories": [
"unigram",
"bigram",
"organization",
"location",
"significantTerm"
],
"fromAndTo": true,
"errors": [],
"links": []
}
A nextLevel member with its own category and phrase can be sent to /analytics/{jobId}/categories to retrieve the categories of results that were extracted from the same object(s) containing both the top-level phrase and next level phrase. This example shows the categories of results that were extracted from the same object(s) from which the "John Smith" person and "SAS" organization were resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "john smith",
"nextLevel": {
"category": "organization",
"phrase": "sas"
}
},
"categories": [
"unigram",
"bigram",
"person",
"location",
"significantTerm"
],
"fromAndTo": true,
"errors": [],
"links": []
}
An empty request body can be used with /analytics/{jobId}/categories to retrieve the categories for which results were generated. This example is a response to such a request.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"categories": [
"unigram",
"bigram",
"trigram",
"person",
"organization",
"location",
"significantTerm",
"topic"
],
"fromAndTo": true,
"errors": [],
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
The phrase member can be combined with category and used with /analytics/{jobId}/categories to retrieve the categories of results that were also extracted from the object(s) containing the specified phrase. This example shows the categories of results that were extracted from the same object(s) from which the "John Smith" person was resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "john smith"
},
"categories": [
"unigram",
"bigram",
"organization",
"location",
"significantTerm"
],
"fromAndTo": true,
"errors": [],
"links": []
}
A nextLevel member with its own category and phrase can be sent to /analytics/{jobId}/categories to retrieve the categories of results that were extracted from the same object(s) containing both the top-level phrase and next level phrase. This example shows the categories of results that were extracted from the same object(s) from which the "John Smith" person and "SAS" organization were resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "john smith",
"nextLevel": {
"category": "organization",
"phrase": "sas"
}
},
"categories": [
"unigram",
"bigram",
"person",
"location",
"significantTerm"
],
"fromAndTo": true,
"errors": [],
"links": []
}
202 Response
{
"description": "An example of a 202 accepted Error message.",
"value": {
"errorCode": "95192",
"message": "The text analytics results are not yet available for the identifier \"exampleId\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 202
}
}
{
"description": "An example of a 202 accepted Error message.",
"value": {
"errorCode": "95192",
"message": "The text analytics results are not yet available for the identifier \"exampleId\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 202
}
}
An empty request body can be used with /analytics/{jobId}/categories to retrieve the categories for which results were generated. This example is a response to such a request.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"categories": [
"unigram",
"bigram",
"trigram",
"person",
"organization",
"location",
"significantTerm",
"topic"
],
"fromAndTo": true,
"errors": [],
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
The phrase member can be combined with category and used with /analytics/{jobId}/categories to retrieve the categories of results that were also extracted from the object(s) containing the specified phrase. This example shows the categories of results that were extracted from the same object(s) from which the "John Smith" person was resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "john smith"
},
"categories": [
"unigram",
"bigram",
"organization",
"location",
"significantTerm"
],
"fromAndTo": true,
"errors": [],
"links": []
}
A nextLevel member with its own category and phrase can be sent to /analytics/{jobId}/categories to retrieve the categories of results that were extracted from the same object(s) containing both the top-level phrase and next level phrase. This example shows the categories of results that were extracted from the same object(s) from which the "John Smith" person and "SAS" organization were resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "john smith",
"nextLevel": {
"category": "organization",
"phrase": "sas"
}
},
"categories": [
"unigram",
"bigram",
"person",
"location",
"significantTerm"
],
"fromAndTo": true,
"errors": [],
"links": []
}
An empty request body can be used with /analytics/{jobId}/categories to retrieve the categories for which results were generated. This example is a response to such a request.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"categories": [
"unigram",
"bigram",
"trigram",
"person",
"organization",
"location",
"significantTerm",
"topic"
],
"fromAndTo": true,
"errors": [],
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
The phrase member can be combined with category and used with /analytics/{jobId}/categories to retrieve the categories of results that were also extracted from the object(s) containing the specified phrase. This example shows the categories of results that were extracted from the same object(s) from which the "John Smith" person was resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "john smith"
},
"categories": [
"unigram",
"bigram",
"organization",
"location",
"significantTerm"
],
"fromAndTo": true,
"errors": [],
"links": []
}
A nextLevel member with its own category and phrase can be sent to /analytics/{jobId}/categories to retrieve the categories of results that were extracted from the same object(s) containing both the top-level phrase and next level phrase. This example shows the categories of results that were extracted from the same object(s) from which the "John Smith" person and "SAS" organization were resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "john smith",
"nextLevel": {
"category": "organization",
"phrase": "sas"
}
},
"categories": [
"unigram",
"bigram",
"person",
"location",
"significantTerm"
],
"fromAndTo": true,
"errors": [],
"links": []
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyticsCategories |
202 | Accepted | The text analytics results are not available yet. For example, the job is still running. | error2 |
206 | Partial Content | The job did not complete successfully but there are some text analytics results. | analyticsCategories |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | There is no job for the given identifier or there are no results at the specified exploration level. | error2 |
Get the text analytics results
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/analytics/{jobId}/results \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.analytics.explore+json' \
-H 'Accept: application/vnd.sas.sand.analytics.results+json'
const inputBody = '{
"level": {
"category": "significantTerm"
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.analytics.explore+json',
'Accept':'application/vnd.sas.sand.analytics.results+json'
};
fetch('https://example.com/svi-sand/analytics/{jobId}/results',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.analytics.explore+json',
'Accept': 'application/vnd.sas.sand.analytics.results+json'
}
r = requests.post('https://example.com/svi-sand/analytics/{jobId}/results', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.analytics.explore+json"},
"Accept": []string{"application/vnd.sas.sand.analytics.results+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/analytics/{jobId}/results", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /analytics/{jobId}/results
Returns the text analytics results that are available at the specified exploration level.
Body parameter
The category member can be used on its own with /analytics/{jobId}/results to retrieve the results of a single category. This example will retrieve the significant terms.
{
"level": {
"category": "significantTerm"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
body | body | analyticsExplore | false | none |
Example responses
The category member can be used on its own with /analytics/{jobId}/results to retrieve the results of a single category. This example shows person results being retrieved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person"
},
"results": [
{
"phrase": "james robert smith",
"frequencyCount": 5,
"objectIds": [
{
"type": "article",
"id": "2569"
},
{
"type": "article",
"id": "65"
}
],
"aliases": [
{
"phrase": "james robert smith",
"frequencyCount": 3,
"objectIds": [
{
"type": "article",
"id": "2569"
},
{
"type": "article",
"id": "65"
}
]
},
{
"phrase": "james smith",
"frequencyCount": 2,
"objectIds": [
{
"type": "article",
"id": "65"
}
]
}
]
},
{
"phrase": "sarah edwards",
"frequencyCount": 2,
"objectIds": [
{
"type": "article",
"id": "3985"
},
{
"type": "article",
"id": "1877"
}
],
"aliases": [
{
"phrase": "sarah edwards",
"frequencyCount": 2,
"objectIds": [
{
"type": "article",
"id": "3985"
},
{
"type": "article",
"id": "1877"
}
]
}
]
}
],
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
The nextLevel member with its own category can be sent to /analytics/{jobId}/results to retrieve the results of the specified (next level) category that were extracted from the same object(s) containing the specified (top-level) phrase. This example shows the organization results that were resolved from the same object(s) from which the "James Robert Smith" person and his aliases were resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "james robert smith",
"nextLevel": {
"category": "organization"
}
},
"results": [
{
"phrase": "washington post",
"frequencyCount": 4,
"objectIds": [
{
"type": "article",
"id": "2569"
},
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
],
"aliases": [
{
"phrase": "washington post",
"frequencyCount": 4,
"objectIds": [
{
"type": "article",
"id": "2569"
},
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
]
}
]
},
{
"name": "sas",
"frequencyCount": 3,
"objectIds": [
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
],
"aliases": [
{
"phrase": "sas",
"frequencyCount": 3,
"objectIds": [
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
]
}
]
}
],
"links": []
}
A second nextLevel can be used to retrieve the results of the specified second next level category that were extracted from the same object(s) containing both the top-level phrase and next level phrase. This example shows the significant term results that were extracted from the same object(s) from which the "James Robert Smith" person (and his aliases) and the "SAS" organization were resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "james robert smith",
"nextLevel": {
"category": "organization",
"phrase": "sas",
"nextLevel": {
"category": "significantTerm"
}
}
},
"results": [
{
"phrase": "analytics",
"frequencyCount": 7,
"weight": 0.723518965,
"objectIds": [
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
],
"aliases": []
},
{
"phrase": "university",
"frequencyCount": 3,
"weight": 0.682183481,
"objectIds": [
{
"type": "article",
"id": "1935"
}
],
"aliases": []
}
],
"links": []
}
The category member can be used on its own with /analytics/{jobId}/results to retrieve the results of a single category. This example shows person results being retrieved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person"
},
"results": [
{
"phrase": "james robert smith",
"frequencyCount": 5,
"objectIds": [
{
"type": "article",
"id": "2569"
},
{
"type": "article",
"id": "65"
}
],
"aliases": [
{
"phrase": "james robert smith",
"frequencyCount": 3,
"objectIds": [
{
"type": "article",
"id": "2569"
},
{
"type": "article",
"id": "65"
}
]
},
{
"phrase": "james smith",
"frequencyCount": 2,
"objectIds": [
{
"type": "article",
"id": "65"
}
]
}
]
},
{
"phrase": "sarah edwards",
"frequencyCount": 2,
"objectIds": [
{
"type": "article",
"id": "3985"
},
{
"type": "article",
"id": "1877"
}
],
"aliases": [
{
"phrase": "sarah edwards",
"frequencyCount": 2,
"objectIds": [
{
"type": "article",
"id": "3985"
},
{
"type": "article",
"id": "1877"
}
]
}
]
}
],
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getSankeyDiagram",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
The nextLevel member with its own category can be sent to /analytics/{jobId}/results to retrieve the results of the specified (next level) category that were extracted from the same object(s) containing the specified (top-level) phrase. This example shows the organization results that were resolved from the same object(s) from which the "James Robert Smith" person and his aliases were resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "james robert smith",
"nextLevel": {
"category": "organization"
}
},
"results": [
{
"phrase": "washington post",
"frequencyCount": 4,
"objectIds": [
{
"type": "article",
"id": "2569"
},
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
],
"aliases": [
{
"phrase": "washington post",
"frequencyCount": 4,
"objectIds": [
{
"type": "article",
"id": "2569"
},
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
]
}
]
},
{
"name": "sas",
"frequencyCount": 3,
"objectIds": [
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
],
"aliases": [
{
"phrase": "sas",
"frequencyCount": 3,
"objectIds": [
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
]
}
]
}
],
"links": []
}
A second nextLevel can be used to retrieve the results of the specified second next level category that were extracted from the same object(s) containing both the top-level phrase and next level phrase. This example shows the significant term results that were extracted from the same object(s) from which the "James Robert Smith" person (and his aliases) and the "SAS" organization were resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "person",
"phrase": "james robert smith",
"nextLevel": {
"category": "organization",
"phrase": "sas",
"nextLevel": {
"category": "significantTerm"
}
}
},
"results": [
{
"phrase": "analytics",
"frequencyCount": 7,
"weight": 0.723518965,
"objectIds": [
{
"type": "article",
"id": "65"
},
{
"type": "article",
"id": "1935"
}
],
"aliases": []
},
{
"phrase": "university",
"frequencyCount": 3,
"weight": 0.682183481,
"objectIds": [
{
"type": "article",
"id": "1935"
}
],
"aliases": []
}
],
"links": []
}
202 Response
{
"description": "An example of a 202 accepted Error message.",
"value": {
"errorCode": "95192",
"message": "The text analytics results are not yet available for the identifier \"exampleId\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 202
}
}
{
"description": "An example of a 202 accepted Error message.",
"value": {
"errorCode": "95192",
"message": "The text analytics results are not yet available for the identifier \"exampleId\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 202
}
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyticsResults |
202 | Accepted | The text analytics results are not available yet. For example, the job is still running. | error2 |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | There is no job for the given identifier or there are no results at the specified exploration level. | error2 |
Generate text analytics Sankey diagram
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/analytics/{jobId}/sankeyDiagrams \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.analytics.sankey.diagram.request+json' \
-H 'Accept: application/vnd.sas.sand.analytics.sankey.diagram+json'
const inputBody = '{
"level": {
"category": "organization",
"phrase": "sas"
},
"fromAndTo": true,
"maxLinks": 50
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.analytics.sankey.diagram.request+json',
'Accept':'application/vnd.sas.sand.analytics.sankey.diagram+json'
};
fetch('https://example.com/svi-sand/analytics/{jobId}/sankeyDiagrams',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.analytics.sankey.diagram.request+json',
'Accept': 'application/vnd.sas.sand.analytics.sankey.diagram+json'
}
r = requests.post('https://example.com/svi-sand/analytics/{jobId}/sankeyDiagrams', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.analytics.sankey.diagram.request+json"},
"Accept": []string{"application/vnd.sas.sand.analytics.sankey.diagram+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/analytics/{jobId}/sankeyDiagrams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /analytics/{jobId}/sankeyDiagrams
Retrieves related text analytics results as a Sankey diagram. There are two types of Sankey diagram: 1) based on the pairs of values extracted from the "from" and "to" fields where nodes represent field values and links represent the objects containing the field values. 2) based on two categories of results where nodes represent the results of each category and links represent the objects containing results of both categories.
Body parameter
An example of the request for /analytics/{jobId}/sankeyDiagrams based on the "from" and "to" field values extracted from the same object(s) from which the "SAS" organization was resolved.
{
"level": {
"category": "organization",
"phrase": "sas"
},
"fromAndTo": true,
"maxLinks": 50
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | The unique identifier of the text analytics job. |
body | body | analyticsSankeyDiagramRequest | false | none |
Example responses
An example of the response from /analytics/{jobId}/sankeyDiagrams based on the "from" and "to" field values extracted from the same object(s) from which the "SAS" organization was resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "organization",
"phrase": "sas"
},
"fromAndTo": true,
"maxLinks": 50,
"sankeyNodes": [
{
"identifier": 6,
"phrase": "Miles@sas.com",
"frequencyCount": 155,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "15"
}
],
"compoundValues": []
},
{
"identifier": 4,
"phrase": "Gary@sas.com",
"frequencyCount": 538,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "2565"
}
],
"compoundValues": []
},
{
"identifier": 1,
"phrase": "Hillary@sas.com",
"frequencyCount": 355,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "490"
}
],
"compoundValues": []
},
{
"identifier": 11,
"phrase": "Joe@sas.com",
"frequencyCount": 7,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "22"
}
],
"compoundValues": []
},
{
"identifier": 2,
"phrase": "John@sas.com",
"frequencyCount": 88,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "491"
}
],
"compoundValues": []
},
{
"identifier": 3,
"phrase": "Rachel@sas.com",
"frequencyCount": 3,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "2637"
}
],
"compoundValues": []
}
],
"sankeyLinks": [
{
"fromNode": 6,
"toNode": 4,
"frequencyCount": 3,
"objectIds": [
{
"type": "email",
"id": "3000"
},
{
"type": "email",
"id": "65"
},
{
"type": "email",
"id": "73"
}
],
"compoundValues": []
},
{
"fromNode": 1,
"toNode": 11,
"frequencyCount": 2,
"objectIds": [
{
"type": "email",
"id": "6"
},
{
"type": "email",
"id": "276"
}
],
"compoundValues": []
},
{
"fromNode": 1,
"toNode": 2,
"frequencyCount": 1,
"objectIds": [
{
"type": "email",
"id": "220"
}
],
"compoundValues": []
},
{
"fromNode": 3,
"toNode": 4,
"frequencyCount": 1,
"objectIds": [
{
"type": "email",
"id": "2969"
}
],
"compoundValues": []
}
],
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
An example of the response from /analytics/{jobId}/sankeyDiagrams based on "person" and "location" results that were extracted from the same object(s) from which the "SAS" organization was resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "organization",
"phrase": "sas"
},
"fromCategory": "person",
"toCategory": "location",
"fromAndTo": false,
"maxLinks": 30,
"sankeyNodes": [
{
"identifier": 13,
"category": "person",
"phrase": "david jones",
"frequencyCount": 50,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "14"
}
],
"compoundValues": [],
"aliases": [
{
"phrase": "david jones",
"frequencyCount": 50,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "14"
}
],
"compoundValues": []
}
]
},
{
"identifier": 2,
"category": "location",
"phrase": "united states",
"frequencyCount": 43,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "1850"
}
],
"compoundValues": [],
"aliases": [
{
"phrase": "united states",
"frequencyCount": 43,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "1850"
}
],
"compoundValues": []
}
]
},
{
"identifier": 5,
"category": "location",
"phrase": "england",
"frequencyCount": 22,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "10"
}
],
"compoundValues": [],
"aliases": [
{
"phrase": "england",
"frequencyCount": 22,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "10"
}
],
"compoundValues": []
}
]
},
{
"identifier": 1,
"category": "person",
"phrase": "james robert smith",
"frequencyCount": 56,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "2569"
}
],
"compoundValues": [],
"aliases": [
{
"phrase": "james robert smith",
"frequencyCount": 24,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "2569"
}
],
"compoundValues": []
},
{
"phrase": "james smith",
"frequencyCount": 32,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "1335"
}
],
"compoundValues": []
}
]
}
],
"sankeyLinks": [
{
"fromNode": 13,
"toNode": 2,
"frequencyCount": 10,
"objectIds": [
{
"type": "email",
"id": "52"
}
],
"compoundValues": []
},
{
"fromNode": 13,
"toNode": 5,
"frequencyCount": 3,
"objectIds": [
{
"type": "email",
"id": "65"
}
],
"compoundValues": []
},
{
"fromNode": 1,
"toNode": 2,
"frequencyCount": 2,
"objectIds": [
{
"type": "email",
"id": "65"
}
],
"compoundValues": []
},
{
"fromNode": 1,
"toNode": 5,
"frequencyCount": 2,
"objectIds": [
{
"type": "email",
"id": "65"
}
],
"compoundValues": []
}
],
"links": []
}
An example of the response from /analytics/{jobId}/sankeyDiagrams based on the "from" and "to" field values extracted from the same object(s) from which the "SAS" organization was resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "organization",
"phrase": "sas"
},
"fromAndTo": true,
"maxLinks": 50,
"sankeyNodes": [
{
"identifier": 6,
"phrase": "Miles@sas.com",
"frequencyCount": 155,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "15"
}
],
"compoundValues": []
},
{
"identifier": 4,
"phrase": "Gary@sas.com",
"frequencyCount": 538,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "2565"
}
],
"compoundValues": []
},
{
"identifier": 1,
"phrase": "Hillary@sas.com",
"frequencyCount": 355,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "490"
}
],
"compoundValues": []
},
{
"identifier": 11,
"phrase": "Joe@sas.com",
"frequencyCount": 7,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "22"
}
],
"compoundValues": []
},
{
"identifier": 2,
"phrase": "John@sas.com",
"frequencyCount": 88,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "491"
}
],
"compoundValues": []
},
{
"identifier": 3,
"phrase": "Rachel@sas.com",
"frequencyCount": 3,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "2637"
}
],
"compoundValues": []
}
],
"sankeyLinks": [
{
"fromNode": 6,
"toNode": 4,
"frequencyCount": 3,
"objectIds": [
{
"type": "email",
"id": "3000"
},
{
"type": "email",
"id": "65"
},
{
"type": "email",
"id": "73"
}
],
"compoundValues": []
},
{
"fromNode": 1,
"toNode": 11,
"frequencyCount": 2,
"objectIds": [
{
"type": "email",
"id": "6"
},
{
"type": "email",
"id": "276"
}
],
"compoundValues": []
},
{
"fromNode": 1,
"toNode": 2,
"frequencyCount": 1,
"objectIds": [
{
"type": "email",
"id": "220"
}
],
"compoundValues": []
},
{
"fromNode": 3,
"toNode": 4,
"frequencyCount": 1,
"objectIds": [
{
"type": "email",
"id": "2969"
}
],
"compoundValues": []
}
],
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/sankeyDiagrams",
"type": "application/vnd.sas.sand.analytics.sankey.diagram.request",
"responseType": "application/vnd.sas.sand.analytics.sankey.diagram"
},
{
"method": "GET",
"rel": "getJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"type": "application/vnd.sas.sand.analytics.job"
},
{
"method": "GET",
"rel": "getState",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state",
"type": "text/plain"
},
{
"method": "PUT",
"rel": "cancelJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/state?value=cancelled",
"responseType": "text/plain"
},
{
"method": "DELETE",
"rel": "deleteJob",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65"
},
{
"method": "GET",
"rel": "getIdentities",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/identities",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.identities"
},
{
"method": "POST",
"rel": "getCategories",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/categories",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.categories"
},
{
"method": "POST",
"rel": "getResults",
"href": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"uri": "/svi-sand/analytics/4fa45829-9b75-49c8-99f7-ef15aa838e65/results",
"type": "application/vnd.sas.sand.analytics.explore",
"responseType": "application/vnd.sas.sand.analytics.results"
},
{
"method": "GET",
"rel": "getLocales",
"href": "/svi-sand/analytics/locales",
"uri": "/svi-sand/analytics/locales",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analytics.locale"
},
{
"method": "POST",
"rel": "startTextAnalytics",
"href": "/svi-sand/analytics",
"uri": "/svi-sand/analytics",
"type": "application/vnd.sas.sand.analytics.request",
"responseType": "application/vnd.sas.sand.analytics.job"
}
]
}
An example of the response from /analytics/{jobId}/sankeyDiagrams based on "person" and "location" results that were extracted from the same object(s) from which the "SAS" organization was resolved.
{
"identifier": "4fa45829-9b75-49c8-99f7-ef15aa838e65",
"level": {
"category": "organization",
"phrase": "sas"
},
"fromCategory": "person",
"toCategory": "location",
"fromAndTo": false,
"maxLinks": 30,
"sankeyNodes": [
{
"identifier": 13,
"category": "person",
"phrase": "david jones",
"frequencyCount": 50,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "14"
}
],
"compoundValues": [],
"aliases": [
{
"phrase": "david jones",
"frequencyCount": 50,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "14"
}
],
"compoundValues": []
}
]
},
{
"identifier": 2,
"category": "location",
"phrase": "united states",
"frequencyCount": 43,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "1850"
}
],
"compoundValues": [],
"aliases": [
{
"phrase": "united states",
"frequencyCount": 43,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "1850"
}
],
"compoundValues": []
}
]
},
{
"identifier": 5,
"category": "location",
"phrase": "england",
"frequencyCount": 22,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "10"
}
],
"compoundValues": [],
"aliases": [
{
"phrase": "england",
"frequencyCount": 22,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "10"
}
],
"compoundValues": []
}
]
},
{
"identifier": 1,
"category": "person",
"phrase": "james robert smith",
"frequencyCount": 56,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "2569"
}
],
"compoundValues": [],
"aliases": [
{
"phrase": "james robert smith",
"frequencyCount": 24,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "2569"
}
],
"compoundValues": []
},
{
"phrase": "james smith",
"frequencyCount": 32,
"weight": 0,
"objectIds": [
{
"type": "email",
"id": "1335"
}
],
"compoundValues": []
}
]
}
],
"sankeyLinks": [
{
"fromNode": 13,
"toNode": 2,
"frequencyCount": 10,
"objectIds": [
{
"type": "email",
"id": "52"
}
],
"compoundValues": []
},
{
"fromNode": 13,
"toNode": 5,
"frequencyCount": 3,
"objectIds": [
{
"type": "email",
"id": "65"
}
],
"compoundValues": []
},
{
"fromNode": 1,
"toNode": 2,
"frequencyCount": 2,
"objectIds": [
{
"type": "email",
"id": "65"
}
],
"compoundValues": []
},
{
"fromNode": 1,
"toNode": 5,
"frequencyCount": 2,
"objectIds": [
{
"type": "email",
"id": "65"
}
],
"compoundValues": []
}
],
"links": []
}
202 Response
{
"description": "An example of a 202 accepted Error message.",
"value": {
"errorCode": "95192",
"message": "The text analytics results are not yet available for the identifier \"exampleId\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 202
}
}
{
"description": "An example of a 202 accepted Error message.",
"value": {
"errorCode": "95192",
"message": "The text analytics results are not yet available for the identifier \"exampleId\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 202
}
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyticsSankeyDiagram |
202 | Accepted | The text analytics results are not available yet. For example, the job is still running. | error2 |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | There is no job for the given identifier or there are no results at the specified exploration level. | error2 |
Administration
Administration-related endpoints.
Performs an administration-related operation
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/operations \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.operation.request+json' \
-H 'Accept: application/vnd.sas.sand.operation.response+json'
const inputBody = '{
"operation": "refreshConfiguration",
"parameters": {
"type": "person",
"statusOnly": true
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.operation.request+json',
'Accept':'application/vnd.sas.sand.operation.response+json'
};
fetch('https://example.com/svi-sand/admin/operations',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.operation.request+json',
'Accept': 'application/vnd.sas.sand.operation.response+json'
}
r = requests.post('https://example.com/svi-sand/admin/operations', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.operation.request+json"},
"Accept": []string{"application/vnd.sas.sand.operation.response+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/operations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/operations
The currently supported operations are: 1. refreshConfiguration: refreshes or just returns the status of the configuration in the cache and underlying search engine with respect to the stored configuration. 2. makeIndexSearchable: makes any newly populated indices searchable and deletes any older indices. See example Use Case Five.
Body parameter
An example of the request for /admin/operations that retrieves the status of the cached configuration for the "person" entity.
{
"operation": "refreshConfiguration",
"parameters": {
"type": "person",
"statusOnly": true
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | operationRequest | false | none |
Example responses
An example of the response from /admin/operations that shows the status of the cached configuration for the "person" entity.
{
"operation": "refreshConfiguration",
"parameters": {
"type": "person",
"statusOnly": true
},
"results": {
"person": {
"refreshRequired": true,
"reindexRequired": false
}
}
}
An example of the response from /admin/operations after the newest "person" index was made searchable and all older "person" indices were deleted.
{
"operation": "makeIndexSearchable",
"parameters": {
"type": "person"
},
"results": {}
}
An example of the response from /admin/operations that shows the status of the cached configuration for the "person" entity.
{
"operation": "refreshConfiguration",
"parameters": {
"type": "person",
"statusOnly": true
},
"results": {
"person": {
"refreshRequired": true,
"reindexRequired": false
}
}
}
An example of the response from /admin/operations after the newest "person" index was made searchable and all older "person" indices were deleted.
{
"operation": "makeIndexSearchable",
"parameters": {
"type": "person"
},
"results": {}
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | operationResponse |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | A type mentioned in the request body does not exist. | error2 |
Gets multiple application settings
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/settings \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/admin/settings',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/svi-sand/admin/settings', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/settings", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/settings
Gets the values of multiple application settings.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first setting to include in the current page. |
limit | query | integer | false | The maximum number of settings to include in each page. |
filter | query | string | false | A filter on the setting names. The supported operators are in and startsWith. |
Example responses
An example of the request and response for /admin/settings.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings?start=0&limit=10",
"uri": "/svi-sand/admin/settings?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "POST",
"rel": "setSettings",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"responseType": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting",
"responseItemType": "application/vnd.sas.sand.setting"
}
],
"name": "settings",
"accept": "application/vnd.sas.sand.setting",
"start": 0,
"count": 6,
"items": [
{
"name": "phoneticSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
}
],
"limit": 10,
"version": 2
}
An example of an application setting.
{
"name": "phoneticSearchEnabled",
"value": true
}
An example of the request and response for /admin/settings.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings?start=0&limit=10",
"uri": "/svi-sand/admin/settings?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "POST",
"rel": "setSettings",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"responseType": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting",
"responseItemType": "application/vnd.sas.sand.setting"
}
],
"name": "settings",
"accept": "application/vnd.sas.sand.setting",
"start": 0,
"count": 6,
"items": [
{
"name": "phoneticSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
}
],
"limit": 10,
"version": 2
}
An example of an application setting.
{
"name": "phoneticSearchEnabled",
"value": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | settingCollection |
Gets the headers for the get settings operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/settings
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/settings',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/settings')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/settings", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/settings
Returns the headers for the get settings operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first setting to include in the current page. |
limit | query | integer | false | The maximum number of settings to include in each page. |
filter | query | string | false | A filter on the setting names. The supported operators are in and startsWith. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Updates multiple application settings
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/settings \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.collection+json' \
-H 'Accept: application/vnd.sas.collection+json'
const inputBody = '{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings?start=0&limit=10",
"uri": "/svi-sand/admin/settings?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "POST",
"rel": "setSettings",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"responseType": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting",
"responseItemType": "application/vnd.sas.sand.setting"
}
],
"name": "settings",
"accept": "application/vnd.sas.sand.setting",
"start": 0,
"count": 6,
"items": [
{
"name": "phoneticSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
}
],
"limit": 10,
"version": 2
}';
const headers = {
'Content-Type':'application/vnd.sas.collection+json',
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/admin/settings',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.collection+json',
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.post('https://example.com/svi-sand/admin/settings', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.collection+json"},
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/settings", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/settings
Updates the values of multiple application settings.
Body parameter
An example of the request and response for /admin/settings.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings?start=0&limit=10",
"uri": "/svi-sand/admin/settings?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "POST",
"rel": "setSettings",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"responseType": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting",
"responseItemType": "application/vnd.sas.sand.setting"
}
],
"name": "settings",
"accept": "application/vnd.sas.sand.setting",
"start": 0,
"count": 6,
"items": [
{
"name": "phoneticSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
}
],
"limit": 10,
"version": 2
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | settingCollection | false | none |
Example responses
An example of the request and response for /admin/settings.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings?start=0&limit=10",
"uri": "/svi-sand/admin/settings?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "POST",
"rel": "setSettings",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"responseType": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting",
"responseItemType": "application/vnd.sas.sand.setting"
}
],
"name": "settings",
"accept": "application/vnd.sas.sand.setting",
"start": 0,
"count": 6,
"items": [
{
"name": "phoneticSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
}
],
"limit": 10,
"version": 2
}
An example of an application setting.
{
"name": "phoneticSearchEnabled",
"value": true
}
An example of the request and response for /admin/settings.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings?start=0&limit=10",
"uri": "/svi-sand/admin/settings?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
},
{
"method": "POST",
"rel": "setSettings",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"responseType": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting",
"responseItemType": "application/vnd.sas.sand.setting"
}
],
"name": "settings",
"accept": "application/vnd.sas.sand.setting",
"start": 0,
"count": 6,
"items": [
{
"name": "phoneticSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "phoneticLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/phoneticLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymDefaultSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymDefaultSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
},
{
"name": "synonymLabelSearchEnabled",
"value": false,
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"uri": "/svi-sand/admin/settings/synonymLabelSearchEnabled",
"type": "application/vnd.sas.sand.setting",
"responseType": "application/vnd.sas.sand.setting"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/settings",
"uri": "/svi-sand/admin/settings",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.setting"
}
]
}
],
"limit": 10,
"version": 2
}
An example of an application setting.
{
"name": "phoneticSearchEnabled",
"value": true
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | settingCollection |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | One of the settings does not exist. | error2 |
Gets an application setting
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/settings/{setting} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.setting+json'
const headers = {
'Accept':'application/vnd.sas.sand.setting+json'
};
fetch('https://example.com/svi-sand/admin/settings/{setting}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.setting+json'
}
r = requests.get('https://example.com/svi-sand/admin/settings/{setting}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.setting+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/settings/{setting}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/settings/{setting}
Gets the value of an application setting.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
setting | path | string | true | The name of the application setting. |
Example responses
An example of an application setting.
{
"name": "phoneticSearchEnabled",
"value": true
}
{
"name": "phoneticSearchEnabled",
"value": true
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | setting |
404 | Not Found | The setting does not exist. | error2 |
Gets the headers for the get setting operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/settings/{setting}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/settings/{setting}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/settings/{setting}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/settings/{setting}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/settings/{setting}
Returns the headers for the get setting operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
setting | path | string | true | The name of the application setting. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The setting does not exist. | None |
Updates an application setting
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-sand/admin/settings/{setting} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.setting+json' \
-H 'Accept: application/vnd.sas.sand.setting+json'
const inputBody = '{
"name": "phoneticSearchEnabled",
"value": true
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.setting+json',
'Accept':'application/vnd.sas.sand.setting+json'
};
fetch('https://example.com/svi-sand/admin/settings/{setting}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.setting+json',
'Accept': 'application/vnd.sas.sand.setting+json'
}
r = requests.put('https://example.com/svi-sand/admin/settings/{setting}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.setting+json"},
"Accept": []string{"application/vnd.sas.sand.setting+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-sand/admin/settings/{setting}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /admin/settings/{setting}
Updates the value of an application setting.
Body parameter
An example of an application setting.
{
"name": "phoneticSearchEnabled",
"value": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
setting | path | string | true | The name of the application setting. |
body | body | setting | false | none |
Example responses
An example of an application setting.
{
"name": "phoneticSearchEnabled",
"value": true
}
{
"name": "phoneticSearchEnabled",
"value": true
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | setting |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | The setting does not exist. | error2 |
Configuration
Configuration-related endpoints.
Export configuration
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/config \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.config+json'
const headers = {
'Accept':'application/vnd.sas.sand.config+json'
};
fetch('https://example.com/svi-sand/admin/config',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.config+json'
}
r = requests.get('https://example.com/svi-sand/admin/config', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.config+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/config", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/config
Returns the configuration for all of the types. This is intended to be used for moving the configuration between systems and as such there are no version numbers in the response.
Example responses
An example of the request and response for /admin/config.
{
"types": {
"address": {
"name": "address",
"displayName": "Address",
"category": "resolvedEntity",
"options": {
"dynamic": "true"
},
"config": {}
},
"business": {
"name": "business",
"displayName": "Business",
"category": "resolvedEntity",
"options": {
"dynamic": "true"
},
"config": {}
},
"business_customers": {
"name": "business_customers",
"displayName": "Business Customer",
"category": "entity",
"fields": {
"business_details_address": {
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": []
}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"geojson": {
"displayName": "GeoJSON",
"type": "geoShape"
}
}
},
"business_details_email": {
"type": "object",
"innerFields": {
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": []
}
}
}
},
"business_details_telephon": {
"type": "object",
"innerFields": {
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
}
}
},
"bus_cust_type": {
"displayName": "Bus Cust Type",
"type": "text",
"options": {
"features": []
}
},
"business_incorporation_date": {
"displayName": "Business Incorporation Date",
"type": "date"
},
"business_primary_industry": {
"displayName": "Business Primary Industry",
"type": "double"
},
"business_registered_name": {
"displayName": "Business Registered Name",
"type": "text"
},
"business_registration_number": {
"displayName": "Business Registration Number",
"type": "double"
},
"cust_start_date": {
"displayName": "Cust Start Date",
"type": "date"
},
"customer_end_date": {
"displayName": "Customer End Date",
"type": "date"
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double"
},
"customer_name": {
"displayName": "Customer Name",
"type": "text"
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "double"
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": []
}
}
},
"config": {
"summary": {
"fields": [
"business_registration_number",
"bus_cust_type",
"customer_id_number",
"customer_type"
],
"highlighting": {
"bus_cust_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"business_registered_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"business_registration_number",
"bus_cust_type",
"business_incorporation_date",
"customer_id_number",
"customer_type"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "business_incorporation_date",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"fields": {
"category": "business_incorporated",
"label": "Business Incorporated",
"description": "<br>Registration Number: {business_registration_number}",
"pointTimestamp": "{business_incorporation_date}"
}
},
{
"root": "business_details_address",
"fields": {
"category": "business_address",
"label": "{/business_registered_name}",
"description": "<br>Registration Number: {/business_registration_number}<br>Address: {address}",
"geoJson": "geojson"
}
},
{
"fields": {
"category": "customer_start_date",
"label": "Customer Start Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{cust_start_date}"
}
},
{
"fields": {
"category": "customer_end_date",
"label": "Customer End Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{customer_end_date}"
}
}
],
"label": {
"template": "Customer: {0}",
"values": [
"customer_name"
]
},
"description": {
"template": "<br>Customer Id: {0}<br>Business Registration Number: {1}<br>Type: {2}<br>Risk Rating: {3}",
"values": [
"customer_id_number",
"business_registration_number",
"bus_cust_type",
"customer_risk_rating"
]
}
}
},
"entityRelationship": {
"name": "entityRelationship",
"displayName": "Entity Relationship",
"category": "entityRelationship"
},
"email": {
"name": "email",
"displayName": "Email",
"category": "resolvedEntity"
},
"resolvedEntityRelationship": {
"name": "resolvedEntityRelationship",
"displayName": "Resolved Entity Link",
"category": "resolvedEntityRelationship"
},
"individual": {
"name": "individual",
"displayName": "Individual",
"category": "resolvedEntity",
"config": {}
},
"individual_customers": {
"name": "individual_customers",
"displayName": "Individual Customers",
"category": "entity",
"fields": {
"individual_details_addres": {
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": []
}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"geojson": {
"displayName": "GeoJSON",
"type": "geoShape"
}
}
},
"individual_details_email": {
"type": "object",
"innerFields": {
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": []
}
}
}
},
"individual_details_teleph": {
"type": "object",
"innerFields": {
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
}
}
},
"bus_cust_type": {
"displayName": "Bus Cust Type",
"type": "text",
"options": {
"features": []
}
},
"cust_start_date": {
"displayName": "Cust Start Date",
"type": "date"
},
"customer_end_date": {
"displayName": "Customer End Date",
"type": "date"
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double"
},
"customer_name": {
"displayName": "Customer Name",
"type": "text"
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "double"
},
"customer_status": {
"displayName": "Customer Status",
"type": "text"
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": []
}
},
"date_of_birth": {
"displayName": "Date Of Birth",
"type": "date"
},
"full_name": {
"displayName": "Full Name",
"type": "text"
},
"personal_national_id_number": {
"displayName": "Personal National ID Number",
"type": "text",
"options": {
"features": []
}
}
},
"config": {
"summary": {
"fields": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
],
"highlighting": {
"customer_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"full_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"customer_name",
"customer_type",
"personal_national_id_number",
"customer_risk_rating",
"customer_status"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "date_of_birth",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"fields": {
"category": "customer_dob",
"label": "Customer Date of Birth",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{date_of_birth}"
}
},
{
"root": "individual_details_addres",
"fields": {
"category": "customer_address",
"label": "Customer: {/customer_name}",
"description": "<br>Name: {/customer_name}<br>Type: {/customer_type}",
"geoJson": "geojson"
}
},
{
"fields": {
"category": "customer_start_date",
"label": "Customer Start Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{cust_start_date}"
}
},
{
"fields": {
"category": "customer_end_date",
"label": "Customer End Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{customer_end_date}"
}
}
],
"label": {
"template": "Customer: {0}",
"values": [
"customer_name"
]
},
"description": {
"template": "National Id: {0} - Full Name: {1} - Type: {1} - Status: {2} - Risk Rating: {3}",
"values": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
]
}
}
},
"telephone": {
"name": "telephone",
"displayName": "Telephone",
"category": "resolvedEntity"
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "POST",
"rel": "import",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config"
},
{
"method": "GET",
"rel": "getTypes",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
An example of the request and response for /admin/config.
{
"types": {
"address": {
"name": "address",
"displayName": "Address",
"category": "resolvedEntity",
"options": {
"dynamic": "true"
},
"config": {}
},
"business": {
"name": "business",
"displayName": "Business",
"category": "resolvedEntity",
"options": {
"dynamic": "true"
},
"config": {}
},
"business_customers": {
"name": "business_customers",
"displayName": "Business Customer",
"category": "entity",
"fields": {
"business_details_address": {
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": []
}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"geojson": {
"displayName": "GeoJSON",
"type": "geoShape"
}
}
},
"business_details_email": {
"type": "object",
"innerFields": {
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": []
}
}
}
},
"business_details_telephon": {
"type": "object",
"innerFields": {
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
}
}
},
"bus_cust_type": {
"displayName": "Bus Cust Type",
"type": "text",
"options": {
"features": []
}
},
"business_incorporation_date": {
"displayName": "Business Incorporation Date",
"type": "date"
},
"business_primary_industry": {
"displayName": "Business Primary Industry",
"type": "double"
},
"business_registered_name": {
"displayName": "Business Registered Name",
"type": "text"
},
"business_registration_number": {
"displayName": "Business Registration Number",
"type": "double"
},
"cust_start_date": {
"displayName": "Cust Start Date",
"type": "date"
},
"customer_end_date": {
"displayName": "Customer End Date",
"type": "date"
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double"
},
"customer_name": {
"displayName": "Customer Name",
"type": "text"
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "double"
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": []
}
}
},
"config": {
"summary": {
"fields": [
"business_registration_number",
"bus_cust_type",
"customer_id_number",
"customer_type"
],
"highlighting": {
"bus_cust_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"business_registered_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"business_registration_number",
"bus_cust_type",
"business_incorporation_date",
"customer_id_number",
"customer_type"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "business_incorporation_date",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"fields": {
"category": "business_incorporated",
"label": "Business Incorporated",
"description": "<br>Registration Number: {business_registration_number}",
"pointTimestamp": "{business_incorporation_date}"
}
},
{
"root": "business_details_address",
"fields": {
"category": "business_address",
"label": "{/business_registered_name}",
"description": "<br>Registration Number: {/business_registration_number}<br>Address: {address}",
"geoJson": "geojson"
}
},
{
"fields": {
"category": "customer_start_date",
"label": "Customer Start Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{cust_start_date}"
}
},
{
"fields": {
"category": "customer_end_date",
"label": "Customer End Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{customer_end_date}"
}
}
],
"label": {
"template": "Customer: {0}",
"values": [
"customer_name"
]
},
"description": {
"template": "<br>Customer Id: {0}<br>Business Registration Number: {1}<br>Type: {2}<br>Risk Rating: {3}",
"values": [
"customer_id_number",
"business_registration_number",
"bus_cust_type",
"customer_risk_rating"
]
}
}
},
"entityRelationship": {
"name": "entityRelationship",
"displayName": "Entity Relationship",
"category": "entityRelationship"
},
"email": {
"name": "email",
"displayName": "Email",
"category": "resolvedEntity"
},
"resolvedEntityRelationship": {
"name": "resolvedEntityRelationship",
"displayName": "Resolved Entity Link",
"category": "resolvedEntityRelationship"
},
"individual": {
"name": "individual",
"displayName": "Individual",
"category": "resolvedEntity",
"config": {}
},
"individual_customers": {
"name": "individual_customers",
"displayName": "Individual Customers",
"category": "entity",
"fields": {
"individual_details_addres": {
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": []
}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"geojson": {
"displayName": "GeoJSON",
"type": "geoShape"
}
}
},
"individual_details_email": {
"type": "object",
"innerFields": {
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": []
}
}
}
},
"individual_details_teleph": {
"type": "object",
"innerFields": {
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
}
}
},
"bus_cust_type": {
"displayName": "Bus Cust Type",
"type": "text",
"options": {
"features": []
}
},
"cust_start_date": {
"displayName": "Cust Start Date",
"type": "date"
},
"customer_end_date": {
"displayName": "Customer End Date",
"type": "date"
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double"
},
"customer_name": {
"displayName": "Customer Name",
"type": "text"
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "double"
},
"customer_status": {
"displayName": "Customer Status",
"type": "text"
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": []
}
},
"date_of_birth": {
"displayName": "Date Of Birth",
"type": "date"
},
"full_name": {
"displayName": "Full Name",
"type": "text"
},
"personal_national_id_number": {
"displayName": "Personal National ID Number",
"type": "text",
"options": {
"features": []
}
}
},
"config": {
"summary": {
"fields": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
],
"highlighting": {
"customer_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"full_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"customer_name",
"customer_type",
"personal_national_id_number",
"customer_risk_rating",
"customer_status"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "date_of_birth",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"fields": {
"category": "customer_dob",
"label": "Customer Date of Birth",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{date_of_birth}"
}
},
{
"root": "individual_details_addres",
"fields": {
"category": "customer_address",
"label": "Customer: {/customer_name}",
"description": "<br>Name: {/customer_name}<br>Type: {/customer_type}",
"geoJson": "geojson"
}
},
{
"fields": {
"category": "customer_start_date",
"label": "Customer Start Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{cust_start_date}"
}
},
{
"fields": {
"category": "customer_end_date",
"label": "Customer End Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{customer_end_date}"
}
}
],
"label": {
"template": "Customer: {0}",
"values": [
"customer_name"
]
},
"description": {
"template": "National Id: {0} - Full Name: {1} - Type: {1} - Status: {2} - Risk Rating: {3}",
"values": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
]
}
}
},
"telephone": {
"name": "telephone",
"displayName": "Telephone",
"category": "resolvedEntity"
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "POST",
"rel": "import",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config"
},
{
"method": "GET",
"rel": "getTypes",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | configuration |
Get the headers for the export configuration operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/config
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/config')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/config", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/config
Returns the headers for the export configuration operation.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Import configuration
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/config \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.config+json' \
-H 'Accept: application/vnd.sas.error+json'
const inputBody = '{
"types": {
"address": {
"name": "address",
"displayName": "Address",
"category": "resolvedEntity",
"options": {
"dynamic": "true"
},
"config": {}
},
"business": {
"name": "business",
"displayName": "Business",
"category": "resolvedEntity",
"options": {
"dynamic": "true"
},
"config": {}
},
"business_customers": {
"name": "business_customers",
"displayName": "Business Customer",
"category": "entity",
"fields": {
"business_details_address": {
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": []
}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"geojson": {
"displayName": "GeoJSON",
"type": "geoShape"
}
}
},
"business_details_email": {
"type": "object",
"innerFields": {
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": []
}
}
}
},
"business_details_telephon": {
"type": "object",
"innerFields": {
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
}
}
},
"bus_cust_type": {
"displayName": "Bus Cust Type",
"type": "text",
"options": {
"features": []
}
},
"business_incorporation_date": {
"displayName": "Business Incorporation Date",
"type": "date"
},
"business_primary_industry": {
"displayName": "Business Primary Industry",
"type": "double"
},
"business_registered_name": {
"displayName": "Business Registered Name",
"type": "text"
},
"business_registration_number": {
"displayName": "Business Registration Number",
"type": "double"
},
"cust_start_date": {
"displayName": "Cust Start Date",
"type": "date"
},
"customer_end_date": {
"displayName": "Customer End Date",
"type": "date"
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double"
},
"customer_name": {
"displayName": "Customer Name",
"type": "text"
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "double"
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": []
}
}
},
"config": {
"summary": {
"fields": [
"business_registration_number",
"bus_cust_type",
"customer_id_number",
"customer_type"
],
"highlighting": {
"bus_cust_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"business_registered_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"business_registration_number",
"bus_cust_type",
"business_incorporation_date",
"customer_id_number",
"customer_type"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "business_incorporation_date",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"fields": {
"category": "business_incorporated",
"label": "Business Incorporated",
"description": "<br>Registration Number: {business_registration_number}",
"pointTimestamp": "{business_incorporation_date}"
}
},
{
"root": "business_details_address",
"fields": {
"category": "business_address",
"label": "{/business_registered_name}",
"description": "<br>Registration Number: {/business_registration_number}<br>Address: {address}",
"geoJson": "geojson"
}
},
{
"fields": {
"category": "customer_start_date",
"label": "Customer Start Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{cust_start_date}"
}
},
{
"fields": {
"category": "customer_end_date",
"label": "Customer End Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{customer_end_date}"
}
}
],
"label": {
"template": "Customer: {0}",
"values": [
"customer_name"
]
},
"description": {
"template": "<br>Customer Id: {0}<br>Business Registration Number: {1}<br>Type: {2}<br>Risk Rating: {3}",
"values": [
"customer_id_number",
"business_registration_number",
"bus_cust_type",
"customer_risk_rating"
]
}
}
},
"entityRelationship": {
"name": "entityRelationship",
"displayName": "Entity Relationship",
"category": "entityRelationship"
},
"email": {
"name": "email",
"displayName": "Email",
"category": "resolvedEntity"
},
"resolvedEntityRelationship": {
"name": "resolvedEntityRelationship",
"displayName": "Resolved Entity Link",
"category": "resolvedEntityRelationship"
},
"individual": {
"name": "individual",
"displayName": "Individual",
"category": "resolvedEntity",
"config": {}
},
"individual_customers": {
"name": "individual_customers",
"displayName": "Individual Customers",
"category": "entity",
"fields": {
"individual_details_addres": {
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": []
}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"geojson": {
"displayName": "GeoJSON",
"type": "geoShape"
}
}
},
"individual_details_email": {
"type": "object",
"innerFields": {
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": []
}
}
}
},
"individual_details_teleph": {
"type": "object",
"innerFields": {
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
}
}
},
"bus_cust_type": {
"displayName": "Bus Cust Type",
"type": "text",
"options": {
"features": []
}
},
"cust_start_date": {
"displayName": "Cust Start Date",
"type": "date"
},
"customer_end_date": {
"displayName": "Customer End Date",
"type": "date"
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double"
},
"customer_name": {
"displayName": "Customer Name",
"type": "text"
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "double"
},
"customer_status": {
"displayName": "Customer Status",
"type": "text"
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": []
}
},
"date_of_birth": {
"displayName": "Date Of Birth",
"type": "date"
},
"full_name": {
"displayName": "Full Name",
"type": "text"
},
"personal_national_id_number": {
"displayName": "Personal National ID Number",
"type": "text",
"options": {
"features": []
}
}
},
"config": {
"summary": {
"fields": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
],
"highlighting": {
"customer_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"full_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"customer_name",
"customer_type",
"personal_national_id_number",
"customer_risk_rating",
"customer_status"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "date_of_birth",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"fields": {
"category": "customer_dob",
"label": "Customer Date of Birth",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{date_of_birth}"
}
},
{
"root": "individual_details_addres",
"fields": {
"category": "customer_address",
"label": "Customer: {/customer_name}",
"description": "<br>Name: {/customer_name}<br>Type: {/customer_type}",
"geoJson": "geojson"
}
},
{
"fields": {
"category": "customer_start_date",
"label": "Customer Start Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{cust_start_date}"
}
},
{
"fields": {
"category": "customer_end_date",
"label": "Customer End Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{customer_end_date}"
}
}
],
"label": {
"template": "Customer: {0}",
"values": [
"customer_name"
]
},
"description": {
"template": "National Id: {0} - Full Name: {1} - Type: {1} - Status: {2} - Risk Rating: {3}",
"values": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
]
}
}
},
"telephone": {
"name": "telephone",
"displayName": "Telephone",
"category": "resolvedEntity"
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "POST",
"rel": "import",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config"
},
{
"method": "GET",
"rel": "getTypes",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.config+json',
'Accept':'application/vnd.sas.error+json'
};
fetch('https://example.com/svi-sand/admin/config',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.config+json',
'Accept': 'application/vnd.sas.error+json'
}
r = requests.post('https://example.com/svi-sand/admin/config', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.config+json"},
"Accept": []string{"application/vnd.sas.error+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/config", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/config
Imports the configuration for multiple types. This is intended to be used for moving the configuration between systems and as such there are no version numbers in the request and any existing configuration will be overwritten. If the new configuration contains breaking changes, such as the field type or events configuration has changed, the changes are saved but also require the data to be re-indexed to take effect. A localized message is included in the response if this is the case. The /admin/indices resource can be used to re-index the data.
Body parameter
An example of the request and response for /admin/config.
{
"types": {
"address": {
"name": "address",
"displayName": "Address",
"category": "resolvedEntity",
"options": {
"dynamic": "true"
},
"config": {}
},
"business": {
"name": "business",
"displayName": "Business",
"category": "resolvedEntity",
"options": {
"dynamic": "true"
},
"config": {}
},
"business_customers": {
"name": "business_customers",
"displayName": "Business Customer",
"category": "entity",
"fields": {
"business_details_address": {
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": []
}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"geojson": {
"displayName": "GeoJSON",
"type": "geoShape"
}
}
},
"business_details_email": {
"type": "object",
"innerFields": {
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": []
}
}
}
},
"business_details_telephon": {
"type": "object",
"innerFields": {
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
}
}
},
"bus_cust_type": {
"displayName": "Bus Cust Type",
"type": "text",
"options": {
"features": []
}
},
"business_incorporation_date": {
"displayName": "Business Incorporation Date",
"type": "date"
},
"business_primary_industry": {
"displayName": "Business Primary Industry",
"type": "double"
},
"business_registered_name": {
"displayName": "Business Registered Name",
"type": "text"
},
"business_registration_number": {
"displayName": "Business Registration Number",
"type": "double"
},
"cust_start_date": {
"displayName": "Cust Start Date",
"type": "date"
},
"customer_end_date": {
"displayName": "Customer End Date",
"type": "date"
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double"
},
"customer_name": {
"displayName": "Customer Name",
"type": "text"
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "double"
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": []
}
}
},
"config": {
"summary": {
"fields": [
"business_registration_number",
"bus_cust_type",
"customer_id_number",
"customer_type"
],
"highlighting": {
"bus_cust_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"business_registered_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"business_registration_number",
"bus_cust_type",
"business_incorporation_date",
"customer_id_number",
"customer_type"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "business_incorporation_date",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"fields": {
"category": "business_incorporated",
"label": "Business Incorporated",
"description": "<br>Registration Number: {business_registration_number}",
"pointTimestamp": "{business_incorporation_date}"
}
},
{
"root": "business_details_address",
"fields": {
"category": "business_address",
"label": "{/business_registered_name}",
"description": "<br>Registration Number: {/business_registration_number}<br>Address: {address}",
"geoJson": "geojson"
}
},
{
"fields": {
"category": "customer_start_date",
"label": "Customer Start Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{cust_start_date}"
}
},
{
"fields": {
"category": "customer_end_date",
"label": "Customer End Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{customer_end_date}"
}
}
],
"label": {
"template": "Customer: {0}",
"values": [
"customer_name"
]
},
"description": {
"template": "<br>Customer Id: {0}<br>Business Registration Number: {1}<br>Type: {2}<br>Risk Rating: {3}",
"values": [
"customer_id_number",
"business_registration_number",
"bus_cust_type",
"customer_risk_rating"
]
}
}
},
"entityRelationship": {
"name": "entityRelationship",
"displayName": "Entity Relationship",
"category": "entityRelationship"
},
"email": {
"name": "email",
"displayName": "Email",
"category": "resolvedEntity"
},
"resolvedEntityRelationship": {
"name": "resolvedEntityRelationship",
"displayName": "Resolved Entity Link",
"category": "resolvedEntityRelationship"
},
"individual": {
"name": "individual",
"displayName": "Individual",
"category": "resolvedEntity",
"config": {}
},
"individual_customers": {
"name": "individual_customers",
"displayName": "Individual Customers",
"category": "entity",
"fields": {
"individual_details_addres": {
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": []
}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"geojson": {
"displayName": "GeoJSON",
"type": "geoShape"
}
}
},
"individual_details_email": {
"type": "object",
"innerFields": {
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": []
}
}
}
},
"individual_details_teleph": {
"type": "object",
"innerFields": {
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
}
}
},
"bus_cust_type": {
"displayName": "Bus Cust Type",
"type": "text",
"options": {
"features": []
}
},
"cust_start_date": {
"displayName": "Cust Start Date",
"type": "date"
},
"customer_end_date": {
"displayName": "Customer End Date",
"type": "date"
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double"
},
"customer_name": {
"displayName": "Customer Name",
"type": "text"
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "double"
},
"customer_status": {
"displayName": "Customer Status",
"type": "text"
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": []
}
},
"date_of_birth": {
"displayName": "Date Of Birth",
"type": "date"
},
"full_name": {
"displayName": "Full Name",
"type": "text"
},
"personal_national_id_number": {
"displayName": "Personal National ID Number",
"type": "text",
"options": {
"features": []
}
}
},
"config": {
"summary": {
"fields": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
],
"highlighting": {
"customer_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
},
"full_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"customer_name",
"customer_type",
"personal_national_id_number",
"customer_risk_rating",
"customer_status"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "date_of_birth",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"fields": {
"category": "customer_dob",
"label": "Customer Date of Birth",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{date_of_birth}"
}
},
{
"root": "individual_details_addres",
"fields": {
"category": "customer_address",
"label": "Customer: {/customer_name}",
"description": "<br>Name: {/customer_name}<br>Type: {/customer_type}",
"geoJson": "geojson"
}
},
{
"fields": {
"category": "customer_start_date",
"label": "Customer Start Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{cust_start_date}"
}
},
{
"fields": {
"category": "customer_end_date",
"label": "Customer End Date",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{customer_end_date}"
}
}
],
"label": {
"template": "Customer: {0}",
"values": [
"customer_name"
]
},
"description": {
"template": "National Id: {0} - Full Name: {1} - Type: {1} - Status: {2} - Risk Rating: {3}",
"values": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
]
}
}
},
"telephone": {
"name": "telephone",
"displayName": "Telephone",
"category": "resolvedEntity"
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "POST",
"rel": "import",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config",
"type": "application/vnd.sas.sand.config"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config",
"uri": "/svi-sand/admin/config"
},
{
"method": "GET",
"rel": "getTypes",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
validateOnly | query | boolean | false | Whether to validate the configuration and check for breaking changes without importing it. |
waitForRefresh | query | boolean | false | Whether to wait for any index-related operations to be applied prior to the response being returned. |
body | body | configuration | false | none |
Example responses
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Delete configuration
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/config
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/admin/config')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/config", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/config
Deletes the configuration and indexed data for all types. This operation cannot be undone without first exporting the configuration and making a backup of the indexed data directly from the underlying search engine.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
recreateSystemTypes | query | boolean | false | Whether to re-create the system types after deleting all the configuration and indexed data. This parameter should be set to false when permanently deleting the configuration and indexed data. For example, when destroying a tenant (as opposed to off-boarding a tenant). |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Get all of the supported analyzers
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/config/analyzers \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/admin/config/analyzers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/svi-sand/admin/config/analyzers', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/config/analyzers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/config/analyzers
Returns the details of all of the custom and system analyzers.
Example responses
An example of the response from /admin/config/analyzers.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "createAnalyzer",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "deleteAnalyzers",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers"
}
],
"name": "analyzers",
"accept": "application/vnd.sas.sand.analyzer",
"count": 49,
"items": [
{
"solution": "sas_visual_investigator_default",
"name": "english",
"displayName": "English",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/english",
"uri": "/svi-sand/admin/config/analyzers/english",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/english",
"uri": "/svi-sand/admin/config/analyzers/english",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/english",
"uri": "/svi-sand/admin/config/analyzers/english"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "arabic",
"displayName": "Arabic",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/arabic",
"uri": "/svi-sand/admin/config/analyzers/arabic",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/arabic",
"uri": "/svi-sand/admin/config/analyzers/arabic",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/arabic",
"uri": "/svi-sand/admin/config/analyzers/arabic"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "armenian",
"displayName": "Armenian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/armenian",
"uri": "/svi-sand/admin/config/analyzers/armenian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/armenian",
"uri": "/svi-sand/admin/config/analyzers/armenian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/armenian",
"uri": "/svi-sand/admin/config/analyzers/armenian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "basque",
"displayName": "Basque",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/basque",
"uri": "/svi-sand/admin/config/analyzers/basque",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/basque",
"uri": "/svi-sand/admin/config/analyzers/basque",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/basque",
"uri": "/svi-sand/admin/config/analyzers/basque"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "bengali",
"displayName": "Bengali",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/bengali",
"uri": "/svi-sand/admin/config/analyzers/bengali",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/bengali",
"uri": "/svi-sand/admin/config/analyzers/bengali",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/bengali",
"uri": "/svi-sand/admin/config/analyzers/bengali"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "brazilian",
"displayName": "Brazilian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/brazilian",
"uri": "/svi-sand/admin/config/analyzers/brazilian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/brazilian",
"uri": "/svi-sand/admin/config/analyzers/brazilian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/brazilian",
"uri": "/svi-sand/admin/config/analyzers/brazilian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "bulgarian",
"displayName": "Bulgarian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/bulgarian",
"uri": "/svi-sand/admin/config/analyzers/bulgarian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/bulgarian",
"uri": "/svi-sand/admin/config/analyzers/bulgarian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/bulgarian",
"uri": "/svi-sand/admin/config/analyzers/bulgarian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "catalan",
"displayName": "Catalan",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/catalan",
"uri": "/svi-sand/admin/config/analyzers/catalan",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/catalan",
"uri": "/svi-sand/admin/config/analyzers/catalan",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/catalan",
"uri": "/svi-sand/admin/config/analyzers/catalan"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "cjk",
"displayName": "Chinese Japanese Korean",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/cjk",
"uri": "/svi-sand/admin/config/analyzers/cjk",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/cjk",
"uri": "/svi-sand/admin/config/analyzers/cjk",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/cjk",
"uri": "/svi-sand/admin/config/analyzers/cjk"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "czech",
"displayName": "Czech",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/czech",
"uri": "/svi-sand/admin/config/analyzers/czech",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/czech",
"uri": "/svi-sand/admin/config/analyzers/czech",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/czech",
"uri": "/svi-sand/admin/config/analyzers/czech"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "danish",
"displayName": "Danish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/danish",
"uri": "/svi-sand/admin/config/analyzers/danish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/danish",
"uri": "/svi-sand/admin/config/analyzers/danish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/danish",
"uri": "/svi-sand/admin/config/analyzers/danish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "dutch",
"displayName": "Dutch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/dutch",
"uri": "/svi-sand/admin/config/analyzers/dutch",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/dutch",
"uri": "/svi-sand/admin/config/analyzers/dutch",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/dutch",
"uri": "/svi-sand/admin/config/analyzers/dutch"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "estonian",
"displayName": "Estonian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/estonian",
"uri": "/svi-sand/admin/config/analyzers/estonian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/estonian",
"uri": "/svi-sand/admin/config/analyzers/estonian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/estonian",
"uri": "/svi-sand/admin/config/analyzers/estonian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "fingerprint",
"displayName": "Fingerprint",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/fingerprint",
"uri": "/svi-sand/admin/config/analyzers/fingerprint",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/fingerprint",
"uri": "/svi-sand/admin/config/analyzers/fingerprint",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/fingerprint",
"uri": "/svi-sand/admin/config/analyzers/fingerprint"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "finnish",
"displayName": "Finnish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/finnish",
"uri": "/svi-sand/admin/config/analyzers/finnish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/finnish",
"uri": "/svi-sand/admin/config/analyzers/finnish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/finnish",
"uri": "/svi-sand/admin/config/analyzers/finnish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "french",
"displayName": "French",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/french",
"uri": "/svi-sand/admin/config/analyzers/french",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/french",
"uri": "/svi-sand/admin/config/analyzers/french",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/french",
"uri": "/svi-sand/admin/config/analyzers/french"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "galician",
"displayName": "Galician",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/galician",
"uri": "/svi-sand/admin/config/analyzers/galician",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/galician",
"uri": "/svi-sand/admin/config/analyzers/galician",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/galician",
"uri": "/svi-sand/admin/config/analyzers/galician"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "German",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "greek",
"displayName": "Greek",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/greek",
"uri": "/svi-sand/admin/config/analyzers/greek",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/greek",
"uri": "/svi-sand/admin/config/analyzers/greek",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/greek",
"uri": "/svi-sand/admin/config/analyzers/greek"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "hindi",
"displayName": "Hindi",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/hindi",
"uri": "/svi-sand/admin/config/analyzers/hindi",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/hindi",
"uri": "/svi-sand/admin/config/analyzers/hindi",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/hindi",
"uri": "/svi-sand/admin/config/analyzers/hindi"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "hungarian",
"displayName": "Hungarian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/hungarian",
"uri": "/svi-sand/admin/config/analyzers/hungarian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/hungarian",
"uri": "/svi-sand/admin/config/analyzers/hungarian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/hungarian",
"uri": "/svi-sand/admin/config/analyzers/hungarian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "indonesian",
"displayName": "Indonesian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/indonesian",
"uri": "/svi-sand/admin/config/analyzers/indonesian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/indonesian",
"uri": "/svi-sand/admin/config/analyzers/indonesian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/indonesian",
"uri": "/svi-sand/admin/config/analyzers/indonesian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "irish",
"displayName": "Irish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/irish",
"uri": "/svi-sand/admin/config/analyzers/irish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/irish",
"uri": "/svi-sand/admin/config/analyzers/irish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/irish",
"uri": "/svi-sand/admin/config/analyzers/irish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "italian",
"displayName": "Italian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/italian",
"uri": "/svi-sand/admin/config/analyzers/italian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/italian",
"uri": "/svi-sand/admin/config/analyzers/italian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/italian",
"uri": "/svi-sand/admin/config/analyzers/italian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "keyword",
"displayName": "Keyword",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/keyword",
"uri": "/svi-sand/admin/config/analyzers/keyword",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/keyword",
"uri": "/svi-sand/admin/config/analyzers/keyword",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/keyword",
"uri": "/svi-sand/admin/config/analyzers/keyword"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "kuromoji",
"displayName": "Kuromoji Japanese",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/kuromoji",
"uri": "/svi-sand/admin/config/analyzers/kuromoji",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/kuromoji",
"uri": "/svi-sand/admin/config/analyzers/kuromoji",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/kuromoji",
"uri": "/svi-sand/admin/config/analyzers/kuromoji"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "latvian",
"displayName": "Latvian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/latvian",
"uri": "/svi-sand/admin/config/analyzers/latvian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/latvian",
"uri": "/svi-sand/admin/config/analyzers/latvian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/latvian",
"uri": "/svi-sand/admin/config/analyzers/latvian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "lithuanian",
"displayName": "Lithuanian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/lithuanian",
"uri": "/svi-sand/admin/config/analyzers/lithuanian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/lithuanian",
"uri": "/svi-sand/admin/config/analyzers/lithuanian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/lithuanian",
"uri": "/svi-sand/admin/config/analyzers/lithuanian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "nori",
"displayName": "Nori Korean",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/nori",
"uri": "/svi-sand/admin/config/analyzers/nori",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/nori",
"uri": "/svi-sand/admin/config/analyzers/nori",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/nori",
"uri": "/svi-sand/admin/config/analyzers/nori"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "norwegian",
"displayName": "Norwegian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/norwegian",
"uri": "/svi-sand/admin/config/analyzers/norwegian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/norwegian",
"uri": "/svi-sand/admin/config/analyzers/norwegian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/norwegian",
"uri": "/svi-sand/admin/config/analyzers/norwegian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "persian",
"displayName": "Persian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/persian",
"uri": "/svi-sand/admin/config/analyzers/persian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/persian",
"uri": "/svi-sand/admin/config/analyzers/persian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/persian",
"uri": "/svi-sand/admin/config/analyzers/persian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "polish",
"displayName": "Polish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/polish",
"uri": "/svi-sand/admin/config/analyzers/polish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/polish",
"uri": "/svi-sand/admin/config/analyzers/polish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/polish",
"uri": "/svi-sand/admin/config/analyzers/polish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "portuguese",
"displayName": "Portuguese",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/portuguese",
"uri": "/svi-sand/admin/config/analyzers/portuguese",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/portuguese",
"uri": "/svi-sand/admin/config/analyzers/portuguese",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/portuguese",
"uri": "/svi-sand/admin/config/analyzers/portuguese"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "romanian",
"displayName": "Romanian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/romanian",
"uri": "/svi-sand/admin/config/analyzers/romanian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/romanian",
"uri": "/svi-sand/admin/config/analyzers/romanian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/romanian",
"uri": "/svi-sand/admin/config/analyzers/romanian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "russian",
"displayName": "Russian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/russian",
"uri": "/svi-sand/admin/config/analyzers/russian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/russian",
"uri": "/svi-sand/admin/config/analyzers/russian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/russian",
"uri": "/svi-sand/admin/config/analyzers/russian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sand_filename",
"displayName": "Filename",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sand_filename",
"uri": "/svi-sand/admin/config/analyzers/sand_filename",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sand_filename",
"uri": "/svi-sand/admin/config/analyzers/sand_filename",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sand_filename",
"uri": "/svi-sand/admin/config/analyzers/sand_filename"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sand_icu_facet",
"displayName": "ICU Facet",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_facet"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sand_icu_search",
"displayName": "ICU Search",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sand_icu_search",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_search",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sand_icu_search",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_search",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sand_icu_search",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_search"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sand_synonym",
"displayName": "Synonym",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sand_synonym",
"uri": "/svi-sand/admin/config/analyzers/sand_synonym",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sand_synonym",
"uri": "/svi-sand/admin/config/analyzers/sand_synonym",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sand_synonym",
"uri": "/svi-sand/admin/config/analyzers/sand_synonym"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "simple",
"displayName": "Simple",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/simple",
"uri": "/svi-sand/admin/config/analyzers/simple",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/simple",
"uri": "/svi-sand/admin/config/analyzers/simple",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/simple",
"uri": "/svi-sand/admin/config/analyzers/simple"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "smartcn",
"displayName": "Smart Chinese",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/smartcn",
"uri": "/svi-sand/admin/config/analyzers/smartcn",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/smartcn",
"uri": "/svi-sand/admin/config/analyzers/smartcn",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/smartcn",
"uri": "/svi-sand/admin/config/analyzers/smartcn"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sorani",
"displayName": "Sorani",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sorani",
"uri": "/svi-sand/admin/config/analyzers/sorani",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sorani",
"uri": "/svi-sand/admin/config/analyzers/sorani",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sorani",
"uri": "/svi-sand/admin/config/analyzers/sorani"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "spanish",
"displayName": "Spanish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/spanish",
"uri": "/svi-sand/admin/config/analyzers/spanish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/spanish",
"uri": "/svi-sand/admin/config/analyzers/spanish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/spanish",
"uri": "/svi-sand/admin/config/analyzers/spanish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "standard",
"displayName": "Standard",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/standard",
"uri": "/svi-sand/admin/config/analyzers/standard",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/standard",
"uri": "/svi-sand/admin/config/analyzers/standard",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/standard",
"uri": "/svi-sand/admin/config/analyzers/standard"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "stop",
"displayName": "Stop",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/stop",
"uri": "/svi-sand/admin/config/analyzers/stop",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/stop",
"uri": "/svi-sand/admin/config/analyzers/stop",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/stop",
"uri": "/svi-sand/admin/config/analyzers/stop"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "swedish",
"displayName": "Swedish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/swedish",
"uri": "/svi-sand/admin/config/analyzers/swedish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/swedish",
"uri": "/svi-sand/admin/config/analyzers/swedish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/swedish",
"uri": "/svi-sand/admin/config/analyzers/swedish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "thai",
"displayName": "Thai",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/thai",
"uri": "/svi-sand/admin/config/analyzers/thai",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/thai",
"uri": "/svi-sand/admin/config/analyzers/thai",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/thai",
"uri": "/svi-sand/admin/config/analyzers/thai"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "turkish",
"displayName": "Turkish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/turkish",
"uri": "/svi-sand/admin/config/analyzers/turkish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/turkish",
"uri": "/svi-sand/admin/config/analyzers/turkish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/turkish",
"uri": "/svi-sand/admin/config/analyzers/turkish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "whitespace",
"displayName": "Whitespace",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/whitespace",
"uri": "/svi-sand/admin/config/analyzers/whitespace",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/whitespace",
"uri": "/svi-sand/admin/config/analyzers/whitespace",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/whitespace",
"uri": "/svi-sand/admin/config/analyzers/whitespace"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
],
"version": 2
}
An example of the response from /admin/config/analyzers/{analyzer}.
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "Deutsch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
An example of the response from /admin/config/analyzers.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "createAnalyzer",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "deleteAnalyzers",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers"
}
],
"name": "analyzers",
"accept": "application/vnd.sas.sand.analyzer",
"count": 49,
"items": [
{
"solution": "sas_visual_investigator_default",
"name": "english",
"displayName": "English",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/english",
"uri": "/svi-sand/admin/config/analyzers/english",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/english",
"uri": "/svi-sand/admin/config/analyzers/english",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/english",
"uri": "/svi-sand/admin/config/analyzers/english"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "arabic",
"displayName": "Arabic",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/arabic",
"uri": "/svi-sand/admin/config/analyzers/arabic",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/arabic",
"uri": "/svi-sand/admin/config/analyzers/arabic",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/arabic",
"uri": "/svi-sand/admin/config/analyzers/arabic"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "armenian",
"displayName": "Armenian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/armenian",
"uri": "/svi-sand/admin/config/analyzers/armenian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/armenian",
"uri": "/svi-sand/admin/config/analyzers/armenian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/armenian",
"uri": "/svi-sand/admin/config/analyzers/armenian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "basque",
"displayName": "Basque",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/basque",
"uri": "/svi-sand/admin/config/analyzers/basque",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/basque",
"uri": "/svi-sand/admin/config/analyzers/basque",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/basque",
"uri": "/svi-sand/admin/config/analyzers/basque"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "bengali",
"displayName": "Bengali",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/bengali",
"uri": "/svi-sand/admin/config/analyzers/bengali",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/bengali",
"uri": "/svi-sand/admin/config/analyzers/bengali",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/bengali",
"uri": "/svi-sand/admin/config/analyzers/bengali"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "brazilian",
"displayName": "Brazilian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/brazilian",
"uri": "/svi-sand/admin/config/analyzers/brazilian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/brazilian",
"uri": "/svi-sand/admin/config/analyzers/brazilian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/brazilian",
"uri": "/svi-sand/admin/config/analyzers/brazilian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "bulgarian",
"displayName": "Bulgarian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/bulgarian",
"uri": "/svi-sand/admin/config/analyzers/bulgarian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/bulgarian",
"uri": "/svi-sand/admin/config/analyzers/bulgarian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/bulgarian",
"uri": "/svi-sand/admin/config/analyzers/bulgarian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "catalan",
"displayName": "Catalan",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/catalan",
"uri": "/svi-sand/admin/config/analyzers/catalan",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/catalan",
"uri": "/svi-sand/admin/config/analyzers/catalan",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/catalan",
"uri": "/svi-sand/admin/config/analyzers/catalan"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "cjk",
"displayName": "Chinese Japanese Korean",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/cjk",
"uri": "/svi-sand/admin/config/analyzers/cjk",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/cjk",
"uri": "/svi-sand/admin/config/analyzers/cjk",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/cjk",
"uri": "/svi-sand/admin/config/analyzers/cjk"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "czech",
"displayName": "Czech",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/czech",
"uri": "/svi-sand/admin/config/analyzers/czech",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/czech",
"uri": "/svi-sand/admin/config/analyzers/czech",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/czech",
"uri": "/svi-sand/admin/config/analyzers/czech"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "danish",
"displayName": "Danish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/danish",
"uri": "/svi-sand/admin/config/analyzers/danish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/danish",
"uri": "/svi-sand/admin/config/analyzers/danish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/danish",
"uri": "/svi-sand/admin/config/analyzers/danish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "dutch",
"displayName": "Dutch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/dutch",
"uri": "/svi-sand/admin/config/analyzers/dutch",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/dutch",
"uri": "/svi-sand/admin/config/analyzers/dutch",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/dutch",
"uri": "/svi-sand/admin/config/analyzers/dutch"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "estonian",
"displayName": "Estonian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/estonian",
"uri": "/svi-sand/admin/config/analyzers/estonian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/estonian",
"uri": "/svi-sand/admin/config/analyzers/estonian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/estonian",
"uri": "/svi-sand/admin/config/analyzers/estonian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "fingerprint",
"displayName": "Fingerprint",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/fingerprint",
"uri": "/svi-sand/admin/config/analyzers/fingerprint",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/fingerprint",
"uri": "/svi-sand/admin/config/analyzers/fingerprint",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/fingerprint",
"uri": "/svi-sand/admin/config/analyzers/fingerprint"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "finnish",
"displayName": "Finnish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/finnish",
"uri": "/svi-sand/admin/config/analyzers/finnish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/finnish",
"uri": "/svi-sand/admin/config/analyzers/finnish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/finnish",
"uri": "/svi-sand/admin/config/analyzers/finnish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "french",
"displayName": "French",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/french",
"uri": "/svi-sand/admin/config/analyzers/french",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/french",
"uri": "/svi-sand/admin/config/analyzers/french",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/french",
"uri": "/svi-sand/admin/config/analyzers/french"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "galician",
"displayName": "Galician",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/galician",
"uri": "/svi-sand/admin/config/analyzers/galician",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/galician",
"uri": "/svi-sand/admin/config/analyzers/galician",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/galician",
"uri": "/svi-sand/admin/config/analyzers/galician"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "German",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "greek",
"displayName": "Greek",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/greek",
"uri": "/svi-sand/admin/config/analyzers/greek",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/greek",
"uri": "/svi-sand/admin/config/analyzers/greek",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/greek",
"uri": "/svi-sand/admin/config/analyzers/greek"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "hindi",
"displayName": "Hindi",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/hindi",
"uri": "/svi-sand/admin/config/analyzers/hindi",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/hindi",
"uri": "/svi-sand/admin/config/analyzers/hindi",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/hindi",
"uri": "/svi-sand/admin/config/analyzers/hindi"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "hungarian",
"displayName": "Hungarian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/hungarian",
"uri": "/svi-sand/admin/config/analyzers/hungarian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/hungarian",
"uri": "/svi-sand/admin/config/analyzers/hungarian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/hungarian",
"uri": "/svi-sand/admin/config/analyzers/hungarian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "indonesian",
"displayName": "Indonesian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/indonesian",
"uri": "/svi-sand/admin/config/analyzers/indonesian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/indonesian",
"uri": "/svi-sand/admin/config/analyzers/indonesian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/indonesian",
"uri": "/svi-sand/admin/config/analyzers/indonesian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "irish",
"displayName": "Irish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/irish",
"uri": "/svi-sand/admin/config/analyzers/irish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/irish",
"uri": "/svi-sand/admin/config/analyzers/irish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/irish",
"uri": "/svi-sand/admin/config/analyzers/irish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "italian",
"displayName": "Italian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/italian",
"uri": "/svi-sand/admin/config/analyzers/italian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/italian",
"uri": "/svi-sand/admin/config/analyzers/italian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/italian",
"uri": "/svi-sand/admin/config/analyzers/italian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "keyword",
"displayName": "Keyword",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/keyword",
"uri": "/svi-sand/admin/config/analyzers/keyword",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/keyword",
"uri": "/svi-sand/admin/config/analyzers/keyword",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/keyword",
"uri": "/svi-sand/admin/config/analyzers/keyword"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "kuromoji",
"displayName": "Kuromoji Japanese",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/kuromoji",
"uri": "/svi-sand/admin/config/analyzers/kuromoji",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/kuromoji",
"uri": "/svi-sand/admin/config/analyzers/kuromoji",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/kuromoji",
"uri": "/svi-sand/admin/config/analyzers/kuromoji"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "latvian",
"displayName": "Latvian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/latvian",
"uri": "/svi-sand/admin/config/analyzers/latvian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/latvian",
"uri": "/svi-sand/admin/config/analyzers/latvian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/latvian",
"uri": "/svi-sand/admin/config/analyzers/latvian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "lithuanian",
"displayName": "Lithuanian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/lithuanian",
"uri": "/svi-sand/admin/config/analyzers/lithuanian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/lithuanian",
"uri": "/svi-sand/admin/config/analyzers/lithuanian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/lithuanian",
"uri": "/svi-sand/admin/config/analyzers/lithuanian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "nori",
"displayName": "Nori Korean",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/nori",
"uri": "/svi-sand/admin/config/analyzers/nori",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/nori",
"uri": "/svi-sand/admin/config/analyzers/nori",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/nori",
"uri": "/svi-sand/admin/config/analyzers/nori"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "norwegian",
"displayName": "Norwegian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/norwegian",
"uri": "/svi-sand/admin/config/analyzers/norwegian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/norwegian",
"uri": "/svi-sand/admin/config/analyzers/norwegian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/norwegian",
"uri": "/svi-sand/admin/config/analyzers/norwegian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "persian",
"displayName": "Persian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/persian",
"uri": "/svi-sand/admin/config/analyzers/persian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/persian",
"uri": "/svi-sand/admin/config/analyzers/persian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/persian",
"uri": "/svi-sand/admin/config/analyzers/persian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "polish",
"displayName": "Polish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/polish",
"uri": "/svi-sand/admin/config/analyzers/polish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/polish",
"uri": "/svi-sand/admin/config/analyzers/polish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/polish",
"uri": "/svi-sand/admin/config/analyzers/polish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "portuguese",
"displayName": "Portuguese",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/portuguese",
"uri": "/svi-sand/admin/config/analyzers/portuguese",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/portuguese",
"uri": "/svi-sand/admin/config/analyzers/portuguese",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/portuguese",
"uri": "/svi-sand/admin/config/analyzers/portuguese"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "romanian",
"displayName": "Romanian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/romanian",
"uri": "/svi-sand/admin/config/analyzers/romanian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/romanian",
"uri": "/svi-sand/admin/config/analyzers/romanian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/romanian",
"uri": "/svi-sand/admin/config/analyzers/romanian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "russian",
"displayName": "Russian",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/russian",
"uri": "/svi-sand/admin/config/analyzers/russian",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/russian",
"uri": "/svi-sand/admin/config/analyzers/russian",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/russian",
"uri": "/svi-sand/admin/config/analyzers/russian"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sand_filename",
"displayName": "Filename",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sand_filename",
"uri": "/svi-sand/admin/config/analyzers/sand_filename",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sand_filename",
"uri": "/svi-sand/admin/config/analyzers/sand_filename",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sand_filename",
"uri": "/svi-sand/admin/config/analyzers/sand_filename"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sand_icu_facet",
"displayName": "ICU Facet",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sand_icu_facet",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_facet"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sand_icu_search",
"displayName": "ICU Search",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sand_icu_search",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_search",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sand_icu_search",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_search",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sand_icu_search",
"uri": "/svi-sand/admin/config/analyzers/sand_icu_search"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sand_synonym",
"displayName": "Synonym",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sand_synonym",
"uri": "/svi-sand/admin/config/analyzers/sand_synonym",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sand_synonym",
"uri": "/svi-sand/admin/config/analyzers/sand_synonym",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sand_synonym",
"uri": "/svi-sand/admin/config/analyzers/sand_synonym"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "simple",
"displayName": "Simple",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/simple",
"uri": "/svi-sand/admin/config/analyzers/simple",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/simple",
"uri": "/svi-sand/admin/config/analyzers/simple",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/simple",
"uri": "/svi-sand/admin/config/analyzers/simple"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "smartcn",
"displayName": "Smart Chinese",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/smartcn",
"uri": "/svi-sand/admin/config/analyzers/smartcn",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/smartcn",
"uri": "/svi-sand/admin/config/analyzers/smartcn",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/smartcn",
"uri": "/svi-sand/admin/config/analyzers/smartcn"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "sorani",
"displayName": "Sorani",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/sorani",
"uri": "/svi-sand/admin/config/analyzers/sorani",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/sorani",
"uri": "/svi-sand/admin/config/analyzers/sorani",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/sorani",
"uri": "/svi-sand/admin/config/analyzers/sorani"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "spanish",
"displayName": "Spanish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/spanish",
"uri": "/svi-sand/admin/config/analyzers/spanish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/spanish",
"uri": "/svi-sand/admin/config/analyzers/spanish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/spanish",
"uri": "/svi-sand/admin/config/analyzers/spanish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "standard",
"displayName": "Standard",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/standard",
"uri": "/svi-sand/admin/config/analyzers/standard",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/standard",
"uri": "/svi-sand/admin/config/analyzers/standard",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/standard",
"uri": "/svi-sand/admin/config/analyzers/standard"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "stop",
"displayName": "Stop",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/stop",
"uri": "/svi-sand/admin/config/analyzers/stop",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/stop",
"uri": "/svi-sand/admin/config/analyzers/stop",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/stop",
"uri": "/svi-sand/admin/config/analyzers/stop"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "swedish",
"displayName": "Swedish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/swedish",
"uri": "/svi-sand/admin/config/analyzers/swedish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/swedish",
"uri": "/svi-sand/admin/config/analyzers/swedish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/swedish",
"uri": "/svi-sand/admin/config/analyzers/swedish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "thai",
"displayName": "Thai",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/thai",
"uri": "/svi-sand/admin/config/analyzers/thai",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/thai",
"uri": "/svi-sand/admin/config/analyzers/thai",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/thai",
"uri": "/svi-sand/admin/config/analyzers/thai"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "turkish",
"displayName": "Turkish",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/turkish",
"uri": "/svi-sand/admin/config/analyzers/turkish",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/turkish",
"uri": "/svi-sand/admin/config/analyzers/turkish",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/turkish",
"uri": "/svi-sand/admin/config/analyzers/turkish"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "whitespace",
"displayName": "Whitespace",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/whitespace",
"uri": "/svi-sand/admin/config/analyzers/whitespace",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/whitespace",
"uri": "/svi-sand/admin/config/analyzers/whitespace",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/whitespace",
"uri": "/svi-sand/admin/config/analyzers/whitespace"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
],
"version": 2
}
An example of the response from /admin/config/analyzers/{analyzer}.
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "Deutsch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyzerCollection |
Get the headers for the get analyzers operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/config/analyzers
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/analyzers',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/config/analyzers')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/config/analyzers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/config/analyzers
Returns the headers for the get analyzers operation.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Registers a new custom analyzer
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/config/analyzers \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.analyzer+json' \
-H 'Accept: application/vnd.sas.sand.analyzer+json'
const inputBody = '{
"solution": "sas_visual_investigator_default",
"name": "telephone",
"displayName": "US Telephone"
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.analyzer+json',
'Accept':'application/vnd.sas.sand.analyzer+json'
};
fetch('https://example.com/svi-sand/admin/config/analyzers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.analyzer+json',
'Accept': 'application/vnd.sas.sand.analyzer+json'
}
r = requests.post('https://example.com/svi-sand/admin/config/analyzers', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.analyzer+json"},
"Accept": []string{"application/vnd.sas.sand.analyzer+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/config/analyzers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/config/analyzers
Registers the name and display name of a custom analyzer. The request will be rejected if an analyzer already exists with the same name.
Body parameter
An example of the request for /admin/config/analyzers or /admin/config/analyzers/{analyzer}.
{
"solution": "sas_visual_investigator_default",
"name": "telephone",
"displayName": "US Telephone"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | analyzer | false | none |
Example responses
An example of the response from /admin/config/analyzers/{analyzer}.
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "Deutsch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "Deutsch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
409 Response
{
"description": "An example of a 409 conflict Error message.",
"value": {
"errorCode": "95234",
"message": "An analyzer already exists with the name \"example\". ",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 409
}
}
{
"description": "An example of a 409 conflict Error message.",
"value": {
"errorCode": "95234",
"message": "An analyzer already exists with the name \"example\". ",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 409
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The request succeeded. | analyzer |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
409 | Conflict | An analyzer already exists with the given name. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Location | string | The URI of the new analyzer. | |
201 | ETag | integer | The version number of the new analyzer. |
Unregisters all of the custom analyzers
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/config/analyzers
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/analyzers',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/admin/config/analyzers')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/config/analyzers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/config/analyzers
Unregisters all of the custom analyzers. System analyzers cannot be unregistered.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Get a supported analyzer
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/config/analyzers/{analyzer} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.analyzer+json'
const headers = {
'Accept':'application/vnd.sas.sand.analyzer+json'
};
fetch('https://example.com/svi-sand/admin/config/analyzers/{analyzer}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.analyzer+json'
}
r = requests.get('https://example.com/svi-sand/admin/config/analyzers/{analyzer}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.analyzer+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/config/analyzers/{analyzer}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/config/analyzers/{analyzer}
Returns the details of a custom or system analyzer.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
analyzer | path | string | true | The name of the analyzer. |
Example responses
An example of the response from /admin/config/analyzers/{analyzer}.
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "Deutsch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "Deutsch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyzer |
404 | Not Found | The analyzer does not exist. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The version number of the analyzer. |
Get the headers for the get analyzer operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/config/analyzers/{analyzer}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/analyzers/{analyzer}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/config/analyzers/{analyzer}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/config/analyzers/{analyzer}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/config/analyzers/{analyzer}
Returns the headers for the get analyzer operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
analyzer | path | string | true | The name of the analyzer. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The analyzer does not exist. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The version number of the analyzer. |
Updates the display name of a custom analyzer
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-sand/admin/config/analyzers/{analyzer} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.analyzer+json' \
-H 'Accept: application/vnd.sas.sand.analyzer+json' \
-H 'If-Match: 0'
const inputBody = '{
"solution": "sas_visual_investigator_default",
"name": "telephone",
"displayName": "US Telephone"
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.analyzer+json',
'Accept':'application/vnd.sas.sand.analyzer+json',
'If-Match':'0'
};
fetch('https://example.com/svi-sand/admin/config/analyzers/{analyzer}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.analyzer+json',
'Accept': 'application/vnd.sas.sand.analyzer+json',
'If-Match': '0'
}
r = requests.put('https://example.com/svi-sand/admin/config/analyzers/{analyzer}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.analyzer+json"},
"Accept": []string{"application/vnd.sas.sand.analyzer+json"},
"If-Match": []string{"0"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-sand/admin/config/analyzers/{analyzer}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /admin/config/analyzers/{analyzer}
Updates the display name of a custom analyzer. System analyzers cannot be updated.
Body parameter
An example of the request for /admin/config/analyzers or /admin/config/analyzers/{analyzer}.
{
"solution": "sas_visual_investigator_default",
"name": "telephone",
"displayName": "US Telephone"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
analyzer | path | string | true | The name of the analyzer. |
If-Match | header | integer | true | Specifies the version number of the analyzer that is to be edited. |
body | body | analyzer | false | none |
Example responses
An example of the response from /admin/config/analyzers/{analyzer}.
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "Deutsch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
{
"solution": "sas_visual_investigator_default",
"name": "german",
"displayName": "Deutsch",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/analyzers/german",
"uri": "/svi-sand/admin/config/analyzers/german"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.analyzer"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/analyzers",
"uri": "/svi-sand/admin/config/analyzers",
"type": "application/vnd.sas.sand.analyzer",
"responseType": "application/vnd.sas.sand.analyzer"
}
]
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
412 Response
{
"description": "An example of a 412 precondition failed Error message.",
"value": {
"errorCode": "95148",
"message": "The configuration update for entity type \"example\" refers to version 1 but the latest is 2.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 412
}
}
{
"description": "An example of a 412 precondition failed Error message.",
"value": {
"errorCode": "95148",
"message": "The configuration update for entity type \"example\" refers to version 1 but the latest is 2.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 412
}
}
428 Response
{
"description": "An example of a 428 precondition required Error message.",
"value": {
"errorCode": "95017",
"message": "The following parameter is missing from the request: example param",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 428
}
}
{
"description": "An example of a 428 precondition required Error message.",
"value": {
"errorCode": "95017",
"message": "The following parameter is missing from the request: example param",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 428
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | analyzer |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | The analyzer does not exist. | error2 |
412 | Precondition Failed | The request refers to an out-of-date version of the analyzer. | error2 |
428 | Precondition Required | The request is missing the If-Match header. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The up-to-date version number of the analyzer. |
Unregisters a custom analyzer
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/config/analyzers/{analyzer}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/analyzers/{analyzer}',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/admin/config/analyzers/{analyzer}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/config/analyzers/{analyzer}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/config/analyzers/{analyzer}
Unregisters the name and display name of a custom analyzer. System analyzers cannot be unregistered.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
analyzer | path | string | true | The name of the analyzer. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Get all of the GeoJSON shapes
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/config/shapes \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/admin/config/shapes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/svi-sand/admin/config/shapes', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/config/shapes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/config/shapes
Returns the details of all of the reusable GeoJSON shapes.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first GeoJSON shape to include in the current page. |
limit | query | integer | false | The maximum number of GeoJSON shapes to include in each page. |
sortBy | query | string | false | The criteria by which to sort the GeoJSON shapes. |
filter | query | string | false | The criteria by which to filter the GeoJSON shapes. The filter supports only the "contains" and "and" operators on the name and group properties. |
fields | query | string | false | A comma-separated list of the GeoJSON shape properties to include in the response. |
Example responses
An example of the response from /admin/config/shapes.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/shapes?start=0&limit=10",
"uri": "/svi-sand/admin/config/shapes?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.geo.shape"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/shapes",
"uri": "/svi-sand/admin/config/shapes",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.geo.shape"
},
{
"method": "POST",
"rel": "createShape",
"href": "/svi-sand/admin/config/shapes",
"uri": "/svi-sand/admin/config/shapes",
"type": "application/vnd.sas.sand.geo.shape"
},
{
"method": "DELETE",
"rel": "deleteShapes",
"href": "/svi-sand/admin/config/shapes",
"uri": "/svi-sand/admin/config/shapes"
}
],
"name": "shapes",
"accept": "application/vnd.sas.sand.geo.shape",
"start": 0,
"count": 1,
"items": [
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
],
"limit": 10,
"version": 2
}
An example of a shape that can be pre-configured via /admin/config/shapes. Also refer to the filterTypeShapePreconfigured example.
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
An example of the response from /admin/config/shapes.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/shapes?start=0&limit=10",
"uri": "/svi-sand/admin/config/shapes?start=0&limit=10",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.geo.shape"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/shapes",
"uri": "/svi-sand/admin/config/shapes",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.geo.shape"
},
{
"method": "POST",
"rel": "createShape",
"href": "/svi-sand/admin/config/shapes",
"uri": "/svi-sand/admin/config/shapes",
"type": "application/vnd.sas.sand.geo.shape"
},
{
"method": "DELETE",
"rel": "deleteShapes",
"href": "/svi-sand/admin/config/shapes",
"uri": "/svi-sand/admin/config/shapes"
}
],
"name": "shapes",
"accept": "application/vnd.sas.sand.geo.shape",
"start": 0,
"count": 1,
"items": [
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
],
"limit": 10,
"version": 2
}
An example of a shape that can be pre-configured via /admin/config/shapes. Also refer to the filterTypeShapePreconfigured example.
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | geoJsonShapeCollection |
Get the headers for the get shapes operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/config/shapes
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/shapes',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/config/shapes')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/config/shapes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/config/shapes
Returns the headers for the get shapes operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first GeoJSON shape to include in the current page. |
limit | query | integer | false | The maximum number of GeoJSON shapes to include in each page. |
sortBy | query | string | false | The criteria by which to sort the GeoJSON shapes. |
filter | query | string | false | The criteria by which to filter the GeoJSON shapes. The filter supports only the "contains" and "and" operators on the name and group properties. |
fields | query | string | false | A comma-separated list of the GeoJSON shape properties to include in the response. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Creates a new GeoJSON shape
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/config/shapes \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.geo.shape+json' \
-H 'Accept: application/vnd.sas.sand.geo.shape+json'
const inputBody = '{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.geo.shape+json',
'Accept':'application/vnd.sas.sand.geo.shape+json'
};
fetch('https://example.com/svi-sand/admin/config/shapes',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.geo.shape+json',
'Accept': 'application/vnd.sas.sand.geo.shape+json'
}
r = requests.post('https://example.com/svi-sand/admin/config/shapes', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.geo.shape+json"},
"Accept": []string{"application/vnd.sas.sand.geo.shape+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/config/shapes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/config/shapes
Creates a new reusable GeoJSON shape. The request will be rejected if a GeoJSON shape already exists with the same identifier.
Body parameter
An example of a shape that can be pre-configured via /admin/config/shapes. Also refer to the filterTypeShapePreconfigured example.
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | geoJsonShape | false | none |
Example responses
An example of a shape that can be pre-configured via /admin/config/shapes. Also refer to the filterTypeShapePreconfigured example.
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
409 Response
{
"description": "An example of a 409 conflict Error message.",
"value": {
"errorCode": "95234",
"message": "An analyzer already exists with the name \"example\". ",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 409
}
}
{
"description": "An example of a 409 conflict Error message.",
"value": {
"errorCode": "95234",
"message": "An analyzer already exists with the name \"example\". ",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 409
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The request succeeded. | geoJsonShape |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
409 | Conflict | A GeoJSON shape already exists with the given identifier. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Location | string | The URI of the new GeoJSON shape. | |
201 | ETag | integer | The version number of the new GeoJSON shape. |
Deletes all of the GeoJSON shapes
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/config/shapes
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/shapes',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/admin/config/shapes')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/config/shapes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/config/shapes
Deletes all of the reusable GeoJSON shapes.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Get a GeoJSON shape
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/config/shapes/{shapeId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.geo.shape+json'
const headers = {
'Accept':'application/vnd.sas.sand.geo.shape+json'
};
fetch('https://example.com/svi-sand/admin/config/shapes/{shapeId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.geo.shape+json'
}
r = requests.get('https://example.com/svi-sand/admin/config/shapes/{shapeId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.geo.shape+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/config/shapes/{shapeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/config/shapes/{shapeId}
Returns the details of a GeoJSON shape.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shapeId | path | string | true | The identifier of the GeoJSON shape. |
Example responses
An example of a shape that can be pre-configured via /admin/config/shapes. Also refer to the filterTypeShapePreconfigured example.
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | geoJsonShape |
404 | Not Found | The GeoJSON shape does not exist. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The version number of the GeoJSON shape. |
Get the headers for the get GeoJSON shape operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/config/shapes/{shapeId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/shapes/{shapeId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/config/shapes/{shapeId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/config/shapes/{shapeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/config/shapes/{shapeId}
Returns the headers for the get GeoJSON shape operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shapeId | path | string | true | The identifier of the GeoJSON shape. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The GeoJSON shape does not exist. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The version number of the GeoJSON shape. |
Updates the details of a GeoJSON shape
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-sand/admin/config/shapes/{shapeId} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.geo.shape+json' \
-H 'Accept: application/vnd.sas.sand.geo.shape+json' \
-H 'If-Match: 0'
const inputBody = '{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.geo.shape+json',
'Accept':'application/vnd.sas.sand.geo.shape+json',
'If-Match':'0'
};
fetch('https://example.com/svi-sand/admin/config/shapes/{shapeId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.geo.shape+json',
'Accept': 'application/vnd.sas.sand.geo.shape+json',
'If-Match': '0'
}
r = requests.put('https://example.com/svi-sand/admin/config/shapes/{shapeId}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.geo.shape+json"},
"Accept": []string{"application/vnd.sas.sand.geo.shape+json"},
"If-Match": []string{"0"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-sand/admin/config/shapes/{shapeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /admin/config/shapes/{shapeId}
Updates the details of a GeoJSON shape.
Body parameter
An example of a shape that can be pre-configured via /admin/config/shapes. Also refer to the filterTypeShapePreconfigured example.
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shapeId | path | string | true | The identifier of the GeoJSON shape. |
If-Match | header | integer | true | Specifies the version number of the GeoJSON shape that is to be edited. |
body | body | geoJsonShape | false | none |
Example responses
An example of a shape that can be pre-configured via /admin/config/shapes. Also refer to the filterTypeShapePreconfigured example.
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
{
"id": "82d0cf19-0b9a-444b-b10d-35ea3724c3a8",
"solution": "Law Enforcement",
"name": "Colorado",
"group": "states",
"shape": {
"type": "Polygon",
"coordinates": [
[
[
-109.03930664062501,
37.00241558176739
],
[
-102.05200195312501,
36.99364128251306
],
[
-102.07397460937501,
40.98806198567309
],
[
-109.03930664062501,
40.98806198567309
],
[
-109.03930664062501,
37.00241558176739
]
]
]
}
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
412 Response
{
"description": "An example of a 412 precondition failed Error message.",
"value": {
"errorCode": "95148",
"message": "The configuration update for entity type \"example\" refers to version 1 but the latest is 2.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 412
}
}
{
"description": "An example of a 412 precondition failed Error message.",
"value": {
"errorCode": "95148",
"message": "The configuration update for entity type \"example\" refers to version 1 but the latest is 2.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 412
}
}
428 Response
{
"description": "An example of a 428 precondition required Error message.",
"value": {
"errorCode": "95017",
"message": "The following parameter is missing from the request: example param",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 428
}
}
{
"description": "An example of a 428 precondition required Error message.",
"value": {
"errorCode": "95017",
"message": "The following parameter is missing from the request: example param",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 428
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | geoJsonShape |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | The GeoJSON shape does not exist. | error2 |
412 | Precondition Failed | The request refers to an out-of-date version of the GeoJSON shape. | error2 |
428 | Precondition Required | The request is missing the If-Match header. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The up-to-date version number of the GeoJSON shape. |
Deletes a GeoJSON shape
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/config/shapes/{shapeId}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/shapes/{shapeId}',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/admin/config/shapes/{shapeId}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/config/shapes/{shapeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/config/shapes/{shapeId}
Deletes the details of a GeoJSON shape.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shapeId | path | string | true | The identifier of the GeoJSON shape. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Gets the list of synonyms
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/config/synonyms \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/admin/config/synonyms',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/svi-sand/admin/config/synonyms', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/config/synonyms", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/config/synonyms
Gets the list of synonyms for synonym searching.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first synonym to include in the current page. |
limit | query | integer | false | The maximum number of synonyms to include in each page. |
Example responses
An example of the request and response for /admin/config/synonyms.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"uri": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "POST",
"rel": "createSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "DELETE",
"rel": "deleteSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms"
}
],
"name": "synonyms",
"accept": "application/vnd.sas.sand.synonym",
"start": 0,
"count": 7,
"items": [
{
"terms": "ant,spider=>insect"
},
{
"terms": "buffalo,cow,pig,sheep=>farm"
},
{
"terms": "cat,deer,dog,donkey,elephant,fox,gorilla,horse,hound,lion,monkey,moose,mouse,rabbit,racoon,rat,tiger=>mammal"
},
{
"terms": "shark,whale=>fish"
},
{
"terms": "frog,toad=>amphibian"
},
{
"terms": "dinosaur,dragon=>reptile"
},
{
"terms": "eagle,parrot,pheasant,puffin,quail,owl=>bird"
}
],
"limit": 20,
"version": 2
}
An example of a synonym using the contraction approach.
{
"terms": "bound,hop,leap=>jump"
}
An example of a synonym using the expansion approach.
{
"terms": "bound,hop,leap,jump"
}
An example of the request and response for /admin/config/synonyms.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"uri": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "POST",
"rel": "createSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "DELETE",
"rel": "deleteSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms"
}
],
"name": "synonyms",
"accept": "application/vnd.sas.sand.synonym",
"start": 0,
"count": 7,
"items": [
{
"terms": "ant,spider=>insect"
},
{
"terms": "buffalo,cow,pig,sheep=>farm"
},
{
"terms": "cat,deer,dog,donkey,elephant,fox,gorilla,horse,hound,lion,monkey,moose,mouse,rabbit,racoon,rat,tiger=>mammal"
},
{
"terms": "shark,whale=>fish"
},
{
"terms": "frog,toad=>amphibian"
},
{
"terms": "dinosaur,dragon=>reptile"
},
{
"terms": "eagle,parrot,pheasant,puffin,quail,owl=>bird"
}
],
"limit": 20,
"version": 2
}
An example of a synonym using the contraction approach.
{
"terms": "bound,hop,leap=>jump"
}
An example of a synonym using the expansion approach.
{
"terms": "bound,hop,leap,jump"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | synonymCollection |
Gets the headers for the get synonyms operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/config/synonyms
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/synonyms',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/config/synonyms')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/config/synonyms", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/config/synonyms
Returns the headers for the get synonyms operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first synonym to include in the current page. |
limit | query | integer | false | The maximum number of synonyms to include in each page. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Creates the list of synonyms
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/config/synonyms \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.collection+json' \
-H 'Accept: application/vnd.sas.collection+json'
const inputBody = '{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"uri": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "POST",
"rel": "createSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "DELETE",
"rel": "deleteSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms"
}
],
"name": "synonyms",
"accept": "application/vnd.sas.sand.synonym",
"start": 0,
"count": 7,
"items": [
{
"terms": "ant,spider=>insect"
},
{
"terms": "buffalo,cow,pig,sheep=>farm"
},
{
"terms": "cat,deer,dog,donkey,elephant,fox,gorilla,horse,hound,lion,monkey,moose,mouse,rabbit,racoon,rat,tiger=>mammal"
},
{
"terms": "shark,whale=>fish"
},
{
"terms": "frog,toad=>amphibian"
},
{
"terms": "dinosaur,dragon=>reptile"
},
{
"terms": "eagle,parrot,pheasant,puffin,quail,owl=>bird"
}
],
"limit": 20,
"version": 2
}';
const headers = {
'Content-Type':'application/vnd.sas.collection+json',
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/admin/config/synonyms',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.collection+json',
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.post('https://example.com/svi-sand/admin/config/synonyms', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.collection+json"},
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/config/synonyms", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/config/synonyms
Creates the list of synonyms for synonym searching. If there is an existing list, it will be overwritten.
Body parameter
An example of the request and response for /admin/config/synonyms.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"uri": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "POST",
"rel": "createSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "DELETE",
"rel": "deleteSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms"
}
],
"name": "synonyms",
"accept": "application/vnd.sas.sand.synonym",
"start": 0,
"count": 7,
"items": [
{
"terms": "ant,spider=>insect"
},
{
"terms": "buffalo,cow,pig,sheep=>farm"
},
{
"terms": "cat,deer,dog,donkey,elephant,fox,gorilla,horse,hound,lion,monkey,moose,mouse,rabbit,racoon,rat,tiger=>mammal"
},
{
"terms": "shark,whale=>fish"
},
{
"terms": "frog,toad=>amphibian"
},
{
"terms": "dinosaur,dragon=>reptile"
},
{
"terms": "eagle,parrot,pheasant,puffin,quail,owl=>bird"
}
],
"limit": 20,
"version": 2
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | synonymCollection | false | none |
Example responses
An example of the request and response for /admin/config/synonyms.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"uri": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "POST",
"rel": "createSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "DELETE",
"rel": "deleteSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms"
}
],
"name": "synonyms",
"accept": "application/vnd.sas.sand.synonym",
"start": 0,
"count": 7,
"items": [
{
"terms": "ant,spider=>insect"
},
{
"terms": "buffalo,cow,pig,sheep=>farm"
},
{
"terms": "cat,deer,dog,donkey,elephant,fox,gorilla,horse,hound,lion,monkey,moose,mouse,rabbit,racoon,rat,tiger=>mammal"
},
{
"terms": "shark,whale=>fish"
},
{
"terms": "frog,toad=>amphibian"
},
{
"terms": "dinosaur,dragon=>reptile"
},
{
"terms": "eagle,parrot,pheasant,puffin,quail,owl=>bird"
}
],
"limit": 20,
"version": 2
}
An example of a synonym using the contraction approach.
{
"terms": "bound,hop,leap=>jump"
}
An example of a synonym using the expansion approach.
{
"terms": "bound,hop,leap,jump"
}
An example of the request and response for /admin/config/synonyms.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"uri": "/svi-sand/admin/config/synonyms?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "POST",
"rel": "createSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.synonym"
},
{
"method": "DELETE",
"rel": "deleteSynonyms",
"href": "/svi-sand/admin/config/synonyms",
"uri": "/svi-sand/admin/config/synonyms"
}
],
"name": "synonyms",
"accept": "application/vnd.sas.sand.synonym",
"start": 0,
"count": 7,
"items": [
{
"terms": "ant,spider=>insect"
},
{
"terms": "buffalo,cow,pig,sheep=>farm"
},
{
"terms": "cat,deer,dog,donkey,elephant,fox,gorilla,horse,hound,lion,monkey,moose,mouse,rabbit,racoon,rat,tiger=>mammal"
},
{
"terms": "shark,whale=>fish"
},
{
"terms": "frog,toad=>amphibian"
},
{
"terms": "dinosaur,dragon=>reptile"
},
{
"terms": "eagle,parrot,pheasant,puffin,quail,owl=>bird"
}
],
"limit": 20,
"version": 2
}
An example of a synonym using the contraction approach.
{
"terms": "bound,hop,leap=>jump"
}
An example of a synonym using the expansion approach.
{
"terms": "bound,hop,leap,jump"
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The request succeeded. | synonymCollection |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Deletes the list of synonyms
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/config/synonyms
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/synonyms',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/admin/config/synonyms')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/config/synonyms", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/config/synonyms
Deletes the list of synonyms for synonym searching.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Get the configuration for all types
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/config/types \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/admin/config/types',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.get('https://example.com/svi-sand/admin/config/types', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/config/types", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/config/types
Returns the configuration for all of the types.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first type to include in the current page. |
limit | query | integer | false | The maximum number of types to include in each page. |
namesOnly | query | boolean | false | Whether to return the names of the types rather than their configuration. |
Example responses
An example of the response from /admin/config/types.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types?start=0&limit=20",
"uri": "/svi-sand/admin/config/types?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "next",
"href": "/svi-sand/admin/config/types?start=20&limit=20",
"uri": "/svi-sand/admin/config/types?start=20&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "last",
"href": "/svi-sand/admin/config/types?start=20&limit=20",
"uri": "/svi-sand/admin/config/types?start=20&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
],
"name": "types",
"accept": "application/vnd.sas.sand.type",
"start": 0,
"count": 27,
"items": [
{
"solution": "sas_visual_investigator_default",
"name": "address",
"displayName": "Address",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/address",
"uri": "/svi-sand/admin/config/types/address",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/address",
"uri": "/svi-sand/admin/config/types/address",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/address",
"uri": "/svi-sand/admin/config/types/address"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "business",
"displayName": "Business",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/business",
"uri": "/svi-sand/admin/config/types/business",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/business",
"uri": "/svi-sand/admin/config/types/business",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/business",
"uri": "/svi-sand/admin/config/types/business"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "business_customers",
"displayName": "Business Customer",
"category": "entity",
"fields": {
"aml_alert_count": {
"displayName": "AML Alert Count",
"type": "integer",
"options": {}
},
"aml_alert_flag": {
"displayName": "AML Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"bus_cust_type": {
"displayName": "Business Customer Type",
"type": "text",
"options": {
"features": [
"search",
"sort",
"facet"
]
}
},
"business_alt_industry1": {
"displayName": "Business Alt Industry 1",
"type": "integer",
"options": {}
},
"business_alt_industry2": {
"displayName": "Business Alt Industry 2",
"type": "integer",
"options": {}
},
"business_cntry_prim_op": {
"displayName": "Business Cntry Prim Op",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"business_country_registration": {
"displayName": "Business Country Registration",
"type": "text",
"options": {
"features": [
"search",
"facet"
]
}
},
"business_details_address": {
"displayName": "business_details_address",
"type": "nested",
"options": {},
"innerFields": {
"address_id": {
"displayName": "Address Id",
"type": "text",
"options": {
"features": []
}
},
"address_line_one": {
"displayName": "Address Line One",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"address_line_three": {
"displayName": "Address Line Three",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"consolidated_address": {
"displayName": "Consolidated Address",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double",
"options": {}
},
"latitude": {
"displayName": "Latitude",
"type": "double",
"options": {}
},
"longitude": {
"displayName": "Longitude",
"type": "double",
"options": {}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"residence_country": {
"displayName": "Residence Country",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"business_details_email": {
"displayName": "business_details_email",
"type": "nested",
"options": {},
"innerFields": {
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"email_id": {
"displayName": "Email Id",
"type": "text",
"options": {
"features": []
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"business_details_telephon": {
"displayName": "business_details_telephon",
"type": "nested",
"options": {},
"innerFields": {
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"phone_id": {
"displayName": "Phone Id",
"type": "text",
"options": {
"features": []
}
},
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"business_incorporation_date": {
"displayName": "Business Incorporation Date",
"type": "date",
"options": {}
},
"business_primary_industry": {
"displayName": "Business Primary Industry",
"type": "integer",
"options": {}
},
"business_registered_name": {
"displayName": "Business Registered Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"business_registration_number": {
"displayName": "Business Registration Number",
"type": "integer",
"options": {}
},
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"customer_name": {
"displayName": "Customer Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "integer",
"options": {}
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": [
"search",
"sort",
"facet"
]
}
},
"employee_flag": {
"displayName": "Employee Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"fraud_alert_count": {
"displayName": "Fraud Alert Count",
"type": "integer",
"options": {}
},
"fraud_alert_flag": {
"displayName": "Fraud Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"reg_disclosure_ind": {
"displayName": "Reg Disclosure Ind",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"residential_status": {
"displayName": "Residential Status",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"sanctions_alert_count": {
"displayName": "Sanctions Alert Count",
"type": "integer",
"options": {}
},
"sanctions_alert_flag": {
"displayName": "Sanctions Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"special_category_code": {
"displayName": "Special Category Code",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
},
"options": {
"dynamic": "false",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {
"summary": {
"fields": [
"business_registration_number",
"bus_cust_type",
"customer_id_number",
"customer_type"
],
"highlighting": {
"bus_cust_type": {
"fragments": 3,
"fragmentSize": 150
},
"business_cntry_prim_op": {
"fragments": 3,
"fragmentSize": 150
},
"business_country_registration": {
"fragments": 3,
"fragmentSize": 150
},
"business_registered_name": {
"fragments": 3,
"fragmentSize": 150
},
"customer_name": {
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"business_registration_number",
"bus_cust_type",
"customer_id_number",
"customer_type"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "business_country_registration",
"limit": 100,
"displayLimit": 10
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "business_incorporation_date",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"id": "4b448832-ddaa-46ed-a65b-12ef62c36089",
"fields": {
"category": "business incorporated",
"label": "Business Incorporated",
"description": "<br>Registration Number: {business_registration_number}",
"pointTimestamp": "{business_incorporation_date}"
}
},
{
"id": "f9f28b7c-de04-41a9-b962-95471e650df1",
"root": "business_details_address",
"fields": {
"category": "business address",
"label": "{/business_registered_name}",
"description": "<br>Registration Number: {/business_registration_number}<br>Address: {consolidated_address}",
"longitude": "longitude",
"latitude": "latitude"
}
}
],
"label": {
"template": "{0}",
"values": [
"business_registered_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/business_customers",
"uri": "/svi-sand/admin/config/types/business_customers",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/business_customers",
"uri": "/svi-sand/admin/config/types/business_customers",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/business_customers",
"uri": "/svi-sand/admin/config/types/business_customers"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "email",
"displayName": "Email",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/email",
"uri": "/svi-sand/admin/config/types/email",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/email",
"uri": "/svi-sand/admin/config/types/email",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/email",
"uri": "/svi-sand/admin/config/types/email"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "employer",
"displayName": "Employer",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/employer",
"uri": "/svi-sand/admin/config/types/employer",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/employer",
"uri": "/svi-sand/admin/config/types/employer",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/employer",
"uri": "/svi-sand/admin/config/types/employer"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "individual",
"displayName": "Individual",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/individual",
"uri": "/svi-sand/admin/config/types/individual",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/individual",
"uri": "/svi-sand/admin/config/types/individual",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/individual",
"uri": "/svi-sand/admin/config/types/individual"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "individual_customers",
"displayName": "Individual Customers",
"category": "entity",
"fields": {
"aml_alert_count": {
"displayName": "AML Alert Count",
"type": "integer",
"options": {}
},
"aml_alert_flag": {
"displayName": "AML Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"bus_cust_type": {
"displayName": "Business Customer Type",
"type": "text",
"options": {
"features": [
"search",
"facet"
]
}
},
"cust_emp_start_date": {
"displayName": "Employee Start Date",
"type": "date",
"options": {}
},
"cust_graduation_date": {
"displayName": "Customer Graduation Date",
"type": "date",
"options": {}
},
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"customer_name": {
"displayName": "Customer Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "integer",
"options": {}
},
"customer_status": {
"displayName": "Customer Status",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": [
"search",
"sort",
"facet"
]
}
},
"date_of_birth": {
"displayName": "Date Of Birth",
"type": "date",
"options": {}
},
"deceased_indicator": {
"displayName": "Deceased Indicator",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"dual_citizenship_ind": {
"displayName": "Dual Citizenship Ind",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"employee_flag": {
"displayName": "Employee Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"employer_country": {
"displayName": "Employer Country",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"employer_name": {
"displayName": "Employer Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"employment_status": {
"displayName": "Employment Status",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"family_name": {
"displayName": "Family Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"forename": {
"displayName": "Forename",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"fraud_alert_count": {
"displayName": "Fraud Alert Count",
"type": "integer",
"options": {}
},
"fraud_alert_flag": {
"displayName": "Fraud Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"full_name": {
"displayName": "Full Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"gender": {
"displayName": "Gender",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"individual_details_addres": {
"displayName": "individual_details_addres",
"type": "nested",
"options": {},
"innerFields": {
"address_id": {
"displayName": "Address Id",
"type": "text",
"options": {
"features": []
}
},
"address_line_one": {
"displayName": "Address Line One",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"address_line_three": {
"displayName": "Address Line Three",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"consolidated_address": {
"displayName": "Consolidated Address",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"latitude": {
"displayName": "Latitude",
"type": "double",
"options": {}
},
"longitude": {
"displayName": "Longitude",
"type": "double",
"options": {}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"residence_country": {
"displayName": "Residence Country",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"individual_details_email": {
"displayName": "individual_details_email",
"type": "nested",
"options": {},
"innerFields": {
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"email_id": {
"displayName": "Email Id",
"type": "text",
"options": {
"features": []
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"individual_details_teleph": {
"displayName": "individual_details_teleph",
"type": "nested",
"options": {},
"innerFields": {
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"phone_id": {
"displayName": "Phone Id",
"type": "text",
"options": {
"features": []
}
},
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"individual_title": {
"displayName": "Individual Title",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"kyc_monthly_net_income": {
"displayName": "KYC Monthly Net Income",
"type": "double",
"options": {}
},
"kyc_monthly_outgoings": {
"displayName": "KYC Monthly Outgoings",
"type": "double",
"options": {}
},
"maiden_name": {
"displayName": "Maiden Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"middle_name_one": {
"displayName": "Middle Name One",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"middle_name_two": {
"displayName": "Middle Name Two",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"name_suffix": {
"displayName": "Name Suffix",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"nationality": {
"displayName": "Nationality",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"personal_national_id_number": {
"displayName": "Personal National Id Number",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"proof_of_identification_type": {
"displayName": "Proof of Identification Type",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"reg_disclosure_ind": {
"displayName": "Reg Disclosure Ind",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"residential_status": {
"displayName": "Residential Status",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"sanctions_alert_count": {
"displayName": "Sanctions Alert Count",
"type": "integer",
"options": {}
},
"sanctions_alert_flag": {
"displayName": "Sanctions Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"special_category_code": {
"displayName": "Special Category Code",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
},
"options": {
"dynamic": "false",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {
"summary": {
"fields": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
],
"highlighting": {
"customer_name": {
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"fragments": 3,
"fragmentSize": 150
},
"full_name": {
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"customer_name",
"customer_type",
"personal_national_id_number",
"customer_risk_rating",
"customer_status"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "date_of_birth",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"id": "82d115eb-18ae-4ee7-9ddb-15e4edcb4647",
"fields": {
"category": "customer dob",
"label": "Customer Date of Birth",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{date_of_birth}"
}
},
{
"id": "cbf46eb8-2f67-45da-900f-cb9318b167e7",
"root": "individual_details_addres",
"fields": {
"category": "customer address",
"label": "Customer: {/customer_name}",
"description": "<br>Name: {/customer_name}<br>Type: {/customer_type}",
"longitude": "longitude",
"latitude": "latitude"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"forename",
"family_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/individual_customers",
"uri": "/svi-sand/admin/config/types/individual_customers",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/individual_customers",
"uri": "/svi-sand/admin/config/types/individual_customers",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/individual_customers",
"uri": "/svi-sand/admin/config/types/individual_customers"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
}
],
"limit": 20,
"version": 2
}
An example of the response from /admin/config/types?namesOnly=true.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types?start=0&limit=20",
"uri": "/svi-sand/admin/config/types?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "next",
"href": "/svi-sand/admin/config/types?start=20&limit=20",
"uri": "/svi-sand/admin/config/types?start=20&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "last",
"href": "/svi-sand/admin/config/types?start=20&limit=20",
"uri": "/svi-sand/admin/config/types?start=20&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
],
"name": "types",
"accept": "application/vnd.sas.sand.type",
"start": 0,
"count": 27,
"items": [
{
"name": "address",
"config": {}
},
{
"name": "business",
"config": {}
},
{
"name": "business_customers",
"config": {}
},
{
"name": "email",
"config": {}
},
{
"name": "employer",
"config": {}
},
{
"name": "individual",
"config": {}
},
{
"name": "individual_customers",
"config": {}
}
],
"limit": 20,
"version": 2
}
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
An example of the response from /admin/config/types.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types?start=0&limit=20",
"uri": "/svi-sand/admin/config/types?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "next",
"href": "/svi-sand/admin/config/types?start=20&limit=20",
"uri": "/svi-sand/admin/config/types?start=20&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "last",
"href": "/svi-sand/admin/config/types?start=20&limit=20",
"uri": "/svi-sand/admin/config/types?start=20&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
],
"name": "types",
"accept": "application/vnd.sas.sand.type",
"start": 0,
"count": 27,
"items": [
{
"solution": "sas_visual_investigator_default",
"name": "address",
"displayName": "Address",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/address",
"uri": "/svi-sand/admin/config/types/address",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/address",
"uri": "/svi-sand/admin/config/types/address",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/address",
"uri": "/svi-sand/admin/config/types/address"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "business",
"displayName": "Business",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/business",
"uri": "/svi-sand/admin/config/types/business",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/business",
"uri": "/svi-sand/admin/config/types/business",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/business",
"uri": "/svi-sand/admin/config/types/business"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "business_customers",
"displayName": "Business Customer",
"category": "entity",
"fields": {
"aml_alert_count": {
"displayName": "AML Alert Count",
"type": "integer",
"options": {}
},
"aml_alert_flag": {
"displayName": "AML Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"bus_cust_type": {
"displayName": "Business Customer Type",
"type": "text",
"options": {
"features": [
"search",
"sort",
"facet"
]
}
},
"business_alt_industry1": {
"displayName": "Business Alt Industry 1",
"type": "integer",
"options": {}
},
"business_alt_industry2": {
"displayName": "Business Alt Industry 2",
"type": "integer",
"options": {}
},
"business_cntry_prim_op": {
"displayName": "Business Cntry Prim Op",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"business_country_registration": {
"displayName": "Business Country Registration",
"type": "text",
"options": {
"features": [
"search",
"facet"
]
}
},
"business_details_address": {
"displayName": "business_details_address",
"type": "nested",
"options": {},
"innerFields": {
"address_id": {
"displayName": "Address Id",
"type": "text",
"options": {
"features": []
}
},
"address_line_one": {
"displayName": "Address Line One",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"address_line_three": {
"displayName": "Address Line Three",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"consolidated_address": {
"displayName": "Consolidated Address",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"customer_id_number": {
"displayName": "Customer ID Number",
"type": "double",
"options": {}
},
"latitude": {
"displayName": "Latitude",
"type": "double",
"options": {}
},
"longitude": {
"displayName": "Longitude",
"type": "double",
"options": {}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"residence_country": {
"displayName": "Residence Country",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"business_details_email": {
"displayName": "business_details_email",
"type": "nested",
"options": {},
"innerFields": {
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"email_id": {
"displayName": "Email Id",
"type": "text",
"options": {
"features": []
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"business_details_telephon": {
"displayName": "business_details_telephon",
"type": "nested",
"options": {},
"innerFields": {
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"phone_id": {
"displayName": "Phone Id",
"type": "text",
"options": {
"features": []
}
},
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"business_incorporation_date": {
"displayName": "Business Incorporation Date",
"type": "date",
"options": {}
},
"business_primary_industry": {
"displayName": "Business Primary Industry",
"type": "integer",
"options": {}
},
"business_registered_name": {
"displayName": "Business Registered Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"business_registration_number": {
"displayName": "Business Registration Number",
"type": "integer",
"options": {}
},
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"customer_name": {
"displayName": "Customer Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "integer",
"options": {}
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": [
"search",
"sort",
"facet"
]
}
},
"employee_flag": {
"displayName": "Employee Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"fraud_alert_count": {
"displayName": "Fraud Alert Count",
"type": "integer",
"options": {}
},
"fraud_alert_flag": {
"displayName": "Fraud Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"reg_disclosure_ind": {
"displayName": "Reg Disclosure Ind",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"residential_status": {
"displayName": "Residential Status",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"sanctions_alert_count": {
"displayName": "Sanctions Alert Count",
"type": "integer",
"options": {}
},
"sanctions_alert_flag": {
"displayName": "Sanctions Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"special_category_code": {
"displayName": "Special Category Code",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
},
"options": {
"dynamic": "false",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {
"summary": {
"fields": [
"business_registration_number",
"bus_cust_type",
"customer_id_number",
"customer_type"
],
"highlighting": {
"bus_cust_type": {
"fragments": 3,
"fragmentSize": 150
},
"business_cntry_prim_op": {
"fragments": 3,
"fragmentSize": 150
},
"business_country_registration": {
"fragments": 3,
"fragmentSize": 150
},
"business_registered_name": {
"fragments": 3,
"fragmentSize": 150
},
"customer_name": {
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"business_registration_number",
"bus_cust_type",
"customer_id_number",
"customer_type"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "business_country_registration",
"limit": 100,
"displayLimit": 10
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "business_incorporation_date",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"id": "4b448832-ddaa-46ed-a65b-12ef62c36089",
"fields": {
"category": "business incorporated",
"label": "Business Incorporated",
"description": "<br>Registration Number: {business_registration_number}",
"pointTimestamp": "{business_incorporation_date}"
}
},
{
"id": "f9f28b7c-de04-41a9-b962-95471e650df1",
"root": "business_details_address",
"fields": {
"category": "business address",
"label": "{/business_registered_name}",
"description": "<br>Registration Number: {/business_registration_number}<br>Address: {consolidated_address}",
"longitude": "longitude",
"latitude": "latitude"
}
}
],
"label": {
"template": "{0}",
"values": [
"business_registered_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/business_customers",
"uri": "/svi-sand/admin/config/types/business_customers",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/business_customers",
"uri": "/svi-sand/admin/config/types/business_customers",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/business_customers",
"uri": "/svi-sand/admin/config/types/business_customers"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "email",
"displayName": "Email",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/email",
"uri": "/svi-sand/admin/config/types/email",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/email",
"uri": "/svi-sand/admin/config/types/email",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/email",
"uri": "/svi-sand/admin/config/types/email"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "employer",
"displayName": "Employer",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/employer",
"uri": "/svi-sand/admin/config/types/employer",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/employer",
"uri": "/svi-sand/admin/config/types/employer",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/employer",
"uri": "/svi-sand/admin/config/types/employer"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "individual",
"displayName": "Individual",
"category": "resolvedEntity",
"options": {
"dynamic": "true",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/individual",
"uri": "/svi-sand/admin/config/types/individual",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/individual",
"uri": "/svi-sand/admin/config/types/individual",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/individual",
"uri": "/svi-sand/admin/config/types/individual"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
},
{
"solution": "sas_visual_investigator_default",
"name": "individual_customers",
"displayName": "Individual Customers",
"category": "entity",
"fields": {
"aml_alert_count": {
"displayName": "AML Alert Count",
"type": "integer",
"options": {}
},
"aml_alert_flag": {
"displayName": "AML Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"bus_cust_type": {
"displayName": "Business Customer Type",
"type": "text",
"options": {
"features": [
"search",
"facet"
]
}
},
"cust_emp_start_date": {
"displayName": "Employee Start Date",
"type": "date",
"options": {}
},
"cust_graduation_date": {
"displayName": "Customer Graduation Date",
"type": "date",
"options": {}
},
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"customer_name": {
"displayName": "Customer Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"customer_risk_rating": {
"displayName": "Customer Risk Rating",
"type": "integer",
"options": {}
},
"customer_status": {
"displayName": "Customer Status",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"customer_type": {
"displayName": "Customer Type",
"type": "text",
"options": {
"features": [
"search",
"sort",
"facet"
]
}
},
"date_of_birth": {
"displayName": "Date Of Birth",
"type": "date",
"options": {}
},
"deceased_indicator": {
"displayName": "Deceased Indicator",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"dual_citizenship_ind": {
"displayName": "Dual Citizenship Ind",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"employee_flag": {
"displayName": "Employee Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"employer_country": {
"displayName": "Employer Country",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"employer_name": {
"displayName": "Employer Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"employment_status": {
"displayName": "Employment Status",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"family_name": {
"displayName": "Family Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"forename": {
"displayName": "Forename",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"fraud_alert_count": {
"displayName": "Fraud Alert Count",
"type": "integer",
"options": {}
},
"fraud_alert_flag": {
"displayName": "Fraud Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"full_name": {
"displayName": "Full Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"gender": {
"displayName": "Gender",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"individual_details_addres": {
"displayName": "individual_details_addres",
"type": "nested",
"options": {},
"innerFields": {
"address_id": {
"displayName": "Address Id",
"type": "text",
"options": {
"features": []
}
},
"address_line_one": {
"displayName": "Address Line One",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"address_line_three": {
"displayName": "Address Line Three",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"consolidated_address": {
"displayName": "Consolidated Address",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"latitude": {
"displayName": "Latitude",
"type": "double",
"options": {}
},
"longitude": {
"displayName": "Longitude",
"type": "double",
"options": {}
},
"postal_code": {
"displayName": "Postal Code",
"type": "text",
"options": {
"features": []
}
},
"residence_country": {
"displayName": "Residence Country",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"individual_details_email": {
"displayName": "individual_details_email",
"type": "nested",
"options": {},
"innerFields": {
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"email_address": {
"displayName": "Email Address",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"email_id": {
"displayName": "Email Id",
"type": "text",
"options": {
"features": []
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"individual_details_teleph": {
"displayName": "individual_details_teleph",
"type": "nested",
"options": {},
"innerFields": {
"customer_id_number": {
"displayName": "Customer Id Number",
"type": "double",
"options": {}
},
"phone_id": {
"displayName": "Phone Id",
"type": "text",
"options": {
"features": []
}
},
"phone_number": {
"displayName": "Phone Number",
"type": "text",
"options": {
"features": []
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
}
},
"individual_title": {
"displayName": "Individual Title",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"kyc_monthly_net_income": {
"displayName": "KYC Monthly Net Income",
"type": "double",
"options": {}
},
"kyc_monthly_outgoings": {
"displayName": "KYC Monthly Outgoings",
"type": "double",
"options": {}
},
"maiden_name": {
"displayName": "Maiden Name",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"middle_name_one": {
"displayName": "Middle Name One",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"middle_name_two": {
"displayName": "Middle Name Two",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"name_suffix": {
"displayName": "Name Suffix",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"nationality": {
"displayName": "Nationality",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"personal_national_id_number": {
"displayName": "Personal National Id Number",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"proof_of_identification_type": {
"displayName": "Proof of Identification Type",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"reg_disclosure_ind": {
"displayName": "Reg Disclosure Ind",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"residential_status": {
"displayName": "Residential Status",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"sanctions_alert_count": {
"displayName": "Sanctions Alert Count",
"type": "integer",
"options": {}
},
"sanctions_alert_flag": {
"displayName": "Sanctions Alert Flag",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"special_category_code": {
"displayName": "Special Category Code",
"type": "text",
"options": {
"features": [
"search"
]
}
},
"valid_from": {
"displayName": "Valid From",
"type": "date",
"options": {}
},
"valid_to": {
"displayName": "Valid To",
"type": "date",
"options": {}
},
"version": {
"displayName": "Version",
"type": "long",
"options": {
"include_in_all": false
}
}
},
"options": {
"dynamic": "false",
"indexed_for_search": true,
"number_of_replicas": 1,
"number_of_shards": 1,
"refresh_interval": 1
},
"config": {
"summary": {
"fields": [
"personal_national_id_number",
"full_name",
"customer_type",
"customer_status",
"customer_risk_rating"
],
"highlighting": {
"customer_name": {
"fragments": 3,
"fragmentSize": 150
},
"customer_type": {
"fragments": 3,
"fragmentSize": 150
},
"full_name": {
"fragments": 3,
"fragmentSize": 150
}
}
},
"table": {
"fields": [
"customer_name",
"customer_type",
"personal_national_id_number",
"customer_risk_rating",
"customer_status"
]
},
"facets": [
{
"type": "terms",
"field": "bus_cust_type",
"limit": 100
},
{
"type": "terms",
"field": "customer_type",
"limit": 100
},
{
"type": "dateRange",
"field": "date_of_birth",
"accuracy": "day",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte"
},
"ranges": []
}
],
"events": [
{
"id": "82d115eb-18ae-4ee7-9ddb-15e4edcb4647",
"fields": {
"category": "customer dob",
"label": "Customer Date of Birth",
"description": "<br>Name: {customer_name}<br>Type: {customer_type}",
"pointTimestamp": "{date_of_birth}"
}
},
{
"id": "cbf46eb8-2f67-45da-900f-cb9318b167e7",
"root": "individual_details_addres",
"fields": {
"category": "customer address",
"label": "Customer: {/customer_name}",
"description": "<br>Name: {/customer_name}<br>Type: {/customer_type}",
"longitude": "longitude",
"latitude": "latitude"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"forename",
"family_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/individual_customers",
"uri": "/svi-sand/admin/config/types/individual_customers",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/individual_customers",
"uri": "/svi-sand/admin/config/types/individual_customers",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "refresh",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/individual_customers",
"uri": "/svi-sand/admin/config/types/individual_customers"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.sand.type",
"responseType": "application/vnd.sas.sand.type"
}
]
}
],
"limit": 20,
"version": 2
}
An example of the response from /admin/config/types?namesOnly=true.
{
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types?start=0&limit=20",
"uri": "/svi-sand/admin/config/types?start=0&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "collection",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "next",
"href": "/svi-sand/admin/config/types?start=20&limit=20",
"uri": "/svi-sand/admin/config/types?start=20&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
},
{
"method": "GET",
"rel": "last",
"href": "/svi-sand/admin/config/types?start=20&limit=20",
"uri": "/svi-sand/admin/config/types?start=20&limit=20",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
],
"name": "types",
"accept": "application/vnd.sas.sand.type",
"start": 0,
"count": 27,
"items": [
{
"name": "address",
"config": {}
},
{
"name": "business",
"config": {}
},
{
"name": "business_customers",
"config": {}
},
{
"name": "email",
"config": {}
},
{
"name": "employer",
"config": {}
},
{
"name": "individual",
"config": {}
},
{
"name": "individual_customers",
"config": {}
}
],
"limit": 20,
"version": 2
}
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | typeCollection |
Get the headers for the get all type configuration operation
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/config/types
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/types',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/config/types')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/config/types", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/config/types
Returns the headers for the get all type configuration operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first type to include in the current page. |
limit | query | integer | false | The maximum number of types to include in each page. |
namesOnly | query | boolean | false | Whether to return the names of the types rather than their configuration. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
Creates a new type
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/config/types \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.type+json' \
-H 'Accept: application/vnd.sas.sand.type+json'
const inputBody = '{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.type+json',
'Accept':'application/vnd.sas.sand.type+json'
};
fetch('https://example.com/svi-sand/admin/config/types',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.type+json',
'Accept': 'application/vnd.sas.sand.type+json'
}
r = requests.post('https://example.com/svi-sand/admin/config/types', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.type+json"},
"Accept": []string{"application/vnd.sas.sand.type+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/config/types", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/config/types
Configures a new type. The request will be rejected if a type already exists with the same name.
Body parameter
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
validateOnly | query | boolean | false | Whether to validate the configuration without saving it. |
body | body | type | false | none |
Example responses
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
409 Response
{
"description": "An example of a 409 conflict Error message.",
"value": {
"errorCode": "95234",
"message": "An analyzer already exists with the name \"example\". ",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 409
}
}
{
"description": "An example of a 409 conflict Error message.",
"value": {
"errorCode": "95234",
"message": "An analyzer already exists with the name \"example\". ",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 409
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The request succeeded. | type |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
409 | Conflict | A type already exists with the given name. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Location | string | The URI of the new type. | |
201 | ETag | integer | The version number of the new type. |
Get the configuration for a single type
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/config/types/{type} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.type+json'
const headers = {
'Accept':'application/vnd.sas.sand.type+json'
};
fetch('https://example.com/svi-sand/admin/config/types/{type}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.type+json'
}
r = requests.get('https://example.com/svi-sand/admin/config/types/{type}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.type+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/config/types/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/config/types/{type}
Returns the configuration (including the current version number) for the specified type.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
Example responses
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | type |
404 | Not Found | The type does not exist. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The up-to-date version number of the type. |
Check the existence of a type
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/config/types/{type}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/types/{type}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/config/types/{type}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/config/types/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/config/types/{type}
Checks the existence of the specified type. 200 OK means that the type exists; 404 Not Found means that the type does not exist.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The type does not exist. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The up-to-date version number of the type. |
Updates the configuration for a single type
Code samples
# You can also use wget
curl -X PUT https://example.com/svi-sand/admin/config/types/{type} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.type+json' \
-H 'Accept: application/vnd.sas.sand.type+json' \
-H 'If-Match: 0'
const inputBody = '{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.type+json',
'Accept':'application/vnd.sas.sand.type+json',
'If-Match':'0'
};
fetch('https://example.com/svi-sand/admin/config/types/{type}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.type+json',
'Accept': 'application/vnd.sas.sand.type+json',
'If-Match': '0'
}
r = requests.put('https://example.com/svi-sand/admin/config/types/{type}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.type+json"},
"Accept": []string{"application/vnd.sas.sand.type+json"},
"If-Match": []string{"0"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://example.com/svi-sand/admin/config/types/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /admin/config/types/{type}
Updates the configuration for the specified type. The request will be rejected unless the specified version number matches the current version. This is to ensure the latest version of the configuration is being edited and not an out-of-date version. If the new configuration contains breaking changes, such as the field type or events configuration has changed, the changes are saved, but also require the data to be re-indexed to take effect. A localized message is included in the response if this is the case. The /admin/indices resource can be used to re-index the data.
Body parameter
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
validateOnly | query | boolean | false | Whether to validate the configuration and check for breaking changes without importing it. |
waitForRefresh | query | boolean | false | Whether to wait for any index-related operations to be applied prior to the response being returned. |
If-Match | header | integer | true | Specifies the version number of the type that is to be edited. |
body | body | type | false | none |
Example responses
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
An example of the request and response for /admin/config/types/{type}.
{
"solution": "Insurance",
"name": "person",
"displayName": "Person",
"category": "entity",
"fields": {
"first_name": {
"displayName": "First Name",
"type": "text",
"options": {
"features": [
"search",
"sort"
]
}
},
"last_name": {
"displayName": "Last Name",
"type": "text",
"options": {
"features": [
"search",
"facet",
"sort"
]
}
},
"dob": {
"displayName": "Date of Birth",
"type": "date",
"options": {
"format": "strict_date_optional_time||epoch_millis"
}
},
"addresses": {
"displayName": "Addresses",
"type": "object",
"innerFields": {
"address": {
"displayName": "Address",
"type": "text"
},
"city": {
"displayName": "City",
"type": "text",
"options": {
"features": [
"facet"
]
}
},
"areaCode": {
"displayName": "Area Code",
"type": "text",
"options": {
"features": []
}
},
"country": {
"displayName": "Country",
"type": "text",
"options": {
"features": []
}
},
"lat": {
"displayName": "Latitude",
"type": "double"
},
"lon": {
"displayName": "Longitude",
"type": "double"
}
}
}
},
"options": {
"number_of_replicas": 2
},
"config": {
"summary": {
"fields": [
"dob"
],
"highlighting": {
"first_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
},
"last_name": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 50
}
}
},
"table": {
"fields": [
"first_name",
"last_name",
"dob"
]
},
"facets": [
{
"type": "terms",
"field": "last_name",
"limit": 100
},
{
"type": "terms",
"field": "addresses.city",
"limit": 100
}
],
"textAnalytics": {
"fields": [
"first_name",
"last_name"
]
},
"events": [
{
"fields": {
"category": "birthday",
"label": "{first_name} {last_name}",
"description": "Born on {dob}",
"pointTimestamp": "{dob}"
}
},
{
"root": "addresses",
"fields": {
"category": "address",
"label": "{/first_name} {/last_name}",
"description": "Resides at {address} in {city}, {country}",
"latitude": "lat",
"longitude": "lon"
}
}
],
"label": {
"template": "{0} {1}",
"values": [
"first_name",
"last_name"
]
}
},
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "PUT",
"rel": "update",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person",
"type": "application/vnd.sas.sand.type"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/config/types/person",
"uri": "/svi-sand/admin/config/types/person"
},
{
"method": "GET",
"rel": "up",
"href": "/svi-sand/admin/config/types",
"uri": "/svi-sand/admin/config/types",
"type": "application/vnd.sas.collection",
"itemType": "application/vnd.sas.sand.type"
}
]
}
An example of event configuration that extracts at most one event per array entry in the "old_addresses" field based on the root path. As the field specifiers are not delimited by /, each event is populated from the inner fields of the corresponding array entry. Since the tokenized text for the interval values refer to a single field, those fields must be of type date and contain valid ISO formatted date/time values. As "state" is a required field, events are extracted only if the array entry has a value for that field as well as either a valid GeoJSON value in the "location" field or values in both the "date_from" and "date_to" fields. The absence of a "city" field value causes that token to be removed from the description without being replaced with a value.
{
"root": "old_addresses",
"fields": {
"category": "Previous Address",
"intervalStartTimestamp": "{date_from}",
"intervalEndTimestamp": "{date_to}",
"description": "lived in {city}, {state}",
"geoJson": "location"
},
"requiredFields": [
"state"
]
}
An example of event configuration that extracts a single event based on an object's top-level "lon", "lat", "city" and "state" fields. As there are no required fields defined, the event is extracted only if an object contains a numerical value in the "lon" field constituting a valid longitude and a numerical value in the "lat" field constituting a valid latitude value. The absence of "city" or "state" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Primary Address",
"longitude": "lon",
"latitude": "lat",
"description": "lives in {city}, {state}"
}
}
An example of event configuration that shows how to mix absolute and relative paths in field specifiers. The example is based on an object with 4 levels of sub-objects (none of which are arrays); "level1" is a top-level field in the object containing a "level2" field and so on. In this case, a single event is extracted from the "level3" sub-object comprised of the "level3_date" time value and a description based on the "level3_text" field in this sub-object, the "level2_text" field from this sub-object's parent ("level2") and the "level4_text" from this sub-object's child ("level4"). Given that pointTimestamp refers to a single field, that field must be of type date. As there are required fields, the event is extracted only if these have values as well as "level3_date" having a value.
{
"root": "level1/level2/level3",
"fields": {
"category": "Complex Path Example Event",
"pointTimestamp": "{level3_date}",
"description": "this level: {level3_text} parent level: {/level1/level2/level2_text} child level: {level4/level4_text}"
},
"requiredFields": [
"level3_text",
"level4/level4_text",
"/level1/level2/level2_text"
]
}
An example of event configuration that extracts a single event based on an object's top-level "opendate", "account_holder_forename", and "account_holder_surname" fields. Given that pointTimestamp refers to a single field, that field must be of type date thereby containing an ISO formatted date/time value. As there are no required fields defined, the event is extracted only if an object has a value for "opendate". The absence of "account_holder_forename" or "account_holder_surname" field values causes those tokens to be removed from the description without being replaced with a value.
{
"fields": {
"category": "Account Opened",
"pointTimestamp": "{opendate}",
"description": "opened by {account_holder_forename} {account_holder_surname}"
}
}
An example of the configuration for the date range facet based on a report date. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters but not their own filter on an exact value.
{
"type": "dateRange",
"field": "reported",
"accuracy": "day",
"filter": {
"allowExact": false,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "dd-MM-yyyy"
},
"ranges": [
{
"description": "Before 1980",
"id": "bdcaa922-3f90-4ae1-b6c0-4ba7de60c312",
"lt": "1980-01-01"
},
{
"description": "[1980, 1985]",
"id": "c3a442ce-ec8c-44c4-8015-1137ab4c83ad",
"gte": "1980-01-01",
"lte": "1985-12-31"
},
{
"description": "[1986, 1990]",
"id": "03834003-801f-48a9-a219-b2aa6376138c",
"gte": "1986-01-01",
"lte": "1990-12-31"
},
{
"description": "[1991, 2000]",
"id": "70c4b548-a275-409e-9c93-6279e29b6ac6",
"gte": "1991-01-01",
"lte": "2000-12-31"
},
{
"description": "After 2000",
"id": "31bda348-cf8c-46c8-85be-20809102c61f",
"gt": "2000-01-01"
}
]
}
An example of the configuration for the numerical range facet based on transaction amounts. In addition to the administrator defined ranges, the filter section suggests that clients are allowed to define their own range filters.
{
"type": "range",
"field": "amount",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gte",
"toType": "lte",
"displayFormat": "####"
},
"ranges": [
{
"description": "Less than 50",
"id": "8fabe28c-3268-4ab2-bc1b-d073ce5312b2",
"lt": 50
},
{
"description": "[50, 100)",
"id": "ce734c46-a869-4b60-8e00-e2e56a7a7c85",
"gte": 50,
"lt": 100
},
{
"description": "[100, 150)",
"id": "e6f824ff-313e-4b6d-bd43-654fda41bdcf",
"gte": 100,
"lt": 150
},
{
"description": "[150, 200)",
"id": "399844ea-f03b-4e2d-aa3a-c07c93ba75fb",
"gte": 150,
"lt": 200
},
{
"description": "Greater than 200",
"id": "27edf5c1-d54d-4c9e-b16a-0fcba599ae57",
"gt": 200
}
]
}
An example of the configuration for the terms facet that is based on the city field show casing how to order results highest count first.
{
"type": "terms",
"field": "city",
"limit": 50,
"displayLimit": 10,
"minDocCount": 1,
"orderBy": "count",
"orderDirection": "desc"
}
An example of the configuration for the type facet show casing how to sort results by alphabetical order.
{
"type": "type",
"displayLimit": 8,
"minDocCount": 1,
"orderBy": "alpha",
"orderDirection": "asc"
}
An example of the graph configuration that includes the specified fields in graph responses.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the label configuration that generates the templated label from the values in the specified fields.
{
"template": "{0} {1} born on {2}",
"values": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the summary configuration that includes specific fields to return and well as a field to generate highlighting for when its content matches a search query.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
],
"highlighting": {
"fullName": {
"highlighter": "plain",
"fragments": 3,
"fragmentSize": 100
}
}
}
An example of the table configuration that includes the specified fields.
{
"fields": [
"firstName",
"lastName",
"dateOfBirth"
]
}
An example of the text analytics configuration that includes the subject and body fields in the corpus and uses the from, to and cc fields for the Sankey diagrams.
{
"fields": [
"subject",
"body"
],
"fromField": "from",
"toFields": [
"to",
"cc"
]
}
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
412 Response
{
"description": "An example of a 412 precondition failed Error message.",
"value": {
"errorCode": "95148",
"message": "The configuration update for entity type \"example\" refers to version 1 but the latest is 2.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 412
}
}
{
"description": "An example of a 412 precondition failed Error message.",
"value": {
"errorCode": "95148",
"message": "The configuration update for entity type \"example\" refers to version 1 but the latest is 2.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 412
}
}
428 Response
{
"description": "An example of a 428 precondition required Error message.",
"value": {
"errorCode": "95017",
"message": "The following parameter is missing from the request: example param",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 428
}
}
{
"description": "An example of a 428 precondition required Error message.",
"value": {
"errorCode": "95017",
"message": "The following parameter is missing from the request: example param",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 428
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | type |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
404 | Not Found | The type does not exist. | error2 |
412 | Precondition Failed | The request refers to an out-of-date version of the configuration. | error2 |
428 | Precondition Required | The request is missing the If-Match header. | error2 |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | ETag | integer | The up-to-date version number of the type. |
Delete the configuration for a single type
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/config/types/{type}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/config/types/{type}',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/admin/config/types/{type}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/config/types/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/config/types/{type}
Deletes the configuration and indexed data for the specified type. This operation cannot be undone without first exporting the configuration and making a backup of the indexed data directly from the underlying search engine.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Data
Indexed data-related endpoints.
Delete by query
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/data \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Content-Type: application/vnd.sas.sand.query.request+json' \
-H 'Accept: application/vnd.sas.error+json'
const inputBody = '{
"types": [
"person"
],
"query": {
"type": "text",
"language": "lucene",
"text": "forename:john AND surname:smith"
}
}';
const headers = {
'Content-Type':'application/vnd.sas.sand.query.request+json',
'Accept':'application/vnd.sas.error+json'
};
fetch('https://example.com/svi-sand/admin/data',
{
method: 'DELETE',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/vnd.sas.sand.query.request+json',
'Accept': 'application/vnd.sas.error+json'
}
r = requests.delete('https://example.com/svi-sand/admin/data', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/vnd.sas.sand.query.request+json"},
"Accept": []string{"application/vnd.sas.error+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/data", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/data
Deletes all of the indexed objects and relationships matching the given query. If no request body is provided, then all of the indexed objects and relationships will be deleted. This operation cannot be undone without first making a backup of the indexed data directly from the underlying search engine.
Body parameter
An example of a request to /admin/data that deletes all objects containing "john" in the forename field and "smith" in the surname field.
{
"types": [
"person"
],
"query": {
"type": "text",
"language": "lucene",
"text": "forename:john AND surname:smith"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
preserveNewestIndexName | query | boolean | false | Whether to preserve and reuse the name of the newest index for each type when creating the next searchable index. Creating new unsearchable indexes, or deleting indexes without this option, will cause the new indexes to have new unique names. Preserving the newest index name is useful when maintaining a read-only standby deployment for Disaster Avoidance as it allows the data to be re-indexed without changing the index name. For example, when applying a breaking configuration change from the active deployment. |
excludeCategoryAliases | query | boolean | false | Whether type category aliases should be excluded from the search. In particular, this should be set to true when the intention is to delete system relationships without deleting custom relationships as they both share the same type category alias. |
waitForRefresh | query | boolean | false | Whether to wait for any index-related operations to be applied prior to the response being returned. |
body | body | queryRequest | false | none |
Example responses
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Delete relationships for an entity type
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/data/{type}/relationships \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error+json'
const headers = {
'Accept':'application/vnd.sas.error+json'
};
fetch('https://example.com/svi-sand/admin/data/{type}/relationships',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error+json'
}
r = requests.delete('https://example.com/svi-sand/admin/data/{type}/relationships', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/data/{type}/relationships", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/data/{type}/relationships
Deletes all relationships relating to the entity or transaction type. This does not apply to relationships involving resolved entities. This operation cannot be undone without first making a backup of the indexed data directly from the underlying search engine.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
waitForRefresh | query | boolean | false | Whether to wait for any index-related operations to be applied prior to the response being returned. |
Example responses
400 Response
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
{
"description": "An example of a 400 bad request Error message.",
"value": {
"errorCode": "95002",
"message": "The parameter \"types\" cannot be null or empty. Please provide a value.",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 400
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
400 | Bad Request | The request is malformed or contains invalid parameter values. | error2 |
Index
Index related endpoints.
Create indices for all types
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/indices \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.collection+json'
const headers = {
'Accept':'application/vnd.sas.collection+json'
};
fetch('https://example.com/svi-sand/admin/indices',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.collection+json'
}
r = requests.post('https://example.com/svi-sand/admin/indices', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.collection+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/indices", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/indices
Ensures that an index exists for each configured type when the searchable query parameter is set to true, otherwise creates new unsearchable indices for each configured type. This is especially required when re-indexing data from a source database (see example Use Case Five). No errors will be reported if the indices already exist. Returns the name of the newest index for each type.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | integer | false | The index of the first index name to include in the current page. |
limit | query | integer | false | The maximum number of index names to include in each page. |
searchable | query | boolean | false | Whether to create searchable as opposed to unsearchable indices. |
Example responses
200 Response
{
"description": "An example of a response from admin/indices returning a list of the newest indices for each type.",
"value": {
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/admin/indices?start=0&limit=20",
"uri": "/svi-sand/admin/indices?start=0&limit=20",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "collection",
"href": "/svi-sand/admin/indices",
"uri": "/svi-sand/admin/indices",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "next",
"href": "/svi-sand/admin/indices?start=20&limit=20",
"uri": "/svi-sand/admin/indices?start=20&limit=20",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "last",
"href": "/svi-sand/admin/indices?start=20&limit=20",
"uri": "/svi-sand/admin/indices?start=20&limit=20",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
}
],
"name": "indices",
"accept": "application/vnd.sas.sand.index",
"start": 0,
"count": 2,
"items": [
{
"type": "document_link",
"name": "sand__document_link__1656665344057",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/indices/document_link",
"uri": "/svi-sand/admin/indices/document_link",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/indices/document_link",
"uri": "/svi-sand/admin/indices/document_link",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "makeSearchable",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/indices/document_link",
"uri": "/svi-sand/admin/indices/document_link"
}
]
},
{
"type": "shape",
"name": "sand__shape__1656608940265",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/indices/shape",
"uri": "/svi-sand/admin/indices/shape",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/indices/shape",
"uri": "/svi-sand/admin/indices/shape",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "makeSearchable",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/indices/shape",
"uri": "/svi-sand/admin/indices/shape"
}
]
}
],
"limit": 20,
"version": 2
}
}
{
"description": "An example of a response from admin/indices returning a list of the newest indices for each type.",
"value": {
"links": [
{
"method": "POST",
"rel": "self",
"href": "/svi-sand/admin/indices?start=0&limit=20",
"uri": "/svi-sand/admin/indices?start=0&limit=20",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "collection",
"href": "/svi-sand/admin/indices",
"uri": "/svi-sand/admin/indices",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "next",
"href": "/svi-sand/admin/indices?start=20&limit=20",
"uri": "/svi-sand/admin/indices?start=20&limit=20",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "last",
"href": "/svi-sand/admin/indices?start=20&limit=20",
"uri": "/svi-sand/admin/indices?start=20&limit=20",
"responseType": "application/vnd.sas.collection",
"responseItemType": "application/vnd.sas.sand.index"
}
],
"name": "indices",
"accept": "application/vnd.sas.sand.index",
"start": 0,
"count": 2,
"items": [
{
"type": "document_link",
"name": "sand__document_link__1656665344057",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/indices/document_link",
"uri": "/svi-sand/admin/indices/document_link",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/indices/document_link",
"uri": "/svi-sand/admin/indices/document_link",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "makeSearchable",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/indices/document_link",
"uri": "/svi-sand/admin/indices/document_link"
}
]
},
{
"type": "shape",
"name": "sand__shape__1656608940265",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/indices/shape",
"uri": "/svi-sand/admin/indices/shape",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/indices/shape",
"uri": "/svi-sand/admin/indices/shape",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "makeSearchable",
"href": "/svi-sand/admin/operations",
"uri": "/svi-sand/admin/operations",
"type": "application/vnd.sas.sand.operation.request",
"responseType": "application/vnd.sas.sand.operation.response"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/indices/shape",
"uri": "/svi-sand/admin/indices/shape"
}
]
}
],
"limit": 20,
"version": 2
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | indexCollection |
Delete the indices for all types
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/indices
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/indices',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.delete('https://example.com/svi-sand/admin/indices')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/indices", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/indices
Deletes the indexes (and therefore indexed data) for all of the configured types. This operation cannot be undone without first making a backup of the indexed data directly from the underlying search engine. No errors will be reported when indexes have already been deleted. If the intention is to reload the data after deleting all the indexes, one will need to make a POST request to /admin/indices to create empty indexes for all of the configured types prior to reloading the data.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
preserveNewestIndexName | query | boolean | false | Whether to preserve and reuse the name of the newest index for each type when creating the next searchable index. Creating new unsearchable indexes, or deleting indexes without this option, will cause the new indexes to have new unique names. Preserving the newest index name is useful when maintaining a read-only standby deployment for Disaster Avoidance as it allows the data to be re-indexed without changing the index name. For example, when applying a breaking configuration change from the active deployment. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
Get the index name for a single type
Code samples
# You can also use wget
curl -X GET https://example.com/svi-sand/admin/indices/{type} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.index+json'
const headers = {
'Accept':'application/vnd.sas.sand.index+json'
};
fetch('https://example.com/svi-sand/admin/indices/{type}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.index+json'
}
r = requests.get('https://example.com/svi-sand/admin/indices/{type}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.index+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://example.com/svi-sand/admin/indices/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /admin/indices/{type}
Returns the name of the index for the specified type. SAND is responsible for managing the underlying indexes but to index large amounts of data, it might be appropriate for other services to send the data straight to the underlying search engine. This resource provides access to the index name for such a case.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
Example responses
An example of the response from /admin/indices/{type} containing the name of the index for the "report" type.
{
"type": "report",
"name": "sand__report__1468507165442",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/indices/report",
"uri": "/svi-sand/admin/indices/report",
"type": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/indices/report?searchable=true",
"uri": "/svi-sand/admin/indices/report?searchable=true",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/indices/report",
"uri": "/svi-sand/admin/indices/report"
}
]
}
{
"type": "report",
"name": "sand__report__1468507165442",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/indices/report",
"uri": "/svi-sand/admin/indices/report",
"type": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/indices/report?searchable=true",
"uri": "/svi-sand/admin/indices/report?searchable=true",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/indices/report",
"uri": "/svi-sand/admin/indices/report"
}
]
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | index |
404 | Not Found | The type does not exist or it is not configured to be indexed for search. | error2 |
Check the existence of an index for a single type
Code samples
# You can also use wget
curl -X HEAD https://example.com/svi-sand/admin/indices/{type}
-H 'Authorization: Bearer <access-token-goes-here>' \
fetch('https://example.com/svi-sand/admin/indices/{type}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.head('https://example.com/svi-sand/admin/indices/{type}')
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "https://example.com/svi-sand/admin/indices/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /admin/indices/{type}
Checks the existence of an index for the specified type. 200 OK means that an index exists; 404 Not Found means there is no index.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | None |
404 | Not Found | The type does not exist or it is not configured to be indexed for search. | None |
Create an index for a single type
Code samples
# You can also use wget
curl -X POST https://example.com/svi-sand/admin/indices/{type} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.sand.index+json'
const headers = {
'Accept':'application/vnd.sas.sand.index+json'
};
fetch('https://example.com/svi-sand/admin/indices/{type}',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.sand.index+json'
}
r = requests.post('https://example.com/svi-sand/admin/indices/{type}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.sand.index+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://example.com/svi-sand/admin/indices/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /admin/indices/{type}
Ensures that an index exists for the specified type when the searchable query parameter is set to true, otherwise creates a new unsearchable index. This is especially required when re-indexing data from a source database (see example Use Case Five). No errors will be reported if the index already exists. Returns the name of the newest index for the specified type.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
searchable | query | boolean | false | Whether to create a searchable as opposed to an unsearchable index. |
Example responses
An example of the response from /admin/indices/{type} containing the name of the index for the "report" type.
{
"type": "report",
"name": "sand__report__1468507165442",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/indices/report",
"uri": "/svi-sand/admin/indices/report",
"type": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/indices/report?searchable=true",
"uri": "/svi-sand/admin/indices/report?searchable=true",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/indices/report",
"uri": "/svi-sand/admin/indices/report"
}
]
}
{
"type": "report",
"name": "sand__report__1468507165442",
"links": [
{
"method": "GET",
"rel": "self",
"href": "/svi-sand/admin/indices/report",
"uri": "/svi-sand/admin/indices/report",
"type": "application/vnd.sas.sand.index"
},
{
"method": "POST",
"rel": "create",
"href": "/svi-sand/admin/indices/report?searchable=true",
"uri": "/svi-sand/admin/indices/report?searchable=true",
"responseType": "application/vnd.sas.sand.index"
},
{
"method": "DELETE",
"rel": "delete",
"href": "/svi-sand/admin/indices/report",
"uri": "/svi-sand/admin/indices/report"
}
]
}
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | index |
404 | Not Found | The type does not exist or it is not configured to be indexed for search. | error2 |
Delete the indices for a single type
Code samples
# You can also use wget
curl -X DELETE https://example.com/svi-sand/admin/indices/{type} \
-H 'Authorization: Bearer <access-token-goes-here>' \
-H 'Accept: application/vnd.sas.error+json'
const headers = {
'Accept':'application/vnd.sas.error+json'
};
fetch('https://example.com/svi-sand/admin/indices/{type}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/vnd.sas.error+json'
}
r = requests.delete('https://example.com/svi-sand/admin/indices/{type}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/vnd.sas.error+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://example.com/svi-sand/admin/indices/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /admin/indices/{type}
Deletes the index (and therefore indexed data) for a specified type. This operation cannot be undone without first making a backup of the indexed data directly from the underlying search engine. No error will be reported when the index has already been deleted. If the intention is to reload the data after deleting the index, the recreate parameter should be set to true otherwise a POST request to /admin/indices/{type} will be required to create an empty index prior to reloading the data.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | The name of the type. |
preserveNewestIndexName | query | boolean | false | Whether to preserve and reuse the name of the newest index when creating the next searchable index. Creating a new unsearchable index, or deleting an index without this option, will cause the new index to have a new unique name. Preserving the newest index name is useful when maintaining a read-only standby deployment for Disaster Avoidance as it allows the data to be re-indexed without changing the name. For example, when applying a breaking configuration change from the active deployment. |
unsearchableOnly | query | boolean | false | Whether to delete only the unsearchable indices. This is useful for cleaning up after a failed indexing attempt. |
recreate | query | boolean | false | Whether to create a new empty index for the type after deleting the current one. |
waitForRefresh | query | boolean | false | Whether to wait for any index-related operations to be applied prior to the response being returned. |
Example responses
404 Response
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
{
"description": "An example of a 404 resource not found Error message.",
"value": {
"errorCode": "95144",
"message": "No entity type was found with the name \"example\".",
"id": "af180279-0181-44ce-b31e-bb649d0231a0",
"links": [],
"version": 2,
"httpStatusCode": 404
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The request succeeded. | None |
404 | Not Found | The type does not exist or it is not configured to be indexed for search. | error2 |
Schemas
analyticsCategories
{
"version": 0,
"identifier": "string",
"level": {
"category": "unigram",
"phrase": "string",
"nextLevel": null
},
"categories": [
"unigram"
],
"fromAndTo": true,
"errors": [
{
"details": [
"string"
],
"errorCode": 0,
"errors": [
null
],
"httpStatusCode": 0,
"id": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"message": "string",
"remediation": "string",
"version": 0
}
],
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
The response from /analytics/{jobId}/categories containing the categories of text analytics results that are available at a given exploration level.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
identifier | string | false | none | The identifier for the analytics job from the request. |
level | analyticsExplorationLevel | false | none | The exploration level within the text analytics results. |
categories | [string] | false | none | The categories of results that are available at this exploration level. |
fromAndTo | boolean | false | none | Whether "from" and "to" values were extracted from the objects at this exploration level. |
errors | [error2] | false | none | Any errors relating to the text analytics job. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
analyticsExcludesMap
{
"unigram": [
"string"
],
"bigram": [
"string"
],
"trigram": [
"string"
],
"person": [
"string"
],
"organization": [
"string"
],
"location": [
"string"
],
"significantTerm": [
"string"
],
"topic": [
"string"
]
}
The optional list of terms, phrases, topics, and entities to exclude from the analytics results keyed by category.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
unigram | [string] | false | none | The list of terms to exclude. |
bigram | [string] | false | none | The list of bigram phrases to exclude. |
trigram | [string] | false | none | The list of trigram phrases to exclude. |
person | [string] | false | none | The list of person entities to exclude. |
organization | [string] | false | none | The list of organization entities to exclude. |
location | [string] | false | none | The list of location entities to exclude. |
significantTerm | [string] | false | none | The list of significant terms to exclude. |
topic | [string] | false | none | The list of topics to exclude. |
analyticsExplorationLevel
{
"category": "unigram",
"phrase": "string",
"nextLevel": null
}
The exploration level within the text analytics results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
category | string | false | none | The selected category of analytics result. This member is mandatory when a value is provided for phrase. |
phrase | string | false | none | The selected term, phrase, topic, or entity. This member is mandatory when a value is provided for nextLevel. |
nextLevel | analyticsExplorationLevel | false | none | The exploration level within the text analytics results. |
Enumerated Values
Property | Value |
---|---|
category | unigram |
category | bigram |
category | trigram |
category | person |
category | organization |
category | location |
category | significantTerm |
category | topic |
analyticsExplore
{
"version": 0,
"level": {
"category": "unigram",
"phrase": "string",
"nextLevel": null
}
}
The request to /analytics/{jobId}/results and /analytics/{jobId}/categories to retrieve the text analytics results and categories of result, respectively at a given exploration level
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
level | analyticsExplorationLevel | false | none | The exploration level within the text analytics results. |
analyticsIdentities
{
"version": 0,
"identifier": "string",
"identities": {
"person": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
],
"organization": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
],
"location": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
]
},
"errors": [
{
"details": [
"string"
],
"errorCode": 0,
"errors": [
null
],
"httpStatusCode": 0,
"id": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"message": "string",
"remediation": "string",
"version": 0
}
],
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
The response from /analytics/{jobId}/identities containing the identities for the person, organization, and location entities that were resolved by the text analytics job.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
identifier | string | false | none | The identifier for the analytics job from the request. |
identities | analyticsIdentitiesMap | false | none | The identities keyed by category (person, organization, or location). Resolved entity results matching any of the aliases will be grouped under the respective identity name. |
errors | [error2] | false | none | Any errors relating to the text analytics job. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
analyticsIdentitiesMap
{
"person": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
],
"organization": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
],
"location": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
]
}
The identities keyed by category (person, organization, or location). Resolved entity results matching any of the aliases will be grouped under the respective identity name.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
person | [analyticsIdentity] | false | none | The resolved person entities. |
organization | [analyticsIdentity] | false | none | The resolved organization entities. |
location | [analyticsIdentity] | false | none | The resolved location entities. |
analyticsIdentity
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
The identity for a person, organization, or location entity that was resolved by the text analytics job.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The identity name. |
frequencyCount | integer | false | none | The total number of occurrences of this identity. |
aliases | [analyticsIdentityAlias] | false | none | The aliases for this identity. |
analyticsIdentityAlias
{
"name": "string",
"frequencyCount": 0
}
An alias for a person, organization, or location entity that was resolved by the text analytics job.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The alias name. |
frequencyCount | integer | false | none | The total number of occurrences of this alias. |
analyticsJob
{
"version": 0,
"identifier": "string",
"state": "pending",
"types": [
"string"
],
"query": {
"queries": [
null
]
},
"categories": [
"unigram"
],
"fields": [
"string"
],
"fromField": "string",
"toFields": [
"string"
],
"excludes": {
"unigram": [
"string"
],
"bigram": [
"string"
],
"trigram": [
"string"
],
"person": [
"string"
],
"organization": [
"string"
],
"location": [
"string"
],
"significantTerm": [
"string"
],
"topic": [
"string"
]
},
"identities": {
"person": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
],
"organization": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
],
"location": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
]
},
"maxResultsPerCategory": 0,
"locale": "string",
"errors": [
{
"details": [
"string"
],
"errorCode": 0,
"errors": [
null
],
"httpStatusCode": 0,
"id": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"message": "string",
"remediation": "string",
"version": 0
}
],
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
The response from /analytics and /analytics/{jobId} containing the identifier, state, and parameters of a scheduled text analytics job. The job analyses unstructured text in the matching search results to extract significant terms, phrases, and topics as well as resolve named person, organization and location entities.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (3). |
identifier | string | false | none | The identifier for the analytics job. |
state | string | false | none | The current state of the job. |
types | [string] | false | none | The list of type names from the request. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
categories | [string] | false | none | The optional list of result categories from the request. |
fields | [string] | false | none | The optional list of fields from the request. |
fromField | string | false | none | The optional "from" field from the request. |
toFields | [string] | false | none | The optional "to" fields from the request. |
excludes | analyticsExcludesMap | false | none | The optional list of terms, phrases, topics, and entities to exclude from the analytics results keyed by category. |
identities | analyticsIdentitiesMap | false | none | The identities keyed by category (person, organization, or location). Resolved entity results matching any of the aliases will be grouped under the respective identity name. |
maxResultsPerCategory | integer | false | none | The maximum number of results to generate per category from the request. |
locale | string | false | none | The locale of the data as a BCP-47 language tag from the request. |
errors | [error2] | false | none | Any errors relating to the text analytics job. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
Enumerated Values
Property | Value |
---|---|
state | pending |
state | running |
state | completed |
state | completedWithErrors |
state | cancelled |
state | failed |
analyticsLocale
{
"version": 0,
"name": "string",
"nativeName": "string",
"tag": "string"
}
A locale that is supported for text analytics. It is returned in a collection from /analytics/locales.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
name | string | false | none | The ISO language name. |
nativeName | string | false | none | The native language name (for display purposes). |
tag | string | false | none | The BCP-47 language tag. |
analyticsLocaleCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"version": 0,
"name": "string",
"nativeName": "string",
"tag": "string"
}
]
}
A collection of analytics locale representations.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [analyticsLocale] | false | none | The array of application/vnd.sas.sand.analytics.locale+json representations. |
analyticsRequest
{
"version": 0,
"types": [
"string"
],
"query": {
"queries": [
null
]
},
"categories": [
"unigram"
],
"fields": [
"string"
],
"fromField": "string",
"toFields": [
"string"
],
"excludes": {
"unigram": [
"string"
],
"bigram": [
"string"
],
"trigram": [
"string"
],
"person": [
"string"
],
"organization": [
"string"
],
"location": [
"string"
],
"significantTerm": [
"string"
],
"topic": [
"string"
]
},
"identities": {
"person": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
],
"organization": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
],
"location": [
{
"name": "string",
"frequencyCount": 0,
"aliases": [
{
"name": "string",
"frequencyCount": 0
}
]
}
]
},
"maxResultsPerCategory": 0,
"locale": "string"
}
The request to /analytics to initiate a new text analytics job. The job analyses unstructured text in the matching search results to extract significant terms, phrases, and topics as well as resolve named person, organization, and location entities.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
types | [string] | false | none | The optional list of type names for the object types to search. If missing, all types will be searched. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
categories | [string] | false | none | The optional list of categories specifying which types of analytics results to generate. |
fields | [string] | false | none | The optional list of fields whose values will be combined to generate the corpus. Using this parameter overrides the administrator defined fields specified in the entity configuration. |
fromField | string | false | none | The optional field whose values will be used when generating the Sankey diagram. Using this parameter overrides the administrator defined "from" field specified in the entity configuration. |
toFields | [string] | false | none | The optional fields whose values will be used when generating the Sankey diagram. Using this parameter overrides the administrator defined "to" fields specified in the entity configuration. |
excludes | analyticsExcludesMap | false | none | The optional list of terms, phrases, topics, and entities to exclude from the analytics results keyed by category. |
identities | analyticsIdentitiesMap | false | none | The identities keyed by category (person, organization, or location). Resolved entity results matching any of the aliases will be grouped under the respective identity name. |
maxResultsPerCategory | integer | false | none | The maximum number of results to generate per category. Accepts values in the range 10 to 1000. The default value is 100. |
locale | string | false | none | The locale of the data as a BCP-47 language tag. |
analyticsResults
{
"version": 0,
"identifier": "string",
"level": {
"category": "unigram",
"phrase": "string",
"nextLevel": null
},
"results": [
{
"phrase": "string",
"frequencyCount": 0,
"weight": 0,
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"aliases": [
null
]
}
],
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
The response from /analytics/{jobId}/results containing the text analytics results that are available at a given exploration level
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
identifier | string | false | none | The identifier for the analytics job from the request. |
level | analyticsExplorationLevel | false | none | The exploration level within the text analytics results. |
results | [analyticsResult] | false | none | The results at this exploration level. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
analyticsResult
{
"phrase": "string",
"frequencyCount": 0,
"weight": 0,
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"aliases": [
null
]
}
A single text analytics result.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
phrase | string | false | none | The resultant term, phrase, topic, or entity name. |
frequencyCount | integer | false | none | The number of times this phrase appears in the Corpus. |
weight | number | false | none | The average statistical weighting if the phrase is a significant term or topic. |
objectIds | [objectIdentifier] | false | none | The list of identifiers for the objects that contain the phrase. These can be used in a request to /searches to retrieve the objects. |
aliases | [analyticsResult] | false | none | Any known aliases if the phrase is an entity name. Each alias object has phrase, frequencyCount, and objectIds members as described above. |
analyticsSankeyDiagram
{
"version": 0,
"identifier": "string",
"level": {
"category": "unigram",
"phrase": "string",
"nextLevel": null
},
"fromCategory": "unigram",
"toCategory": "unigram",
"fromAndTo": true,
"maxLinks": 0,
"sankeyNodes": [
{
"phrase": "string",
"frequencyCount": 0,
"weight": 0,
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"aliases": [
null
],
"identifier": 0,
"category": "unigram"
}
],
"sankeyLinks": [
{
"fromNode": 0,
"toNode": 0,
"frequencyCount": 0,
"objectIds": [
{
"type": "string",
"id": "string"
}
]
}
],
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
The response from /analytics/{jobId}/sankeyDiagrams containing a Sankey diagram generated from the text analytics results at the specified exploration level.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
identifier | string | false | none | The identifier for the analytics job from the request. |
level | analyticsExplorationLevel | false | none | The exploration level within the text analytics results. |
fromCategory | string | false | none | The "from" results category from the request. |
toCategory | string | false | none | The "to" results category from the request. |
fromAndTo | boolean | false | none | Whether the diagram is based on the values extracted from the "from" and "to" fields instead of using the "from" and "to" categories specified above. |
maxLinks | integer | false | none | The maximum number of links from the request. |
sankeyNodes | [analyticsSankeyNode] | false | none | The collection of Sankey nodes. |
sankeyLinks | [analyticsSankeyLink] | false | none | The collection of Sankey links. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
Enumerated Values
Property | Value |
---|---|
fromCategory | unigram |
fromCategory | bigram |
fromCategory | trigram |
fromCategory | person |
fromCategory | organization |
fromCategory | location |
fromCategory | significantTerm |
fromCategory | topic |
toCategory | unigram |
toCategory | bigram |
toCategory | trigram |
toCategory | person |
toCategory | organization |
toCategory | location |
toCategory | significantTerm |
toCategory | topic |
analyticsSankeyDiagramRequest
{
"version": 0,
"level": {
"category": "unigram",
"phrase": "string",
"nextLevel": null
},
"fromCategory": "unigram",
"toCategory": "unigram",
"fromAndTo": true,
"maxLinks": 0
}
The request to /analytics/{jobId}/sankeyDiagrams to generate a Sankey diagram from the text analytics results at the specified exploration level.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
level | analyticsExplorationLevel | false | none | The exploration level within the text analytics results. |
fromCategory | string | false | none | The category of results to use for the "from" nodes. |
toCategory | string | false | none | The category of results to use for the "to" nodes. |
fromAndTo | boolean | false | none | Whether to base the diagram on the values extracted from the "from" and "to" fields instead of using the "from" and "to" categories specified above. |
maxLinks | integer | false | none | The maximum number of links to return. Accepts values in the range 1 to 100. The default value is 20. |
Enumerated Values
Property | Value |
---|---|
fromCategory | unigram |
fromCategory | bigram |
fromCategory | trigram |
fromCategory | person |
fromCategory | organization |
fromCategory | location |
fromCategory | significantTerm |
fromCategory | topic |
toCategory | unigram |
toCategory | bigram |
toCategory | trigram |
toCategory | person |
toCategory | organization |
toCategory | location |
toCategory | significantTerm |
toCategory | topic |
analyticsSankeyLink
{
"fromNode": 0,
"toNode": 0,
"frequencyCount": 0,
"objectIds": [
{
"type": "string",
"id": "string"
}
]
}
A link in a Sankey diagram.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
fromNode | integer | false | none | The unique identifier of the "from" node. |
toNode | integer | false | none | The unique identifier of the "to" node. |
frequencyCount | integer | false | none | The number of times the "from" and "to" values or phrases appear in the Corpus. |
objectIds | [objectIdentifier] | false | none | The list of identifiers for the objects that contain the "from" and "to" values or phrases. These can be used in a request to /searches to retrieve the objects. |
analyticsSankeyNode
{
"phrase": "string",
"frequencyCount": 0,
"weight": 0,
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"aliases": [
null
],
"identifier": 0,
"category": "unigram"
}
A node in a Sankey diagram.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | analyticsResult | false | none | A single text analytics result. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» identifier | integer | false | none | The unique identifier for the node. Used to identify the endpoints of the links. Note the identifier is not guaranteed to be the same across multiple diagrams. |
» category | string | false | none | The category of result. |
Enumerated Values
Property | Value |
---|---|
category | unigram |
category | bigram |
category | trigram |
category | person |
category | organization |
category | location |
category | significantTerm |
category | topic |
analyzer
{
"version": 0,
"solution": "default",
"name": "string",
"displayName": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
A supported analyzer for analyzing text at index or search time. Returned in a collection from /admin/config/analyzers.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
solution | string | false | none | The name of the solution. |
name | string | false | none | The name of the analyzer. |
displayName | string | false | none | The localized display name of the analyzer. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
analyzerCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"version": 0,
"solution": "default",
"name": "string",
"displayName": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
]
}
A collection of supported analyzers.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [analyzer] | false | none | The array of application/vnd.sas.sand.analyzer+json representations. |
api
{
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"version": 1
}
The list of links to top-level resources and operations available from the root of the API.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
links | [link] | false | none | The API's top-level links. |
version | integer | false | none | The version number of the API representation. This is version 1. |
baseCollection2
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0
}
This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2).
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
accept | string | false | none | A space-delimited list of media types from which an Accept header can be constructed. |
count | integer(int64) | false | none | If populated indicates the number of items in the collection. |
limit | integer | false | none | The number of items that were requested for the collection. |
links | [link] | false | none | The links that apply to the collection. |
name | string | false | none | The name of the collection. |
start | integer(int64) | false | none | The zero-based index of the first item in the collection. |
version | integer | false | none | The version number of the collection representation. This representation is version 2. |
childEntityHighlighting
{
"start": 0,
"limit": 0,
"count": 0,
"childObjects": [
{
"id": "string",
"name": "string",
"highlighting": {},
"maskedFields": {}
}
]
}
The part of the response from /highlighting that groups highlighting snippets by child entity.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
start | integer | false | none | The start paging parameter from the request. |
limit | integer | false | none | The limit paging parameter from the request. |
count | integer | false | none | The total number of child objects with highlighting snippets. |
childObjects | [childObjectHighlighting] | false | none | The current page of child objects with highlighting snippets. |
childEntityHighlightingParameters
{
"start": 0,
"limit": 0
}
The part of the request to /highlighting that specifies the paging parameters for each child entity.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
start | integer | false | none | The first child object to include in the page. The default value is 1. |
limit | integer | false | none | The maximum number of child objects to include in the page. The default value is 10. |
childObjectHighlighting
{
"id": "string",
"name": "string",
"highlighting": {},
"maskedFields": {}
}
The part of the response from /highlighting that captures highlighting snippets for a single child object.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The identifier of the child object. |
name | string | false | none | The name of the child object. |
highlighting | object | false | none | The highlighting snippets for the child object fields keyed by field name. |
maskedFields | object | false | none | The masked field configuration for the child object fields keyed by field name. |
configuration
{
"version": 0,
"types": {},
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
The request and response for /admin/config when importing and exporting a configuration between systems.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
types | object | false | none | The type configuration keyed by type name. Type names can contain up to 36 alphanumeric characters and underscores but cannot start with an underscore. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
edge
{
"version": 0,
"id": "string",
"type": "string",
"subtype": "string",
"compoundValues": [
"string"
],
"label": "string",
"fields": [
{
"name": "string",
"type": "boolean",
"value": "string",
"masked": {
"type": "full"
}
}
],
"endpoints": [
{
"id": "string",
"type": "string",
"compoundValues": [
"string"
]
}
],
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"style": {
"color": "string",
"width": 0,
"dashType": "string"
}
}
An edge within the context of the Network visualization. An edge represents a relationship between two entity objects or between a resolved entity object and one of its contributing objects. Note the fields property is returned only from /graphs/edges.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
id | string | false | none | The unique identifier for the edge. |
type | string | false | none | The relationship type of the edge. |
subtype | string | false | none | The sub-type of the relationship if applicable. |
compoundValues | [string] | false | none | The list of compound values if this edge involves a resolved entity object. |
label | string | false | none | The summary label for the edge. |
fields | [summaryField] | false | none | The enrichment information for custom relationship fields. |
endpoints | [endpoint] | false | none | The identifiers for the vertices on either end of the edge. |
validFrom | string(date-time) | false | none | The optional datetime that the edge is valid from as an ISO formatted string. |
validTo | string(date-time) | false | none | The optional datetime that the edge is valid to as an ISO formatted string. |
style | relationshipStyle | false | none | A collection of properties that determine the style for a relationship. |
edgeCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"version": 0,
"id": "string",
"type": "string",
"subtype": "string",
"compoundValues": [
"string"
],
"label": "string",
"fields": [
{
"name": "string",
"type": "boolean",
"value": "string",
"masked": {
"type": "full"
}
}
],
"endpoints": [
{
"id": "string",
"type": "string",
"compoundValues": [
"string"
]
}
],
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"style": {
"color": "string",
"width": 0,
"dashType": "string"
}
}
]
}
A collection of edge representations.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [edge] | false | none | The array of application/vnd.sas.sand.edge+json representations. |
endpoint
{
"id": "string",
"type": "string",
"compoundValues": [
"string"
]
}
The identifier for a vertex on one end of an edge.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The identifier of the vertex. |
type | string | false | none | The object type of the vertex. |
compoundValues | [string] | false | none | The list of compound values if the vertex is a resolved entity object. |
entityFields
{
"entityName": "string",
"fieldNames": [
"string"
]
}
Describes the fields to retrieve for a given entity.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityName | string | false | none | The name of the entity to retrieve fields for. |
fieldNames | [string] | false | none | The set of fields to retrieve. |
entityStyle
{
"iconName": "string",
"markerColor": "string",
"backgroundColor": "string",
"shape": "string",
"scale": 0,
"additionalLabel": "string",
"borderWidth": 0,
"borderColor": "string",
"indicatorIcons": [
{
"name": "string",
"position": "string"
}
]
}
A collection of properties that determine the style for an entity object
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
iconName | string | false | none | The name of the icon to use. |
markerColor | string | false | none | The marker color. |
backgroundColor | string | false | none | The background color. |
shape | string | false | none | The shape to use. |
scale | integer | false | none | The scale value. |
additionalLabel | string | false | none | An additional label. |
borderWidth | integer | false | none | The width of the border. |
borderColor | string | false | none | The border color. |
indicatorIcons | [indicatorIcon] | false | none | The collection of indicator icons. |
error2
{
"details": [
"string"
],
"errorCode": 0,
"errors": [
null
],
"httpStatusCode": 0,
"id": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"message": "string",
"remediation": "string",
"version": 0
}
The representation of an error.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
details | [string] | false | none | Messages that provide additional details about the cause of the error. |
errorCode | integer | false | none | The numeric ID for the error. |
errors | [error2] | false | none | Any additional errors that occurred. |
httpStatusCode | integer | false | none | The HTTP status code for the error. |
id | string | false | none | The string ID for the error. |
links | [link] | false | none | The links that apply to the error. |
message | string | false | none | The message for the error. |
remediation | string | false | none | A message that describes how to resolve the error. |
version | integer | false | none | The version number of the error representation. This representation is version 2. |
event
{
"version": 0,
"eventId": "string",
"eventCategory": "string",
"eventLabel": "string",
"eventDescription": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"objectLabel": "string",
"objectDescription": "string",
"objectAttachmentCount": 0,
"selected": true,
"group": "string",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z"
}
An event within the context of the Map and Time Line visualizations
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (4). |
eventId | string | false | none | The unique identifier for the event. |
eventCategory | string | false | none | The category of the event. |
eventLabel | string | false | none | The summary label for the event. |
eventDescription | string | false | none | The description for the event. |
objectId | string | false | none | The unique identifier of the object from which the event was extracted. |
objectType | string | false | none | The type of the object from which the event was extracted. |
objectTypeLabel | string | false | none | The localized display name for the object type. |
objectLabel | string | false | none | The summary label for the object. |
objectDescription | string | false | none | The description for the object. |
objectAttachmentCount | integer | false | none | The number of attachments on the object. |
selected | boolean | false | none | True if this event matches the selection criteria in the search request. Relevant only to the Map and Map Feature visualizations. |
group | string | false | none | The object identifier from the swim lane (used to group events according to their swim lane). Relevant only to the Time Line visualization. |
startTimestamp | string(date-time) | false | none | The ISO formatted string for the start date time of the event. Relevant only to the Time Line visualization. |
endTimestamp | string(date-time) | false | none | The ISO formatted string for the end date time of the event. This will have the same value as start for events that have only a single date time value. Relevant only to the Time Line visualization. |
filter
{
"filters": [
null
]
}
The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
type | string | false | none | The type of this filter object. The value of this property determines which other properties are expected. |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeAnd | false | none | This filter combines two or more filter objects using a Boolean AND operation thereby creating the intersection of their individual search results |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeBox | false | none | Filters objects based on geo data in the form of events. Objects containing a geo event whose location intersects with the specified bounded box will be included in the search results. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeDateRange | false | none | Filters objects by values in date fields. Objects containing a date value in the specified field within the given range will be included in the search results. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeNot | false | none | This filter applies the Boolean NOT operation to another filter thereby producing the opposite search results of the contained filter. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeOr | false | none | This filter combines two or more filter objects using a Boolean OR operation thereby creating the union of their individual search results |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypePolygon | false | none | Filters objects based on geo data in the form of events. Objects containing a geo event whose location intersects with the specified polygon will be included in the search results. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeQuery | false | none | Filters objects based on the given query. Objects matching the query will be included in the search results. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeRadius | false | none | Filters objects based on geo data in the form of events. Objects containing a geo event whose location intersects with the specified circle will be included in the search results. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeRange | false | none | Filters objects by values in numerical fields. Objects containing a numerical value in the specified field within the given range will be included in the search results. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeTerms | false | none | Filters objects by values in text fields. Only objects containing an exact match for one of the specified terms in the specified field will be included in the search results. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeType | false | none | Filters objects by their type. Objects of the named types will be included in the search results. |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | filterTypeShape | false | none | Filters objects based on geo data in the form of events. Objects containing a geo event whose location relates to the specified GeoJSON shape will be included in the search results. |
Enumerated Values
Property | Value |
---|---|
type | and |
type | box |
type | dateRange |
type | not |
type | or |
type | polygon |
type | query |
type | radius |
type | range |
type | shape |
type | terms |
type | type |
filterTypeAnd
{
"filters": [
null
]
}
This filter combines two or more filter objects using a Boolean AND operation thereby creating the intersection of their individual search results
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
filters | [filter] | false | none | The filter objects to combine. |
filterTypeBox
{
"coordinates": [
[
0
]
]
}
Filters objects based on geo data in the form of events. Objects containing a geo event whose location intersects with the specified bounded box will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
coordinates | [array] | false | none | The top left and bottom right coordinates of the bounded box. The first entry in each coordinate array is the longitude and the second is the latitude. |
filterTypeDateRange
{
"field": "string",
"accuracy": "year",
"gt": "2019-08-24T14:15:22Z",
"gte": "2019-08-24T14:15:22Z",
"lt": "2019-08-24T14:15:22Z",
"lte": "2019-08-24T14:15:22Z"
}
Filters objects by values in date fields. Objects containing a date value in the specified field within the given range will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
field | string | false | none | The name of the field to filter on. |
accuracy | string | false | none | The accuracy of the date range parameters. The date values will be adjusted to this accuracy level prior to the filter being applied. The default value is day. |
gt | string(date-time) | false | none | The optional greater than range parameter as an ISO formatted date time string. |
gte | string(date-time) | false | none | The optional greater than or equal to range parameter as an ISO formatted date time string. |
lt | string(date-time) | false | none | The optional less than range parameter as an ISO formatted date time string. |
lte | string(date-time) | false | none | The optional less than or equal to range parameter as an ISO formatted date time string. |
Enumerated Values
Property | Value |
---|---|
accuracy | year |
accuracy | month |
accuracy | day |
accuracy | hour |
accuracy | minute |
accuracy | second |
accuracy | millisecond |
filterTypeNot
{
"filter": {
"filters": [
null
]
}
}
This filter applies the Boolean NOT operation to another filter thereby producing the opposite search results of the contained filter.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
filter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
filterTypeOr
{
"filters": [
{
"filters": [
null
]
}
]
}
This filter combines two or more filter objects using a Boolean OR operation thereby creating the union of their individual search results
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
filters | [filter] | false | none | The filter objects to combine. |
filterTypePolygon
{
"coordinates": [
[
0
]
]
}
Filters objects based on geo data in the form of events. Objects containing a geo event whose location intersects with the specified polygon will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
coordinates | [array] | false | none | The coordinates of the polygon. The first entry in each coordinate array is the longitude and the second is the latitude. A minimum of three coordinates are required (which would create a triangle). Polygons should be closed. The first and last coordinates should be the same. If required, the service adds the first coordinate to the end of the array to achieve this. |
filterTypeQuery
{
"query": {
"queries": [
null
]
}
}
Filters objects based on the given query. Objects matching the query will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
filterTypeRadius
{
"coordinates": [
0
],
"radius": "string"
}
Filters objects based on geo data in the form of events. Objects containing a geo event whose location intersects with the specified circle will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
coordinates | [number] | false | none | The coordinates of the center of the circle. The first array entry is the longitude and the second is the latitude. |
radius | string | false | none | The radius of the circle as a numerical value plus a suffix for the units. The supported units are miles (mi), yards (yd), feet (ft), inches (in), kilometers (km), meters (m), centimeters (cm), millimeters (mm), nautical miles (nmi). Meters will be assumed if no units are specified. |
filterTypeRange
{
"field": "string",
"gt": 0,
"gte": 0,
"lt": 0,
"lte": 0
}
Filters objects by values in numerical fields. Objects containing a numerical value in the specified field within the given range will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
field | string | false | none | The name of the field to filter on. |
gt | number | false | none | The optional greater than range parameter. |
gte | number | false | none | The optional greater than or equal to range parameter. |
lt | number | false | none | The optional less than range parameter. |
lte | number | false | none | The optional less than or equal to range parameter. |
filterTypeShape
{
"relation": "contains",
"shape": {},
"id": "string"
}
Filters objects based on geo data in the form of events. Objects containing a geo event whose location relates to the specified GeoJSON shape will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
relation | string | false | none | The spatial relation operator to use. |
shape | object | false | none | The GeoJSON representation of the shape. |
id | string | false | none | The identifier of a pre-configured GeoJSON shape to be used instead of an explicit shape. |
Enumerated Values
Property | Value |
---|---|
relation | contains |
relation | disjoint |
relation | intersects |
relation | within |
filterTypeTerms
{
"field": "string",
"objectType": "string",
"terms": [
"string"
]
}
Filters objects by values in text fields. Only objects containing an exact match for one of the specified terms in the specified field will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
field | string | false | none | The name of the field to filter on. |
objectType | string | false | none | The name of the type containing the field. |
terms | [string] | false | none | One or more terms to filter on. |
filterTypeType
{
"types": [
"string"
]
}
Filters objects by their type. Objects of the named types will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
types | [string] | false | none | One or more type names to filter on. |
geoJsonFeature
{
"type": "string",
"geometry": {},
"properties": {
"events": [
{
"version": 0,
"eventId": "string",
"eventCategory": "string",
"eventLabel": "string",
"eventDescription": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"objectLabel": "string",
"objectDescription": "string",
"objectAttachmentCount": 0,
"selected": true,
"group": "string",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z"
}
],
"eventCount": 0,
"selectedEventCount": 0
}
}
A GeoJSON feature in the context of the Map visualization
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of GeoJSON object, in this case Feature. |
geometry | object | false | none | The GeoJSON object representing the location of this feature (normally a Point with a coordinates array). |
properties | geoJsonFeatureProperties | false | none | The details about the events at this map location. |
geoJsonFeatureCollection
{
"type": "string",
"features": [
{
"type": "string",
"geometry": {},
"properties": {
"events": [
{
"version": 0,
"eventId": "string",
"eventCategory": "string",
"eventLabel": "string",
"eventDescription": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"objectLabel": "string",
"objectDescription": "string",
"objectAttachmentCount": 0,
"selected": true,
"group": "string",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z"
}
],
"eventCount": 0,
"selectedEventCount": 0
}
}
]
}
The GeoJSON feature collection returned as part of the Map visualization when the results are not clustered.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of GeoJSON object, in this case FeatureCollection. |
features | [geoJsonFeature] | false | none | The map features. |
geoJsonFeatureProperties
{
"events": [
{
"version": 0,
"eventId": "string",
"eventCategory": "string",
"eventLabel": "string",
"eventDescription": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"objectLabel": "string",
"objectDescription": "string",
"objectAttachmentCount": 0,
"selected": true,
"group": "string",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z"
}
],
"eventCount": 0,
"selectedEventCount": 0
}
The details about the events at this map location.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
events | [event] | false | none | The events at this location. |
eventCount | integer | false | none | The number of events at this location. |
selectedEventCount | integer | false | none | The subset of events at this location that match the selection criteria in the search request. |
geoJsonShape
{
"id": "string",
"solution": "default",
"name": "string",
"group": "string",
"shape": {}
}
A GeoJSON shape for use in the shape filter.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The unique identifier of the GeoJSON shape. |
solution | string | false | none | The name of the solution. |
name | string | false | none | The optional name of the GeoJSON shape. |
group | string | false | none | The optional group of the GeoJSON shape. |
shape | object | false | none | The GeoJSON representation of the shape. The shape can be any GeoJSON geometry or a GeoJSON geometry collection. |
geoJsonShapeCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"id": "string",
"solution": "default",
"name": "string",
"group": "string",
"shape": {}
}
]
}
A collection of GeoJSON shape representations.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [geoJsonShape] | false | none | The array of application/vnd.sas.sand.geo.shape+json representations. |
graph
{
"version": 0,
"counts": {
"vertices": 0,
"edges": 0
},
"vertices": [
{
"version": 0,
"id": "string",
"type": "string",
"typeLabel": "string",
"compoundValues": [
"string"
],
"label": "string",
"attachmentsCount": 0,
"adjacent": 0,
"degree": 0,
"adjacentByType": {},
"degreeByType": {},
"fields": [
{
"name": "string",
"type": "boolean",
"value": "string",
"masked": {
"type": "full"
}
}
],
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"selected": true,
"style": {
"iconName": "string",
"markerColor": "string",
"backgroundColor": "string",
"shape": "string",
"scale": 0,
"additionalLabel": "string",
"borderWidth": 0,
"borderColor": "string",
"indicatorIcons": [
{
"name": "string",
"position": "string"
}
]
}
}
],
"edges": [
{
"version": 0,
"id": "string",
"type": "string",
"subtype": "string",
"compoundValues": [
"string"
],
"label": "string",
"fields": [
{
"name": "string",
"type": "boolean",
"value": "string",
"masked": {
"type": "full"
}
}
],
"endpoints": [
{
"id": "string",
"type": "string",
"compoundValues": [
"string"
]
}
],
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"style": {
"color": "string",
"width": 0,
"dashType": "string"
}
}
],
"expansionLimit": 0,
"expansionLimitExceeded": [
{
"type": "string",
"id": "string"
}
]
}
The response from /graphs and /traversals in relation to the Network visualization. In the network, objects are represented by vertices and the relationships between them are represented by edges.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
counts | graphCounts | false | none | The total number of vertices and edges in the graph |
vertices | [vertex] | false | none | The collection of vertices in the graph. |
edges | [edge] | false | none | The collection of edges in the graph. |
expansionLimit | integer | false | none | The maximum adjacent count a vertex is allowed to have to be expanded via a call to /traversals. This member is returned when at least one vertex is present in the graph whose adjacent count exceeds this limit. The expansion limit is currently set to 2000 meaning that an object with relationships to more than 2000 other objects will not be expanded. This is primarily to prevent a denial of service but it is also assumed that a network of such proportions could not be meaningfully visualized and explored by end users. |
expansionLimitExceeded | [objectIdentifier] | false | none | The identifiers for vertices whose adjacent count exceeds the expansion limit. This member is returned when at least one vertex is present in the graph whose adjacent count exceeds this limit. |
graphCounts
{
"vertices": 0,
"edges": 0
}
The total number of vertices and edges in the graph
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
vertices | integer | false | none | The number of vertices. |
edges | integer | false | none | The number of edges. |
graphRequest
{
"version": 0,
"vertexTypes": [
"string"
],
"edgeTypes": [
"string"
],
"query": {
"queries": [
null
]
},
"filter": {
"filters": [
null
]
},
"selection": {
"version": 0,
"filter": {
"filters": [
null
]
},
"include": {
"query": {
"queries": [
null
]
},
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"compoundValues": [
"string"
]
},
"exclude": {
"query": {
"queries": [
null
]
},
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"compoundValues": [
"string"
]
}
}
}
The request to /graphs for obtaining the Network visualization. In the network, objects are represented by vertices and the relationships between them are represented by edges.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
vertexTypes | [string] | false | none | The optional list of object type names for restricting the search to particular types. If missing, all types will be included in the search. |
edgeTypes | [string] | false | none | The optional list of relationship type names for restricting the search to particular types. If missing, all types will be included in the search. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
filter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
selection | selection | false | none | The criteria by which search results are marked as selected. In order to perform certain tasks within SAS Visual Investigator, such as adding search results to a workspace or expanding nodes in a network, the search results must first be selected. Manually selecting large numbers of results can be tedious and therefore SAND allows manual selection to be combined with query-based selection (all matching objects are marked as selected) and facet-based selection (all objects matching any of the filters will be marked as selected). The filter parameter represents the facet-based selection; the include parameter represents the manual and query based selections; the exclude parameter represents the manual and query based de-selections. All parameters are optional such that selections can be made by filter only, by include query only, or by object references and compound values. Objects matching either the filter or the include parameter will be selected as long as they do not match the exclude parameter. |
highlighting
{
"version": 0,
"type": "string",
"id": "string",
"query": {
"queries": [
null
]
},
"includeFieldHighlighting": true,
"defaultChildEntityLimit": 0,
"fieldHighlighting": {},
"childEntityHighlighting": {},
"maskedFields": {},
"errors": [
{
"details": [
"string"
],
"errorCode": 0,
"errors": [
null
],
"httpStatusCode": 0,
"id": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"message": "string",
"remediation": "string",
"version": 0
}
]
}
The response from /highlighting containing highlighting snippets for a single object based on a given query.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
type | string | false | none | The object type from the request. |
id | string | false | none | The identifier of the object from the request. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
includeFieldHighlighting | boolean | false | none | Whether to include highlighting snippets for the top-level fields. |
defaultChildEntityLimit | integer | false | none | The default limit for child entities from the request. |
fieldHighlighting | object | false | none | The highlighting snippets for the top-level fields keyed by field name. |
childEntityHighlighting | object | false | none | The highlighting snippets for child objects grouped by child entity name. |
maskedFields | object | false | none | The masked field configuration for the top-level fields keyed by field name. |
errors | [error2] | false | none | Any errors relating to the search. |
highlightingRequest
{
"version": 0,
"type": "string",
"id": "string",
"query": {
"queries": [
null
]
},
"includeFieldHighlighting": true,
"defaultChildEntityLimit": 0,
"childEntityHighlightingParameters": {}
}
The request to /highlighting for generating highlighting snippets for a single object based on a given query
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
type | string | false | none | The type of the object. |
id | string | false | none | The identifier of the object. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
includeFieldHighlighting | boolean | false | none | Whether to include highlighting snippets for the top-level fields. |
defaultChildEntityLimit | integer | false | none | The default limit for child entities. The value of this parameter will be used if there is no specific limit in childEntityHighlightingParameters. Setting this parameter to 0 will exclude highlighting for child objects from the response. The default value is 10. |
childEntityHighlightingParameters | object | false | none | The parameters for each child entity keyed by child entity name. |
index
{
"version": 0,
"type": "string",
"name": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
The response from /admin/indices/{type} when requesting information about the index for a single entity
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
type | string | false | none | The name of the object or relationship type. |
name | string | false | none | The name of the index. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
indexCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"version": 0,
"type": "string",
"name": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
]
}
A collection of index representations.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [index] | false | none | The array of application/vnd.sas.sand.index+json representations. |
indicatorIcon
{
"name": "string",
"position": "string"
}
An indicator icon for an entity style.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the indicator icon. |
position | string | false | none | The position of the indicator icon. |
link
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
A link to a related operation or resource.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
href | string | false | none | The URL for the link. |
itemType | string | false | none | If this is a link to a container, itemType is the media type or link type for the items in the container. |
method | string | false | none | The HTTP method for the link. |
rel | string | false | none | The relationship of the link to the resource. |
responseItemType | string | false | none | The media type or link type of the items in the response body for a PUT, POST, or PATCH` operation. |
responseType | string | false | none | The media type or link type of the response body for a PUT , POST , or PATCH operation. |
title | string | false | none | The title for the link |
type | string | false | none | The media type or link type for the link. |
uri | string | false | none | The relative URI for the link. |
maskedFieldConfiguration
{
"type": "full"
}
The configuration for a masked field.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of masked field. |
Enumerated Values
Property | Value |
---|---|
type | full |
type | partial |
type | none |
objectIdentifier
{
"type": "string",
"id": "string"
}
The identifier of a single object used in many of the requests and responses.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The name of the object type. |
id | string | false | none | The identifier of the object. |
operationRequest
{
"version": 0,
"operation": "refreshConfiguration",
"parameters": {
"type": "string",
"statusOnly": true,
"waitForRefresh": true
}
}
The request to /admin/operations to perform an administration-related operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
operation | string | false | none | The name of the operation to be performed. |
parameters | object | false | none | Any parameters relevant to the operation. See operation parameter definitions for more details. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | operationRequestParametersForRefreshConfiguration | false | none | The parameters for the refresh configuration operation |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | operationRequestParametersForMakeIndexSearchable | false | none | The parameters for the make index searchable operation. |
Enumerated Values
Property | Value |
---|---|
operation | refreshConfiguration |
operation | makeIndexSearchable |
operationRequestParametersForRefreshConfiguration
{
"type": "string",
"statusOnly": true,
"waitForRefresh": true
}
The parameters for the refresh configuration operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The name of the type whose configuration is to be refreshed. If not specified, the configuration for all types will be refreshed. |
statusOnly | boolean | false | none | Whether to return only status information instead of performing the refresh. The default value is true. |
waitForRefresh | boolean | false | none | Whether to wait for any index-related operations to be applied prior to the response being returned. The default value is false. |
operationRequestParametersForMakeIndexSearchable
{
"type": "string"
}
The parameters for the make index searchable operation.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The name of the type whose newest index is to be made searchable and whose older indices are to be deleted. If not specified, the indices for all types will be modified and deleted as appropriate. |
operationResponse
{
"version": 0,
"operation": "refreshConfiguration",
"parameters": {
"type": "string",
"statusOnly": true,
"waitForRefresh": true
},
"results": {
"version": 0,
"refreshRequired": true,
"reindexRequired": true,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
}
The response from a request to /admin/operations to perform an administration-related operation.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | operationRequest | false | none | The request to /admin/operations to perform an administration-related operation |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» results | typeStatus | false | none | Any results relevant to the operation. |
path
{
"version": 0,
"endpoints": [
null
]
}
A path within the context of the Network visualization. A path is a finite sequence of relationships (edges) connecting a sequence of objects (vertices) in the Network visualization.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
endpoints | [any] | false | none | The endpoints representing the vertices and the edges between them that make up the path. |
pathCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"version": 0,
"endpoints": [
null
]
}
]
}
A collection of path representations.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [path] | false | none | The array of application/vnd.sas.sand.path+json representations. |
pathsRequest
{
"version": 0,
"type": "string",
"id": "string",
"types": [
"string"
],
"query": {
"queries": [
null
]
},
"filter": {
"filters": [
null
]
},
"nextLevel": {
"vertexTypes": [
"string"
],
"vertexFilter": {
"filters": [
null
]
},
"edgeTypes": [
"string"
],
"edgeFilter": {
"filters": [
null
]
},
"nextLevel": null
}
}
The request to /paths when searching for matching paths from one or more start objects. Use the type and id properties to identify a single start object, or use the types and query properties to identify one or more start objects.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (3). |
type | string | false | none | The type of the start object. |
id | string | false | none | The identifier of the start object. |
types | [string] | false | none | The optional list of type names for the start objects. If missing, all types will be searched. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
filter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
nextLevel | pathsRequestNextLevel | false | none | The criteria for the next level of the path search. |
pathsRequestNextLevel
{
"vertexTypes": [
"string"
],
"vertexFilter": {
"filters": [
null
]
},
"edgeTypes": [
"string"
],
"edgeFilter": {
"filters": [
null
]
},
"nextLevel": null
}
The criteria for the next level of the path search.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
vertexTypes | [string] | false | none | The optional list of object type names for restricting the search to particular types. If missing, all types will be included in the search. |
vertexFilter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
edgeTypes | [string] | false | none | The optional list of relationship type names for restricting the search to particular types. If missing, all types will be included in the search. |
edgeFilter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
nextLevel | pathsRequestNextLevel | false | none | The criteria for the next level of the path search. |
query
{
"queries": [
null
]
}
The different query types that can be used to search for objects. See specific query definitions for more details.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
type | string | false | none | The type of this query object. The value of this property determines which other properties are expected. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | queryTypeAnd | false | none | This query combines two or more query objects using a Boolean AND operation thereby creating the intersection of their individual search results. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | queryTypeCompound | false | none | This query allows resolved entity objects to be searched by their compound values (globally unique text fragments based on the values extracted from the resolved entity's contributing objects). Resolved entity objects containing one or more matching compounds will be included in the search results. These values are not expected to be known by users/clients but rather they can be extracted from the results of an earlier free-text or geospatial search. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | queryTypeObject | false | none | This query allows objects to be searched by their type and identifier. Objects with matching types and identifiers will be included in the search results. These values are not necessarily expected to be known by users/clients but rather they can be extracted from an earlier search result. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | queryTypeOr | false | none | This query combines two or more query objects using a Boolean OR operation thereby creating the union of their individual search results. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | queryTypeText | false | none | This is the main query object and represents a free text query in a specified query language. Objects matching one or more query terms will be included in the search results. |
Enumerated Values
Property | Value |
---|---|
type | and |
type | compound |
type | object |
type | or |
type | text |
queryRequest
{
"version": 0,
"types": [
"string"
],
"query": {
"queries": [
null
]
}
}
The request to perform an action on data specified by a query.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
types | [string] | false | none | The optional list of type names for the object and relationship types to be searched. If missing, all types will be searched. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
queryTypeAnd
{
"queries": [
null
]
}
This query combines two or more query objects using a Boolean AND operation thereby creating the intersection of their individual search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
queries | [query] | false | none | The query objects to combine. |
queryTypeCompound
{
"compoundValues": [
"string"
]
}
This query allows resolved entity objects to be searched by their compound values (globally unique text fragments based on the values extracted from the resolved entity's contributing objects). Resolved entity objects containing one or more matching compounds will be included in the search results. These values are not expected to be known by users/clients but rather they can be extracted from the results of an earlier free-text or geospatial search.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
compoundValues | [string] | false | none | The compound values for the resolved entity objects to be included in the search results. |
queryTypeObject
{
"objectIds": [
{
"type": "string",
"id": "string"
}
]
}
This query allows objects to be searched by their type and identifier. Objects with matching types and identifiers will be included in the search results. These values are not necessarily expected to be known by users/clients but rather they can be extracted from an earlier search result.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
objectIds | [objectIdentifier] | false | none | The identifiers for the objects to be included in the search results. |
queryTypeOr
{
"queries": [
{
"queries": [
null
]
}
]
}
This query combines two or more query objects using a Boolean OR operation thereby creating the union of their individual search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
queries | [query] | false | none | The query objects to combine. |
queryTypeText
{
"language": "string",
"text": "string"
}
This is the main query object and represents a free text query in a specified query language. Objects matching one or more query terms will be included in the search results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
language | string | false | none | The name of the query language. Note only lucene is supported at the present time. |
text | string | false | none | The free text query. |
relatedObjectsRequest
{
"version": 0,
"startTypes": [
"string"
],
"startQuery": {
"queries": [
null
]
},
"startFilter": {
"filters": [
null
]
},
"endTypes": [
"string"
],
"endQuery": {
"queries": [
null
]
},
"endFilter": {
"filters": [
null
]
},
"hops": 0
}
The request to /relatedObjects when searching for paths between start and end objects.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
startTypes | [string] | false | none | The optional list of type names for the start objects. If missing, all types will be searched. |
startQuery | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
startFilter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
endTypes | [string] | false | none | The optional list of type names for the end objects. If missing, all types will be searched. |
endQuery | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
endFilter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
hops | integer | false | none | The maximum number of hops, that is, relationships to be included in each path. The minimum and default value is 1. The maximum value is 4. |
relationshipStyle
{
"color": "string",
"width": 0,
"dashType": "string"
}
A collection of properties that determine the style for a relationship.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
color | string | false | none | The line color. |
width | integer | false | none | The width of the line in pixels. |
dashType | string | false | none | The type of dashes to use for the line. |
searchRequest
{
"version": 0,
"types": [
"string"
],
"query": {
"queries": [
null
]
},
"filter": {
"filters": [
null
]
},
"selection": {
"version": 0,
"filter": {
"filters": [
null
]
},
"include": {
"query": {
"queries": [
null
]
},
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"compoundValues": [
"string"
]
},
"exclude": {
"query": {
"queries": [
null
]
},
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"compoundValues": [
"string"
]
}
},
"visualizations": {}
}
The request to /searches when performing a search including the object types to search, the query, filter, and selection criteria, as well as which visualizations to return
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (3). |
types | [string] | false | none | The optional list of type names for the object types to be searched. If missing, all types will be searched. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
filter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
selection | selection | false | none | The criteria by which search results are marked as selected. In order to perform certain tasks within SAS Visual Investigator, such as adding search results to a workspace or expanding nodes in a network, the search results must first be selected. Manually selecting large numbers of results can be tedious and therefore SAND allows manual selection to be combined with query-based selection (all matching objects are marked as selected) and facet-based selection (all objects matching any of the filters will be marked as selected). The filter parameter represents the facet-based selection; the include parameter represents the manual and query based selections; the exclude parameter represents the manual and query based de-selections. All parameters are optional such that selections can be made by filter only, by include query only, or by object references and compound values. Objects matching either the filter or the include parameter will be selected as long as they do not match the exclude parameter. |
visualizations | object | false | none | The collection of visualizations to be returned. The keys supplied in this map will be used in the search response to identify the requested visualizations. See the visualization request definitions for details. |
searchResponse
{
"version": 0,
"types": [
"string"
],
"query": {
"queries": [
null
]
},
"visualizations": [
{
"type": "facets",
"types": [
"string"
],
"mode": "filter",
"facets": [
{
"objectType": "string",
"facets": [
{
"type": "dateRange"
}
]
}
]
}
],
"errors": [
{
"details": [
"string"
],
"errorCode": 0,
"errors": [
null
],
"httpStatusCode": 0,
"id": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"message": "string",
"remediation": "string",
"version": 0
}
]
}
The response from /searches when performing a search including the various visualizations that can be returned.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (3). |
types | [string] | false | none | The list of object type names from the search request. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
visualizations | [anyOf] | false | none | The requested search visualizations keyed by the identifiers specified in the search request. See the visualization response definitions for details. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeFacets | false | none | The response parameters for the Facets visualization that presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). Before this visualization can be requested, an administrator needs to define the facets for each type via the /admin/config endpoint. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeFacetsGroupFacetDate | false | none | A group of date range facet results. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeFacetsGroupFacetNumerical | false | none | A group of numerical range facet results. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeFacetsGroupFacetNumerical | false | none | A group of numerical range facet results. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeFacetsGroupFacetTerms | false | none | A group of terms facet results |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeFacetsGroupFacetType | false | none | A group of type facet results. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeHits | false | none | The response parameters for the Hits visualization that returns the number of objects that matched the search criteria broken down by type. Can be presented to the user as a histogram. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeMap | false | none | The response parameters for the Map visualization that returns geo data in the form of events extracted from the objects found in the search. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeMapFeature | false | none | The response parameters for the Map Feature visualization that returns more detailed information about the features and events at a given location. For use in conjunction with the Map visualization. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeSummary | false | none | The response parameters for the Summary visualization that returns a page of summary objects, one for each object found in the search. In order to get more meaningful information returned in each summary object, an administrator is required to configure the fields and highlighting sections for each type via the /admin/config endpoint. Clients can optionally specify a set of fields for each type using the 'fields' property. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeTable | false | none | The response parameters for the Table visualization that returns the objects found in the search as a table where columns are fields and rows are hits. When results are viewed for multiple types, only the type and label columns are shown but a configurable number of columns are shown when viewing results of a single type. In order to get more meaningful information returned in each table object, an administrator is required to configure the columns for each type via the /admin/config endpoint. Clients can optionally specify a set of fields for each type using the 'fields' property. In this case, a single column will be returned for fields with the same name and type. If one of those fields is masked, all of the values for that column will be masked. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeTimebar | false | none | The response parameters for the Time Bar visualization that returns the number of objects found in the search categorized by intervals of time where time-related data is in the form of events. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoints. This visualization is intended to be presented as a date histogram with time on the X axis and the hit count on the Y axis. The X-axis units scale depending on the amount of time events in the search results. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | visualizationResponseTypeTimeline | false | none | The response parameters for the Time Line visualization that returns time-related data in the form of events extracted from the objects found in the search. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint. This visualization is intended to be presented as a series of charts or swim lanes, one per object, with time on the X axis and the events or swim lane entries relating to the current swim lane plotted at the appropriate points in time. The X axis units scale depending on the amount of swim lane entries. The swim lane entries can be individual events or clusters containing multiple events depending on the request parameters and the number of events within the same time interval. |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | [error2] | false | none | Any errors relating to the search. |
selection
{
"version": 0,
"filter": {
"filters": [
null
]
},
"include": {
"query": {
"queries": [
null
]
},
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"compoundValues": [
"string"
]
},
"exclude": {
"query": {
"queries": [
null
]
},
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"compoundValues": [
"string"
]
}
}
The criteria by which search results are marked as selected. In order to perform certain tasks within SAS Visual Investigator, such as adding search results to a workspace or expanding nodes in a network, the search results must first be selected. Manually selecting large numbers of results can be tedious and therefore SAND allows manual selection to be combined with query-based selection (all matching objects are marked as selected) and facet-based selection (all objects matching any of the filters will be marked as selected). The filter parameter represents the facet-based selection; the include parameter represents the manual and query based selections; the exclude parameter represents the manual and query based de-selections. All parameters are optional such that selections can be made by filter only, by include query only, or by object references and compound values. Objects matching either the filter or the include parameter will be selected as long as they do not match the exclude parameter.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
filter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
include | selectionQueryAndObjectReferences | false | none | The query-based selection as well as the object references and compound values representing the manually included or excluded hits. |
exclude | selectionQueryAndObjectReferences | false | none | The query-based selection as well as the object references and compound values representing the manually included or excluded hits. |
selectionQueryAndObjectReferences
{
"query": {
"queries": [
null
]
},
"objectIds": [
{
"type": "string",
"id": "string"
}
],
"compoundValues": [
"string"
]
}
The query-based selection as well as the object references and compound values representing the manually included or excluded hits.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
objectIds | [objectIdentifier] | false | none | The references to the included or excluded objects. |
compoundValues | [string] | false | none | The compound values for the included or excluded resolved entities. |
setting
{
"version": 0,
"name": "string",
"value": {},
"errors": [
{
"details": [
"string"
],
"errorCode": 0,
"errors": [
null
],
"httpStatusCode": 0,
"id": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"message": "string",
"remediation": "string",
"version": 0
}
]
}
An application setting.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
name | string | false | none | The name of the application setting. |
value | object | false | none | The value of the application setting. |
errors | [error2] | false | none | Any messages related to updating the setting. |
settingCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"version": 0,
"name": "string",
"value": {},
"errors": [
{
"details": [
"string"
],
"errorCode": 0,
"errors": [
null
],
"httpStatusCode": 0,
"id": "string",
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"message": "string",
"remediation": "string",
"version": 0
}
]
}
]
}
A collection of application settings.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [setting] | false | none | The array of application/vnd.sas.sand.setting+json representations. |
summaryField
{
"name": "string",
"type": "boolean",
"value": "string",
"masked": {
"type": "full"
}
}
The content of a single field.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the field. |
type | string | false | none | The type of data the field contains. |
value | any | false | none | The value of the field. |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | number | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | boolean | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
masked | maskedFieldConfiguration | false | none | The configuration for a masked field. |
Enumerated Values
Property | Value |
---|---|
type | boolean |
type | date |
type | double |
type | float |
type | integer |
type | long |
type | text |
synonym
{
"version": 0,
"terms": "string"
}
A synonym for synonym searching. Saved and returned in a collection via /admin/config/synonyms.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
terms | string | false | none | The list of terms as a comma-separated list or as two comma-separated lists with the symbol => in the middle of them. |
synonymCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"version": 0,
"terms": "string"
}
]
}
A collection of synonyms for synonym searching.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [synonym] | false | none | The array of application/vnd.sas.sand.synonym+json representations. |
traversalRequest
{
"version": 0,
"vertexTypes": [
"string"
],
"vertexFilter": {
"filters": [
null
]
},
"edgeTypes": [
"string"
],
"edgeFilter": {
"filters": [
null
]
},
"query": {
"queries": [
null
]
},
"depth": 0,
"extendedFormat": true,
"graphObjectIds": [
{
"type": "string",
"id": "string"
}
],
"graphCompoundValues": [
"string"
]
}
The request to /traversals for performing a breadth first graph search in the Network visualization
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (3). |
vertexTypes | [string] | false | none | The optional list of object type names for restricting the search to particular types. If missing, all types will be included in the search. |
vertexFilter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
edgeTypes | [string] | false | none | The optional list of relationship type names for restricting the search to particular types. If missing, all types will be included in the search. |
edgeFilter | filter | false | none | The different filter types that can be applied to narrow or drill down into the search results. See specific filter definitions for more details. |
query | query | false | none | The different query types that can be used to search for objects. See specific query definitions for more details. |
depth | integer | false | none | The number of levels the traversal should explore. The minimum (and default) value is 1; the maximum value is 3. |
extendedFormat | boolean | false | none | Defaults to false but if set to true, edges will be returned as well as vertex degree and adjacent counts. |
graphObjectIds | [objectIdentifier] | false | none | The identifiers for additional entity vertices that should be included in the graph but are not already included in the search criteria. |
graphCompoundValues | [string] | false | none | The compound values for additional resolved entity vertices that should be included in the graph but are not already included in the search criteria. |
type
{
"version": 0,
"solution": "default",
"name": "string",
"displayName": "string",
"category": "alert",
"fields": {},
"options": {},
"config": {
"summary": {
"version": 0,
"fields": [
"string"
],
"highlighting": {
"highlighter": "unified",
"fragments": 0,
"fragmentSize": 0
}
},
"table": {
"version": 0,
"fields": [
"string"
]
},
"graph": {
"version": 0,
"fields": [
"string"
]
},
"facets": [
{
"version": 0,
"type": "dateRange"
}
],
"textAnalytics": {
"version": 0,
"fields": [
"string"
],
"fromField": "string",
"toFields": [
"string"
]
},
"events": [
{
"version": 0,
"root": "string",
"fields": {
"category": "string",
"label": "string",
"description": "string",
"pointTimestamp": "2019-08-24T14:15:22Z",
"intervalStartTimestamp": "2019-08-24T14:15:22Z",
"intervalEndTimestamp": "2019-08-24T14:15:22Z",
"longitude": "string",
"latitude": "string",
"geoJson": "string"
},
"requiredFields": [
"string"
]
}
],
"label": {
"version": 0,
"template": "string",
"values": [
"string"
]
},
"description": {
"version": 0,
"template": "string",
"values": [
"string"
]
}
},
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
The request and response for /admin/config/types/{type} when retrieving or updating the configuration for a single entity or relationship type.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (3). |
solution | string | false | none | The name of the solution. |
name | string | false | none | The unique name for the type. |
displayName | string | false | none | The localized display name for the type. Note for this release, this is the actual localized text as only one language is supported; in future, this member will be the resource key to look up the localized display name. |
category | string | false | none | The category of the type. The alert category applies to entities whose objects are generated by the Alert component and support free text, faceted, and graph search (represented by vertices in the Network visualization). The entity category (the default category) applies to all other internal and external entities and supports free text, faceted, geo, and graph search (represented by vertices in the Network visualization). The resolvedEntity category applies to resolved entities generated by the Entity Resolution component and supports free text, geo, and graph search (represented by vertices in the Network visualization). The entityRelationship category applies to relationships between internal, external, or alert entities and supports graph search (represented by edges in the Network visualization). The resolvedEntityRelationship category applies to relationships (between resolved entities and their contributing entities) generated by the Entity Resolution component and supports graph search (represented by edges in the Network visualization). |
fields | object | false | none | The field definitions keyed by field name. Field names can contain up to 150 alphanumeric characters and underscores but cannot start with an underscore. |
options | object | false | none | Any options relating to this type. The boolean option indexed_for_search specifies whether objects of this type can be indexed (defaults to true). The integer option number_of_shards specifies the number of sections that the indexed data is divided into. These sections are distributed across the underlying search engine's data nodes. The acceptable range of values is from 1 to 1024. The default value is 1. The value should be set to ensure that each shard is no bigger than 50GB but ideally somewhere between 10GB and 30GB. As a rough guide, use a value equal to the total size of the indexed data divided by 20GB. The integer option number_of_replicas specifies the number of replica shards (i.e. copies) per primary shard. These copies are distributed across the underlying search engine's data nodes to ensure high availability. The acceptable range of values is from 0 to 1024. The default value is 1. A value of 0 will disable high availability as there will be no replica shards but this is useful during the initial data load. The maximum usable value equates to the number of data nodes minus one (as a maximum of one copy of each shard can exist on each data node and one of them will be the primary copy). As a rough guide, use a value between 1 and 3. The integer option refresh_interval specifies the frequency (in seconds) by which changes to the indexed data become searchable. The default value is 1. A value of -1 disables the refresh and is therefore useful when performing large bulk operations but otherwise a positive value is expected. Warnings: 1. modifying the number_of_shards, number_of_replicas or refresh_interval options can adversely affect the performance and stability of the application and as such they should only be set by advanced users. 2. changing the indexed_for_search option to false causes all indexed data for this type to be deleted, which cannot be undone without first making a backup. |
config | typeConfiguration | false | none | The configuration relating to the various search visualizations. While each sub-section is optional, their absence will reduce the functionality available when interacting with objects or relationships of this type. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
Enumerated Values
Property | Value |
---|---|
category | alert |
category | entity |
category | resolvedEntity |
category | entityRelationship |
category | resolvedEntityRelationship |
typeCollection
{
"accept": "string",
"count": 0,
"limit": 0,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
],
"name": "string",
"start": 0,
"version": 0,
"items": [
{
"version": 0,
"solution": "default",
"name": "string",
"displayName": "string",
"category": "alert",
"fields": {},
"options": {},
"config": {
"summary": {
"version": 0,
"fields": [
"string"
],
"highlighting": {
"highlighter": "unified",
"fragments": 0,
"fragmentSize": 0
}
},
"table": {
"version": 0,
"fields": [
"string"
]
},
"graph": {
"version": 0,
"fields": [
"string"
]
},
"facets": [
{
"version": 0,
"type": "dateRange"
}
],
"textAnalytics": {
"version": 0,
"fields": [
"string"
],
"fromField": "string",
"toFields": [
"string"
]
},
"events": [
{
"version": 0,
"root": "string",
"fields": {
"category": "string",
"label": "string",
"description": "string",
"pointTimestamp": "2019-08-24T14:15:22Z",
"intervalStartTimestamp": "2019-08-24T14:15:22Z",
"intervalEndTimestamp": "2019-08-24T14:15:22Z",
"longitude": "string",
"latitude": "string",
"geoJson": "string"
},
"requiredFields": [
"string"
]
}
],
"label": {
"version": 0,
"template": "string",
"values": [
"string"
]
},
"description": {
"version": 0,
"template": "string",
"values": [
"string"
]
}
},
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
]
}
A collection of type configuration representations.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | baseCollection2 | false | none | This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an "items" array property. These extensions define the application/vnd.sas.collection media type (version 2). |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» items | [type] | false | none | The array of application/vnd.sas.sand.type+json representations. |
typeConfiguration
{
"summary": {
"version": 0,
"fields": [
"string"
],
"highlighting": {
"highlighter": "unified",
"fragments": 0,
"fragmentSize": 0
}
},
"table": {
"version": 0,
"fields": [
"string"
]
},
"graph": {
"version": 0,
"fields": [
"string"
]
},
"facets": [
{
"version": 0,
"type": "dateRange"
}
],
"textAnalytics": {
"version": 0,
"fields": [
"string"
],
"fromField": "string",
"toFields": [
"string"
]
},
"events": [
{
"version": 0,
"root": "string",
"fields": {
"category": "string",
"label": "string",
"description": "string",
"pointTimestamp": "2019-08-24T14:15:22Z",
"intervalStartTimestamp": "2019-08-24T14:15:22Z",
"intervalEndTimestamp": "2019-08-24T14:15:22Z",
"longitude": "string",
"latitude": "string",
"geoJson": "string"
},
"requiredFields": [
"string"
]
}
],
"label": {
"version": 0,
"template": "string",
"values": [
"string"
]
},
"description": {
"version": 0,
"template": "string",
"values": [
"string"
]
}
}
The configuration relating to the various search visualizations. While each sub-section is optional, their absence will reduce the functionality available when interacting with objects or relationships of this type.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
summary | typeConfigurationSummary | false | none | The configuration options for the Summary visualization. |
table | typeConfigurationTable | false | none | The configuration options for the Table visualization. |
graph | typeConfigurationGraph | false | none | The configuration options for the Network visualization |
facets | [anyOf] | false | none | The configuration options for the Facets visualization. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | typeConfigurationFacet | false | none | The configuration of a single facet for a single entity in relation to the Facets visualization. The Facets visualization presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). See specific facet configuration definitions for more details. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | typeConfigurationFacetTerms | false | none | The terms facet produces a set of hit counts categorized by field value for a given text field (or a boolean or numerical field known to have a finite set of values). |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | typeConfigurationFacetNumerical | false | none | The range facet produces a set of hit counts for configured ranges of values for a numerical field as well as supplementary information about which filters a user should be allowed to apply |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | typeConfigurationFacetType | false | none | The type facet produces a set of hit counts categorized by object type. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | typeConfigurationFacetDate | false | none | The dateRange facet produces a set of hit counts for configured ranges of values for a date field as well as supplementary information about which filters a user should be allowed to apply |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
textAnalytics | typeConfigurationTextAnalytics | false | none | The configuration options for the Text Analytics visualization. |
events | [typeConfigurationEvent] | false | none | The events configuration relating to the Map, Map Feature, Time Line, and Time Bar visualizations. This is only relevant to types of the entity category. |
label | typeConfigurationLabel | false | none | The label or description configuration. |
description | typeConfigurationLabel | false | none | The label or description configuration. |
typeConfigurationEvent
{
"version": 0,
"root": "string",
"fields": {
"category": "string",
"label": "string",
"description": "string",
"pointTimestamp": "2019-08-24T14:15:22Z",
"intervalStartTimestamp": "2019-08-24T14:15:22Z",
"intervalEndTimestamp": "2019-08-24T14:15:22Z",
"longitude": "string",
"latitude": "string",
"geoJson": "string"
},
"requiredFields": [
"string"
]
}
The configuration for extracting an event from a single entity's objects. Events capture what, when, where information and serve as the units of data for the Map, Map Feature, Time Line, and Time Bar visualizations.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
root | string | false | none | The root path. The context for the field names or paths used elsewhere in the event configuration. The path must be / delimited and end with an object or array field but not a primitive field. Also the path is limited to going via object fields and not via array fields. The default value of a single / sets the context as the top-level fields in the object. A path ending in an array field causes at most one event to be extracted for each entry in the array. |
fields | typeConfigurationEventFields | false | none | The prescription for extracting each event field and an event's location value. The prescriptions can be static text, which is literal text not extracted from the object. In other words, the event field is populated with this exact value; a field specifier (the name of a field at the specified root level or a / delimited path to a field elsewhere in the object. Field paths can be relative to the root path or absolute paths (by starting with a /). Note these paths must end in a field containing a primitive value but like the root path cannot go via fields containing arrays. The event field is populated with the value of the specified field); or tokenized text (a combination of literal text and tokens. A token is specified with {} brackets between which is a field specifier. Tokens are replaced with field values when the event is extracted). |
requiredFields | [string] | false | none | Optional list of field specifiers for object fields that must contain a value for the event to be extracted. This can be used to make the event extraction conditional on the content of fields not referenced elsewhere in the event configuration; to enforce that an event has both time and location values; or to ensure values exist for the fields used to construct the event's label or description. |
typeConfigurationEventFields
{
"category": "string",
"label": "string",
"description": "string",
"pointTimestamp": "2019-08-24T14:15:22Z",
"intervalStartTimestamp": "2019-08-24T14:15:22Z",
"intervalEndTimestamp": "2019-08-24T14:15:22Z",
"longitude": "string",
"latitude": "string",
"geoJson": "string"
}
The prescription for extracting each event field and an event's location value. The prescriptions can be static text, which is literal text not extracted from the object. In other words, the event field is populated with this exact value; a field specifier (the name of a field at the specified root level or a / delimited path to a field elsewhere in the object. Field paths can be relative to the root path or absolute paths (by starting with a /). Note these paths must end in a field containing a primitive value but like the root path cannot go via fields containing arrays. The event field is populated with the value of the specified field); or tokenized text (a combination of literal text and tokens. A token is specified with {} brackets between which is a field specifier. Tokens are replaced with field values when the event is extracted).
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
category | string | false | none | Optional static text defining the category for this event. This must be a unique value compared to other events defined for this entity. |
label | string | false | none | Optional tokenized text defining a short summary for this event. |
description | string | false | none | Optional tokenized text defining a longer summary for this event. |
pointTimestamp | string(date-time) | false | none | Optional tokenized text defining the point-in-time value for this event as an ISO formatted string. This is tokenized to allow the date and time portions of the ISO formatted string to be extracted from different fields. |
intervalStartTimestamp | string(date-time) | false | none | Optional tokenized text defining the interval start time for this event as an ISO formatted string. This is tokenized to allow the date and time portions of the ISO formatted string to be extracted from different fields. |
intervalEndTimestamp | string(date-time) | false | none | Optional tokenized text defining the interval end time for this event as an ISO formatted string. This is tokenized to allow the date and time portions of the ISO formatted string to be extracted from different fields. |
longitude | string | false | none | Optional field specifier for a field containing a valid longitude value to use when populating the location field for this event. (See the complete media type example.) |
latitude | string | false | none | Optional field specifier for a field containing a valid latitude value to use when populating the location field for this event. (See the complete media type example.) |
geoJson | string | false | none | Optional field specifier for a field containing valid GeoJSON to use when populating the location field for this event. (See the complete media type example.) |
typeConfigurationFacet
{
"version": 0,
"type": "dateRange"
}
The configuration of a single facet for a single entity in relation to the Facets visualization. The Facets visualization presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). See specific facet configuration definitions for more details.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
type | string | false | none | The type of this facet object. The value of this property determines which other properties are expected. |
Enumerated Values
Property | Value |
---|---|
type | dateRange |
type | range |
type | terms |
type | type |
typeConfigurationFacetDate
{
"version": 0,
"type": "dateRange",
"field": "string",
"accuracy": "year",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gt",
"toType": "lt",
"displayFormat": "string"
},
"ranges": [
{
"description": "string",
"id": "string",
"gt": "2019-08-24T14:15:22Z",
"gte": "2019-08-24T14:15:22Z",
"lt": "2019-08-24T14:15:22Z",
"lte": "2019-08-24T14:15:22Z"
}
]
}
The dateRange facet produces a set of hit counts for configured ranges of values for a date field as well as supplementary information about which filters a user should be allowed to apply
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | typeConfigurationFacet | false | none | The configuration of a single facet for a single entity in relation to the Facets visualization. The Facets visualization presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). See specific facet configuration definitions for more details. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» field | string | false | none | The name of the field. |
» accuracy | string | false | none | The accuracy of the filter/range parameters. Date values will be adjusted to this accuracy level prior to being used in filters. |
» filter | typeConfigurationFacetRangeFilter | false | none | The filter options intended as a guide for user entered filters on this field. The administrator is responsible for defining these appropriate to the client and customer deployment should they want to allow users to enter their own filters |
» ranges | [typeConfigurationFacetDateRange] | false | none | The administrator is responsible for configuring these ranges appropriate to the data in the customer deployment should they want to provide hints as to which range filters might be useful to apply when drilling into search results. Whilst the various range parameters are optional, at least one must be specified and only one of gt and gte can be specified and similarly for lt and lte. |
Enumerated Values
Property | Value |
---|---|
accuracy | year |
accuracy | month |
accuracy | day |
accuracy | hour |
accuracy | minute |
accuracy | second |
accuracy | millisecond |
typeConfigurationFacetDateRange
{
"description": "string",
"id": "string",
"gt": "2019-08-24T14:15:22Z",
"gte": "2019-08-24T14:15:22Z",
"lt": "2019-08-24T14:15:22Z",
"lte": "2019-08-24T14:15:22Z"
}
The configuration for a single date range.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | false | none | The description of this range. |
id | string | false | none | The id of this range. |
gt | string(date-time) | false | none | The optional ISO formatted date time string for the greater than value. |
gte | string(date-time) | false | none | The optional ISO formatted date time string for the greater than or equal to value. |
lt | string(date-time) | false | none | The optional ISO formatted date time string for the less than value. |
lte | string(date-time) | false | none | The optional ISO formatted date time string for the less than or equal to value. |
typeConfigurationFacetNumerical
{
"version": 0,
"type": "dateRange",
"field": "string",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gt",
"toType": "lt",
"displayFormat": "string"
},
"ranges": [
{
"description": "string",
"id": "string",
"gt": 0,
"gte": 0,
"lt": 0,
"lte": 0
}
]
}
The range facet produces a set of hit counts for configured ranges of values for a numerical field as well as supplementary information about which filters a user should be allowed to apply
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | typeConfigurationFacet | false | none | The configuration of a single facet for a single entity in relation to the Facets visualization. The Facets visualization presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). See specific facet configuration definitions for more details. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» field | string | false | none | The name of the field. |
» filter | typeConfigurationFacetRangeFilter | false | none | The filter options intended as a guide for user entered filters on this field. The administrator is responsible for defining these appropriate to the client and customer deployment should they want to allow users to enter their own filters |
» ranges | [typeConfigurationFacetNumericalRange] | false | none | The administrator is responsible for configuring these ranges appropriate to the data in the customer deployment should they wish to provide hints as to which range filters might be useful to apply when drilling into search results. Whilst the various range parameters are optional, at least one must be specified and only one of gt and gte can be specified and similarly for lt and lte. |
typeConfigurationFacetNumericalRange
{
"description": "string",
"id": "string",
"gt": 0,
"gte": 0,
"lt": 0,
"lte": 0
}
The configuration for a single numerical range
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | false | none | The description of this range. |
id | string | false | none | The id of this range. |
gt | number | false | none | The optional greater than value. |
gte | number | false | none | The optional greater than or equal to value. |
lt | number | false | none | The optional less than value. |
lte | number | false | none | The optional less than or equal to value. |
typeConfigurationFacetRangeFilter
{
"allowExact": true,
"allowRange": true,
"fromType": "gt",
"toType": "lt",
"displayFormat": "string"
}
The filter options intended as a guide for user entered filters on this field. The administrator is responsible for defining these appropriate to the client and customer deployment should they want to allow users to enter their own filters
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
allowExact | boolean | false | none | If true, clients should allow users to define their own filter on exact numerical values. |
allowRange | boolean | false | none | If true, clients should allow users to define their own range filter (rather than using one of the configured ranges). |
fromType | string | false | none | One of gt or gte indicating what the from range parameter should be. |
toType | string | false | none | One of lt or lte indicating what the to range parameter should be. |
displayFormat | string | false | none | An optional regular expression or other format string that can be used to validate user input. |
Enumerated Values
Property | Value |
---|---|
fromType | gt |
fromType | gte |
toType | lt |
toType | lte |
typeConfigurationFacetTerms
{
"version": 0,
"type": "dateRange",
"field": "string",
"limit": 0,
"displayLimit": 0,
"minDocCount": 0,
"orderBy": "alpha",
"orderDirection": "asc"
}
The terms facet produces a set of hit counts categorized by field value for a given text field (or a boolean or numerical field known to have a finite set of values).
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | typeConfigurationFacet | false | none | The configuration of a single facet for a single entity in relation to the Facets visualization. The Facets visualization presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). See specific facet configuration definitions for more details. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» field | string | false | none | The name of the field. |
» limit | integer | false | none | The maximum number of buckets to include in the result. The default value is 100. |
» displayLimit | integer | false | none | The maximum number of buckets to display in a UI. This is intended to be used when screen space is limited. |
» minDocCount | integer | false | none | The minimum hit count each bucket must have to be included in the result. Accepted values are 0 (no restriction) and 1 (buckets must have a hit count greater than or equal to one to be included). |
» orderBy | string | false | none | Specifies how the buckets are to be ordered. Accepted values are count (to order the buckets by hit count) and alpha (to order the buckets by term in this case). |
» orderDirection | string | false | none | Specifies the direction in which the buckets are to be ordered. Accepted values are asc (for ascending) and desc (for descending). |
Enumerated Values
Property | Value |
---|---|
orderBy | alpha |
orderBy | count |
orderDirection | asc |
orderDirection | desc |
typeConfigurationFacetType
{
"version": 0,
"type": "dateRange",
"limit": 0,
"displayLimit": 0,
"minDocCount": 0,
"orderBy": "alpha",
"orderDirection": "asc"
}
The type facet produces a set of hit counts categorized by object type.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | typeConfigurationFacet | false | none | The configuration of a single facet for a single entity in relation to the Facets visualization. The Facets visualization presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). See specific facet configuration definitions for more details. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» limit | integer | false | none | The maximum number of buckets to include in the result. The default value is 0, or no limit. |
» displayLimit | integer | false | none | The maximum number of buckets to display in a UI. This is intended to be used when screen space is limited. |
» minDocCount | integer | false | none | The minimum hit count each bucket must have to be included in the result. Accepted values are 0 (no restriction) and 1 (buckets must have a hit count greater than or equal to one to be included). |
» orderBy | string | false | none | Specifies how the buckets are to be ordered. Accepted values are count (to order the buckets by hit count) and alpha (to order the buckets by type name in this case). |
» orderDirection | string | false | none | Specifies the direction in which the buckets are to be ordered. Accepted values are asc (for ascending) and desc (for descending). |
Enumerated Values
Property | Value |
---|---|
orderBy | alpha |
orderBy | count |
orderDirection | asc |
orderDirection | desc |
typeConfigurationGraph
{
"version": 0,
"fields": [
"string"
]
}
The configuration options for the Network visualization
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
fields | [string] | false | none | The names of the fields whose values will be included in the vertex. |
typeConfigurationLabel
{
"version": 0,
"template": "string",
"values": [
"string"
]
}
The label or description configuration.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
template | string | false | none | The template for the label, which can be a mixture of static text and field substitutions. Field substitutions are represented by {i} where i is the zero based index into the list of values. As it stands, any static text will not be localized; in the future this template string will be replaced with a resource key such that the locale appropriate template string can be retrieved. |
values | [string] | false | none | The names of the fields whose values will be substituted into the template. |
typeConfigurationSummary
{
"version": 0,
"fields": [
"string"
],
"highlighting": {
"highlighter": "unified",
"fragments": 0,
"fragmentSize": 0
}
}
The configuration options for the Summary visualization.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
fields | [string] | false | none | The names of the fields whose values will be included in the summary. |
highlighting | typeConfigurationSummaryHighlighting | false | none | The highlighting options keyed by field name. |
typeConfigurationSummaryHighlighting
{
"highlighter": "unified",
"fragments": 0,
"fragmentSize": 0
}
The highlighting options keyed by field name.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
highlighter | string | false | none | The name of the highlighter to use. Accepted values are unified (the default highlighter), plain, and fvh (fast vector highlighter). For details about the supported highlighters, when to use them and the related field configuration see Highlighting in OpenSearch. |
fragments | integer | false | none | The maximum number of text fragments to include for this field. |
fragmentSize | integer | false | none | The maximum number of characters to include in each text fragment. |
Enumerated Values
Property | Value |
---|---|
highlighter | unified |
highlighter | plain |
highlighter | fvh |
typeConfigurationTable
{
"version": 0,
"fields": [
"string"
]
}
The configuration options for the Table visualization.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
fields | [string] | false | none | The names of the fields whose values will be included in the table. |
typeConfigurationTextAnalytics
{
"version": 0,
"fields": [
"string"
],
"fromField": "string",
"toFields": [
"string"
]
}
The configuration options for the Text Analytics visualization.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
fields | [string] | false | none | The names of the fields whose values will be included in the Corpus. |
fromField | string | false | none | The optional name of the field whose values will be used for the "from" nodes in the Sankey diagram. |
toFields | [string] | false | none | The optional names of the fields whose values will be used for the "to" nodes in the Sankey diagram. |
typeField
{
"displayName": "string",
"type": "boolean",
"options": {},
"innerFields": {}
}
The definition of a single field
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
displayName | string | false | none | The localized display name for the field. Note for this release, this is the actual localized text as only one language is supported; in future, this member will be the resource key to look up the localized display name. |
type | string | false | none | The type of data the field will contain. geoPoint is for fields containing an array of double where the first entry is the longitude value and the second entry is the latitude; geoShape is for fields containing GeoJSON; nested and object are for fields that contain other fields as defined by the innerFields member (nested differs in that it supports an array of values as opposed to a single set of inner fields). |
options | object | false | none | Any options relating to this field as map of string to object. The boolean option indexed_for_search specifies whether this field can be indexed (defaults to true). The format option specifies how to parse the date time values. See OpenSearch date formats for details. Text fields support a features option that accepts an array containing zero or more of: "search", "facet", "sort", "html", "phonetic", "synonym". The search feature allows the text field to be used in free-text queries by ensuring the text is analyzed using the configured search analyzers. The facet feature allows the text field to be used in terms filters and facets by ensuring that the text is analyzed using the configured facet analyzer. The sort feature allows the text field to be used to order search results by ensuring that the text is analyzed using the configured sort analyzer. The html feature ensures any html tags contained in the text field are removed when the data is indexed. The phonetic feature allows the text field to be used in phonetic searches by ensuring that the text is analyzed using the sand_phonetic analyzer. The synonym feature allows the text field to be used in synonym searches by ensuring that the text is analyzed using the sand_synonym analyzer. By default, only the search feature is enabled. However, the facet and sort features are automatically enabled when a text field is used in a terms facet or in the Table visualization, respectively. An empty array specifies that the text field should not support any of these features. In this case, search results can still be based on the content of the field but queries specifically on this field must match the content exactly. Text fields support five analyzer options to precisely control the search, facet and sort behavior. The analyzer option specifies which analyzer to use when indexing and searching the data in this text field. The default value is the most appropriate language analyzer determined by the global or tenant locale setting. This option accepts any of the standard, language or sand analyzers except for sand_not_analyzed, sand_icu_sort, sand_icu_shingle, and sand_phonetic. Note that analyzers that produce a single token are less appropriate for free-text search. The search_analyzer option specifies which analyzer to use, as an alternative to the analyzer option, when searching the data in this text field (making the analyzer option only affect the indexing of the data). Note that the output of the search analyzer must match the output of the index analyzer for there to be any results. For example, the Stop and Simple analyzers or the Synonym and appropriate language analyzers work well together. The search_quote_analyzer option specifies which analyzer to use, as an alternative to the analyzer and search_analyzer options, specifically when using quotes around query terms to search the data in this text field (making the search analyzer apply to unquoted queries). Note that the output of the quote analyzer needs to match the output of the index analyzer for there to be any results. For example, the Stop and Simple analyzers or the Synonym and appropriate language analyzers work well together. The facet_analyzer option specifies which analyzer to use for terms facets on this text field. The default value is sand_not_analyzed. This option accepts any of the standard, language or sand analyzers except for sand_icu_sort. Note that analyzers that produce a single token are more appropriate for terms facets. The sort_analyzer option specifies which analyzer to use when sorting search results based on this text field. The default value is sand_icu_sort. This option accepts any of the standard, language or sand analyzers but the default value should be used to sort results correctly for non-English locales. |
innerFields | object | false | none | The inner field definitions keyed by field name. Note this is only applicable to object or nested field types. |
Enumerated Values
Property | Value |
---|---|
type | boolean |
type | date |
type | double |
type | float |
type | geoPoint |
type | geoShape |
type | integer |
type | long |
type | nested |
type | object |
type | text |
typeStatus
{
"version": 0,
"refreshRequired": true,
"reindexRequired": true,
"links": [
{
"href": "string",
"itemType": "string",
"method": "string",
"rel": "string",
"responseItemType": "string",
"responseType": "string",
"title": "string",
"type": "string",
"uri": "string"
}
]
}
Part of the response from /admin/operations where the operation is refreshConfiguration (for checking the consistency between the cached and stored configuration)
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (1). |
refreshRequired | boolean | false | none | Whether a refresh is required to update the cached configuration. |
reindexRequired | boolean | false | none | Whether a re-index is required to update the cached configuration. |
links | [link] | false | none | Zero or more links to related resources or operations. See the link relations table for a description of the link types. |
vertex
{
"version": 0,
"id": "string",
"type": "string",
"typeLabel": "string",
"compoundValues": [
"string"
],
"label": "string",
"attachmentsCount": 0,
"adjacent": 0,
"degree": 0,
"adjacentByType": {},
"degreeByType": {},
"fields": [
{
"name": "string",
"type": "boolean",
"value": "string",
"masked": {
"type": "full"
}
}
],
"validFrom": "2019-08-24T14:15:22Z",
"validTo": "2019-08-24T14:15:22Z",
"selected": true,
"style": {
"iconName": "string",
"markerColor": "string",
"backgroundColor": "string",
"shape": "string",
"scale": 0,
"additionalLabel": "string",
"borderWidth": 0,
"borderColor": "string",
"indicatorIcons": [
{
"name": "string",
"position": "string"
}
]
}
}
The response from /vertices/{type}/{identifier} as well as more generally a vertex within the context of the Network visualization
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | integer | false | none | The representation version (2). |
id | string | false | none | The identifier of the vertex. |
type | string | false | none | The object type of the vertex. |
typeLabel | string | false | none | The localized display name of the object type. |
compoundValues | [string] | false | none | The list of compound values if this vertex is a resolved entity. |
label | string | false | none | The summary label for the vertex. |
attachmentsCount | integer | false | none | The number of attachments if the vertex is an entity object. |
adjacent | integer | false | none | The number of vertices one edge away from this vertex. |
degree | integer | false | none | The number of edges entering and leaving this vertex. |
adjacentByType | object | false | none | The adjacent count broken down by object type. The key is the entity name; the value is the adjacent count for that object type. |
degreeByType | object | false | none | The degree count broken down by relationship type. The key is the relationship type name; the value is the degree count for that relationship type. |
fields | [summaryField] | false | none | The field values (according to the object type's graph configuration). |
validFrom | string(date-time) | false | none | The optional datetime that the vertex is valid from as an ISO formatted string. |
validTo | string(date-time) | false | none | The optional datetime that the vertex is valid to as an ISO formatted string. |
selected | boolean | false | none | True if the vertex matches the selection criteria in the search request. |
style | entityStyle | false | none | A collection of properties that determine the style for an entity object |
visualizationRequest
{
"type": "facets"
}
The visualization request parameters.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of visualization. The value of this property determines which other properties are expected. |
Enumerated Values
Property | Value |
---|---|
type | facets |
type | hits |
type | map |
type | mapFeature |
type | summary |
type | table |
type | timebar |
type | timeline |
visualizationRequestOrder
{
"type": "doc",
"direction": "ascending",
"fields": [
{
"name": "string",
"entityType": "string",
"direction": "ascending"
}
]
}
The means by which the search results are to be ordered.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of order. Accepted values are doc (provides a consistent order), field (orders by field values), and score (orders by relevance in relation to the query). |
direction | string | false | none | The order direction if the type is doc or score. The default value for doc is ascending while the default for score is descending. |
fields | [visualizationRequestOrderField] | false | none | The fields to base the ordering on if the type is field. |
Enumerated Values
Property | Value |
---|---|
type | doc |
type | field |
type | score |
direction | ascending |
direction | descending |
visualizationRequestOrderField
{
"name": "string",
"entityType": "string",
"direction": "ascending"
}
The configuration for ordering by the values in a single field.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The name of the field. |
entityType | string | false | none | The name of the entity containing the field. |
direction | string | false | none | The order direction. |
Enumerated Values
Property | Value |
---|---|
direction | ascending |
direction | descending |
visualizationRequestTypeFacets
{
"type": "facets",
"types": [
"string"
],
"mode": "filter"
}
The request parameters for the Facets visualization that presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). Before this visualization can be requested, an administrator needs to define the facets for each type via the /admin/config endpoint.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequest | false | none | The visualization request parameters. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» types | [string] | false | none | The optional list of type names for restricting the facets that are returned. If missing, facets will be returned for all types found by the search. |
» mode | string | false | none | The Facets visualization mode. Accepted values are filter (highlights which filters are being used to drill into the results) and selection (highlights which filters are being used to mark results as selected). |
Enumerated Values
Property | Value |
---|---|
mode | filter |
mode | selection |
visualizationRequestTypeMap
{
"type": "facets",
"view": [
[
0
]
],
"maxFeatures": 0
}
The request parameters for the Map visualization that returns geo data in the form of events extracted from the objects found in the search. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequest | false | none | The visualization request parameters. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» view | [array] | false | none | The optional view as a geo bounded box. In other words, with the top left and bottom right coordinates. The first entry in each coordinate array should be the longitude and the second entry should be the latitude. |
» maxFeatures | integer | false | none | The maximum number of features to return before the results are clustered. The default value is 10,000. |
visualizationRequestTypeMapFeature
{
"type": "facets",
"lat": 0,
"lon": 0,
"maxEvents": 0
}
The request parameters for the Map Feature visualization that returns more detailed information about the features and events at a given location. For use in conjunction with the Map visualization.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequest | false | none | The visualization request parameters. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» lat | number | false | none | The latitude of the map feature (extracted from the Map visualization in an earlier search). |
» lon | number | false | none | The longitude of the map feature (extracted from the Map visualization in an earlier search). |
» maxEvents | integer | false | none | The maximum number of events to include in the response. Used to limit the information returned when the map feature consists of multiple events all at the same location. |
visualizationRequestTypeSummary
{
"type": "facets",
"start": 0,
"limit": 0,
"order": {
"type": "doc",
"direction": "ascending",
"fields": [
{
"name": "string",
"entityType": "string",
"direction": "ascending"
}
]
},
"fields": [
{
"entityName": "string",
"fieldNames": [
"string"
]
}
]
}
The request parameters for the Summary visualization that returns a page of summary objects, one for each object found in the search. In order to get more meaningful information returned in each summary object, an administrator is required to configure the fields and highlighting sections for each type via the /admin/config endpoint. Clients can optionally specify a set of fields for each type using the 'fields' property.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequest | false | none | The visualization request parameters. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» start | integer | false | none | The number of the first hit to include in the page of results. The very first hit is number 1, which is assumed if the parameter is missing from the request. |
» limit | integer | false | none | The maximum number of hits to include in the page of results. The minimum acceptable value is 1 and the maximum is 2000. The default value is 50, which is assumed if the parameter is missing from the request. |
» order | visualizationRequestOrder | false | none | The means by which the search results are to be ordered. |
» fields | [entityFields] | false | none | The set of fields to return grouped by entity. This overrides the fields configured by an administrator. |
visualizationRequestTypeTable
{
"type": "facets",
"start": 0,
"limit": 0,
"order": {
"type": "doc",
"direction": "ascending",
"fields": [
{
"name": "string",
"entityType": "string",
"direction": "ascending"
}
]
},
"fields": [
{
"entityName": "string",
"fieldNames": [
"string"
]
}
]
}
The request parameters for the Table visualization that returns the objects found in the search as a table where columns are fields and rows are hits. The columns can either be separately configured or supplied by the client. * When configured and results are viewed for multiple types, only the type and label columns are shown but a configurable number of columns are shown when viewing results of a single type. An administrator is therefore required to configure the columns for each type via the /admin/config endpoint before this visualization will display more detailed information. * Alternatively, the client can optionally specify a set of fields for each type using the 'fields' property.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequest | false | none | The visualization request parameters. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» start | integer | false | none | The number of the first hit to include in the page of results. The very first hit is number 1, which is assumed if the parameter is missing from the request. |
» limit | integer | false | none | The maximum number of hits to include in the page of results. The minimum acceptable value is 1 and the maximum is 500. The default value is 50, which is assumed if the parameter is missing from the request. |
» order | visualizationRequestOrder | false | none | The means by which the search results are to be ordered. |
» fields | [entityFields] | false | none | The set of fields to return grouped by entity. This overrides the fields configured by an administrator. |
visualizationRequestTypeTimebar
{
"type": "facets",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z",
"intervalCount": 0,
"geoEventsRequired": true
}
The request parameters for the Time Bar visualization that returns the number of objects found in the search categorized by intervals of time where time-related data is in the form of events. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint. This visualization is intended to be presented as a date histogram with time on the X axis and the hit count on the Y axis. The X-axis units scale depending on the amount of time events between the earliest and latest date values.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequest | false | none | The visualization request parameters. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» startTimestamp | string(date-time) | false | none | The ISO formatted string date value for the start of the view port. The earliest value in the results is used by default. |
» endTimestamp | string(date-time) | false | none | The ISO formatted string date value for the end of the view port. The latest value in the results is used by default. |
» intervalCount | integer | false | none | The maximum number of intervals the client can support. This value along with the time range is used to calculate the optimal interval size. |
» geoEventsRequired | boolean | false | none | Whether the events must also contain geo data. The default value is false to include all time events. This setting is useful when displaying this visualization along side the Map visualization. |
visualizationRequestTypeTimeline
{
"type": "facets",
"start": 0,
"limit": 0,
"order": {
"type": "doc",
"direction": "ascending",
"fields": [
{
"name": "string",
"entityType": "string",
"direction": "ascending"
}
]
},
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z",
"intervalCount": 0,
"minimumClusterSize": 0,
"paddingFactor": 0
}
The request parameters for the Time Line visualization that returns time-related data in the form of events extracted from the objects found in the search. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint. This visualization is intended to be presented as a series of charts or swim lanes, one per object, with time on the X axis and the events or swim lane entries relating to the current swim lane plotted at the appropriate points in time. The X axis units scale depending on the amount of swim lane entries between the earliest and latest date values. The swim lane entries can be individual events or clusters containing multiple events depending on the request parameters and the number of events within the same time interval.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequest | false | none | The visualization request parameters. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» start | integer | false | none | The number of the first hit to include in the page of results. The very first hit is number 1, which is assumed if the parameter is missing from the request. |
» limit | integer | false | none | The maximum number of hits to include in the page of results. The minimum acceptable value is 1 and the maximum is 500. The default value is 50, which is assumed if the parameter is missing from the request. |
» order | visualizationRequestOrder | false | none | The means by which the search results are to be ordered. |
» startTimestamp | string(date-time) | false | none | The ISO formatted string date value for the start of the view port. The earliest value in the results is used by default. |
» endTimestamp | string(date-time) | false | none | The ISO formatted string date value for the end of the view port. The latest value in the results is used by default. |
» intervalCount | integer | false | none | The number of swim lane entries per interval of time to return un-clustered. The default value is 1. |
» minimumClusterSize | integer | false | none | The minimum number of events required to compose a single cluster. The default value is 2. |
» paddingFactor | integer | false | none | The amount of context relative to the horizontal view port as a multiple of the time range. This is to help clients with smoother scrolling. |
visualizationResponse
{
"type": "facets"
}
The visualization response parameters
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of visualization. The value of this property determines which other properties are expected. |
Enumerated Values
Property | Value |
---|---|
type | facets |
type | hits |
type | map |
type | mapFeature |
type | summary |
type | table |
type | timebar |
type | timeline |
visualizationResponseTypeFacets
{
"type": "facets",
"types": [
"string"
],
"mode": "filter",
"facets": [
{
"objectType": "string",
"facets": [
{
"type": "dateRange"
}
]
}
]
}
The response parameters for the Facets visualization that presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). Before this visualization can be requested, an administrator needs to define the facets for each type via the /admin/config endpoint.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequestTypeFacets | false | none | The request parameters for the Facets visualization that presents various facets for each object type found in the search. Each facet includes the hit counts per field value (or range of field values for numerical and date fields). Before this visualization can be requested, an administrator needs to define the facets for each type via the /admin/config endpoint. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» facets | [visualizationResponseTypeFacetsGroup] | false | none | The facets grouped by type. |
visualizationResponseTypeFacetsGroup
{
"objectType": "string",
"facets": [
{
"type": "dateRange"
}
]
}
The facets for a single object type.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
objectType | string | false | none | The object type name. _all is used to denote global facets based on fields common to multiple types. |
facets | [visualizationResponseTypeFacetsGroupFacet] | false | none | The facets for the current type. |
visualizationResponseTypeFacetsGroupFacet
{
"type": "dateRange"
}
A group of facet results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of this facet object. The value of this property determines which other properties are expected. |
Enumerated Values
Property | Value |
---|---|
type | dateRange |
type | range |
type | terms |
type | type |
visualizationResponseTypeFacetsGroupFacetDate
{
"type": "dateRange",
"field": "string",
"fieldLabel": "string",
"accuracy": "year",
"hitCount": 0,
"selectedHitCount": 0,
"min": "string",
"max": "string",
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gt",
"toType": "lt",
"displayFormat": "string"
},
"userEnteredFilters": [
{
"filters": [
null
]
}
],
"ranges": [
{
"description": "string",
"id": "string",
"gt": "2019-08-24T14:15:22Z",
"gte": "2019-08-24T14:15:22Z",
"lt": "2019-08-24T14:15:22Z",
"lte": "2019-08-24T14:15:22Z",
"hitCount": 0,
"selectedHitCount": 0,
"selected": true
}
]
}
A group of date range facet results.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationResponseTypeFacetsGroupFacet | false | none | A group of facet results. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» field | string | false | none | The name of the field. |
» fieldLabel | string | false | none | The localized display name of the field. |
» accuracy | string | false | none | The accuracy of the filter/range parameters. Date values will be adjusted to this accuracy level prior to being used in filters. |
» hitCount | integer | false | none | The number of hits relevant to this facet. |
» selectedHitCount | integer | false | none | The subset of hits relevant to this facet that match the selection criteria in the search request. |
» min | string | false | none | The minimum field value found in the matching objects. |
» max | string | false | none | The maximum field value found in the matching objects. |
» filter | typeConfigurationFacetRangeFilter | false | none | The filter options intended as a guide for user entered filters on this field. The administrator is responsible for defining these appropriate to the client and customer deployment should they want to allow users to enter their own filters |
» userEnteredFilters | [filter] | false | none | The collection of user entered filters for this field provided in the search request. Intended to be used to track the users filters without requiring server or client side caching of search requests. |
» ranges | [visualizationResponseTypeFacetsGroupFacetDateRange] | false | none | The results for the configured ranges. The administrator is responsible for configuring these ranges appropriate to the data in the customer deployment should they want to provide hints as to which range filters might be useful to apply when drilling into search results. |
Enumerated Values
Property | Value |
---|---|
accuracy | year |
accuracy | month |
accuracy | day |
accuracy | hour |
accuracy | minute |
accuracy | second |
accuracy | millisecond |
visualizationResponseTypeFacetsGroupFacetDateRange
{
"description": "string",
"id": "string",
"gt": "2019-08-24T14:15:22Z",
"gte": "2019-08-24T14:15:22Z",
"lt": "2019-08-24T14:15:22Z",
"lte": "2019-08-24T14:15:22Z",
"hitCount": 0,
"selectedHitCount": 0,
"selected": true
}
The results for a pre-configured date range
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | typeConfigurationFacetDateRange | false | none | The configuration for a single date range. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» hitCount | integer | false | none | The number of hits for the current range. |
» selectedHitCount | integer | false | none | The subset of hits for the current range that match the selection criteria in the search request. |
» selected | boolean | false | none | True if the search request included a filter for this range. |
visualizationResponseTypeFacetsGroupFacetNumerical
{
"type": "dateRange",
"field": "string",
"fieldLabel": "string",
"hitCount": 0,
"selectedHitCount": 0,
"min": 0,
"max": 0,
"filter": {
"allowExact": true,
"allowRange": true,
"fromType": "gt",
"toType": "lt",
"displayFormat": "string"
},
"userEnteredFilters": [
{
"filters": [
null
]
}
],
"ranges": [
{
"description": "string",
"id": "string",
"gt": 0,
"gte": 0,
"lt": 0,
"lte": 0,
"hitCount": 0,
"selectedHitCount": 0,
"selected": true
}
]
}
A group of numerical range facet results.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationResponseTypeFacetsGroupFacet | false | none | A group of facet results. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» field | string | false | none | The name of the field. |
» fieldLabel | string | false | none | The localized display name of the field. |
» hitCount | integer | false | none | The number of hits relevant to this facet. |
» selectedHitCount | integer | false | none | The subset of hits relevant to this facet that match the selection criteria in the search request. |
» min | number | false | none | The minimum field value found in the matching objects. |
» max | number | false | none | The maximum field value found in the matching objects. |
» filter | typeConfigurationFacetRangeFilter | false | none | The filter options intended as a guide for user entered filters on this field. The administrator is responsible for defining these appropriate to the client and customer deployment should they want to allow users to enter their own filters |
» userEnteredFilters | [filter] | false | none | The collection of user entered filters for this field provided in the search request. Intended to be used to track the users filters without requiring server or client side caching of search requests. |
» ranges | [visualizationResponseTypeFacetsGroupFacetNumericalRange] | false | none | The results for the configured ranges. The administrator is responsible for configuring these ranges appropriate to the data in the customer deployment should they want to provide hints as to which range filters might be useful to apply when drilling into search results. |
visualizationResponseTypeFacetsGroupFacetNumericalRange
{
"description": "string",
"id": "string",
"gt": 0,
"gte": 0,
"lt": 0,
"lte": 0,
"hitCount": 0,
"selectedHitCount": 0,
"selected": true
}
The results for a pre-configured numerical range.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | typeConfigurationFacetNumericalRange | false | none | The configuration for a single numerical range |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» hitCount | integer | false | none | The number of hits for the current range. |
» selectedHitCount | integer | false | none | The subset of hits for the current range that match the selection criteria in the search request. |
» selected | boolean | false | none | True if the search request included a filter for this range. |
visualizationResponseTypeFacetsGroupFacetTerms
{
"type": "dateRange",
"field": "string",
"fieldLabel": "string",
"hitCount": 0,
"selectedHitCount": 0,
"displayLimit": 0,
"buckets": [
{
"term": {},
"hitCount": 0,
"selectedHitCount": 0,
"selected": true
}
]
}
A group of terms facet results
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationResponseTypeFacetsGroupFacet | false | none | A group of facet results. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» field | string | false | none | The name of the field. |
» fieldLabel | string | false | none | The localized display name of the field. |
» hitCount | integer | false | none | The number of hits relevant to this facet. |
» selectedHitCount | integer | false | none | The subset of hits relevant to this facet that match the selection criteria in the search request. |
» displayLimit | integer | false | none | A limit on the number of buckets to display in a UI should the buckets list be greater than this limit. Intended to be set by the administrator if screen space is limited. There is a separately configurable hard limit to restrict the number of buckets returned. |
» buckets | [visualizationResponseTypeFacetsGroupFacetTermsBucket] | false | none | The results for this facet. |
visualizationResponseTypeFacetsGroupFacetTermsBucket
{
"term": {},
"hitCount": 0,
"selectedHitCount": 0,
"selected": true
}
A bucket for the terms facet.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
term | object | false | none | The field value. This will normally be a string but can be a boolean or numerical value if the facet is configured for such a field. |
hitCount | integer | false | none | The number of hits for the current field value. |
selectedHitCount | integer | false | none | The subset of hits for the field value that match the selection criteria in the search request. |
selected | boolean | false | none | True if the search request included a filter on the current field value. |
visualizationResponseTypeFacetsGroupFacetType
{
"type": "dateRange",
"hitCount": 0,
"selectedHitCount": 0,
"displayLimit": 0,
"buckets": [
{
"type": "string",
"typeLabel": "string",
"hitCount": 0,
"selectedHitCount": 0,
"selected": true
}
]
}
A group of type facet results.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationResponseTypeFacetsGroupFacet | false | none | A group of facet results. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» hitCount | integer | false | none | The number of hits relevant to this facet. |
» selectedHitCount | integer | false | none | The subset of hits relevant to this facet that match the selection criteria in the search request. |
» displayLimit | integer | false | none | A limit on the number of buckets to display in a UI should the buckets list be greater than this limit. Intended to be set by the administrator if screen space is limited. There is a separately configurable hard limit to restrict the number of buckets returned. |
» buckets | [visualizationResponseTypeFacetsGroupFacetTypeBucket] | false | none | The results for this facet. |
visualizationResponseTypeFacetsGroupFacetTypeBucket
{
"type": "string",
"typeLabel": "string",
"hitCount": 0,
"selectedHitCount": 0,
"selected": true
}
A bucket for the type facet.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The object type name. |
typeLabel | string | false | none | The localized display name for the type. |
hitCount | integer | false | none | The number of hits for the current type. |
selectedHitCount | integer | false | none | The subset of hits for the current type that match the selection criteria in the search request. |
selected | boolean | false | none | True if the search request included a filter on the current type. |
visualizationResponseTypeHits
{
"type": "facets",
"hitCount": 0,
"hitsPerType": [
{
"type": "string",
"hitCount": 0
}
]
}
The response parameters for the Hits visualization that returns the number of objects that matched the search criteria broken down by type. Can be presented to the user as a histogram.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationResponse | false | none | The visualization response parameters |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» hitCount | integer | false | none | The total number of objects that matched the search criteria. |
» hitsPerType | [visualizationResponseTypeHitsCount] | false | none | The number of objects that matched the search criteria broken down by type. This is an array rather than a map to preserve the order of the results. Ordered by descending hit count. |
visualizationResponseTypeHitsCount
{
"type": "string",
"hitCount": 0
}
The hit count for a single entity
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The name of the entity. |
hitCount | integer | false | none | The number of objects of this type that matched the search criteria. |
visualizationResponseTypeMap
{
"type": "facets",
"view": [
[
0
]
],
"maxFeatures": 0,
"hitCount": 0,
"eventCount": 0,
"featureCount": 0,
"approxGlobalFeatureCount": 0,
"features": {
"type": "string",
"features": [
{
"type": "string",
"geometry": {},
"properties": {
"events": [
{
"version": 0,
"eventId": "string",
"eventCategory": "string",
"eventLabel": "string",
"eventDescription": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"objectLabel": "string",
"objectDescription": "string",
"objectAttachmentCount": 0,
"selected": true,
"group": "string",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z"
}
],
"eventCount": 0,
"selectedEventCount": 0
}
}
]
},
"clusters": [
{
"geohash": "string",
"bounds": [
[
0
]
],
"count": 0,
"selectedCount": 0
}
]
}
The response parameters for the Map visualization that returns geo data in the form of events extracted from the objects found in the search. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequestTypeMap | false | none | The request parameters for the Map visualization that returns geo data in the form of events extracted from the objects found in the search. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» hitCount | integer | false | none | The number of objects found in the search that contain geo events. |
» eventCount | integer | false | none | The number of geo events found in the search. |
» featureCount | integer | false | none | The number of features in the response. |
» approxGlobalFeatureCount | integer | false | none | An approximation for the total number of features in the indexed objects. |
» features | geoJsonFeatureCollection | false | none | The GeoJSON feature collection returned as part of the Map visualization when the results are not clustered. |
» clusters | [visualizationResponseTypeMapCluster] | false | none | The clusters when the results are clustered. |
visualizationResponseTypeMapCluster
{
"geohash": "string",
"bounds": [
[
0
]
],
"count": 0,
"selectedCount": 0
}
A cluster of Map visualization results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
geohash | string | false | none | The geo hash string representing the location of this cluster. |
bounds | [array] | false | none | The geo bounded box (coordinates array) representing the location of this cluster. |
count | integer | false | none | The number of events in this cluster. |
selectedCount | integer | false | none | The subset of events in this cluster that match the selection criteria in the search request. |
visualizationResponseTypeMapFeature
{
"type": "facets",
"lat": 0,
"lon": 0,
"maxEvents": 0,
"features": {
"type": "string",
"features": [
{
"type": "string",
"geometry": {},
"properties": {
"events": [
{
"version": 0,
"eventId": "string",
"eventCategory": "string",
"eventLabel": "string",
"eventDescription": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"objectLabel": "string",
"objectDescription": "string",
"objectAttachmentCount": 0,
"selected": true,
"group": "string",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z"
}
],
"eventCount": 0,
"selectedEventCount": 0
}
}
]
}
}
The response parameters for the Map Feature visualization that returns more detailed information about the features and events at a given location. For use in conjunction with the Map visualization.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequestTypeMapFeature | false | none | The request parameters for the Map Feature visualization that returns more detailed information about the features and events at a given location. For use in conjunction with the Map visualization. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» features | geoJsonFeatureCollection | false | none | The GeoJSON feature collection returned as part of the Map visualization when the results are not clustered. |
visualizationResponseTypeSummary
{
"type": "facets",
"start": 0,
"limit": 0,
"order": {
"type": "doc",
"direction": "ascending",
"fields": [
{
"name": "string",
"entityType": "string",
"direction": "ascending"
}
]
},
"fields": [
{
"entityName": "string",
"fieldNames": [
"string"
]
}
],
"hitCount": 0,
"results": [
{
"id": "string",
"type": "string",
"typeLabel": "string",
"compoundValues": [
"string"
],
"label": "string",
"attachmentsCount": 0,
"fields": [
{
"name": "string",
"type": "boolean",
"value": "string",
"masked": {
"type": "full"
}
}
],
"highlighting": {}
}
]
}
The response parameters for the Summary visualization that returns a page of summary objects, one for each object found in the search. In order to get more meaningful information returned in each summary object, an administrator is required to configure the fields and highlighting sections for each type via the /admin/config endpoint. Clients can optionally specify a set of fields for each type using the 'fields' property.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequestTypeSummary | false | none | The request parameters for the Summary visualization that returns a page of summary objects, one for each object found in the search. In order to get more meaningful information returned in each summary object, an administrator is required to configure the fields and highlighting sections for each type via the /admin/config endpoint. Clients can optionally specify a set of fields for each type using the 'fields' property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» hitCount | integer | false | none | The total number of objects that matched the search criteria. |
» results | [visualizationResponseTypeSummaryResult] | false | none | The result objects for the requested page of hits. |
visualizationResponseTypeSummaryResult
{
"id": "string",
"type": "string",
"typeLabel": "string",
"compoundValues": [
"string"
],
"label": "string",
"attachmentsCount": 0,
"fields": [
{
"name": "string",
"type": "boolean",
"value": "string",
"masked": {
"type": "full"
}
}
],
"highlighting": {}
}
The result object for a single hit.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The identifier of the object. |
type | string | false | none | The type of the object. |
typeLabel | string | false | none | The localized display name for the type. |
compoundValues | [string] | false | none | The list of entity compound values if this summary is for a resolved entity object. |
label | string | false | none | The summary label for the object. |
attachmentsCount | integer | false | none | The number of attachments on the object if this summary is for an entity object. |
fields | [summaryField] | false | none | The field values (according to the object type's summary configuration). |
highlighting | object | false | none | The highlighted text fragments matching the search query keyed on the field name (according to the object type's summary configuration). |
visualizationResponseTypeTable
{
"type": "facets",
"start": 0,
"limit": 0,
"order": {
"type": "doc",
"direction": "ascending",
"fields": [
{
"name": "string",
"entityType": "string",
"direction": "ascending"
}
]
},
"fields": [
{
"entityName": "string",
"fieldNames": [
"string"
]
}
],
"hitCount": 0,
"columnHeadings": [
{
"field": "string",
"label": "string",
"type": "boolean",
"masked": {
"type": "full"
}
}
],
"data": [
null
]
}
The response parameters for the Table visualization that returns the objects found in the search as a table where columns are fields and rows are hits. When results are viewed for multiple types, only the type and label columns are shown but a configurable number of columns are shown when viewing results of a single type. In order to get more meaningful information returned in each table object, an administrator is required to configure the columns for each type via the /admin/config endpoint. Clients can optionally specify a set of fields for each type using the 'fields' property. In this case, a single column will be returned for fields with the same name and type. If one of those fields is masked, all of the values for that column will be masked.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequestTypeTable | false | none | The request parameters for the Table visualization that returns the objects found in the search as a table where columns are fields and rows are hits. The columns can either be separately configured or supplied by the client. * When configured and results are viewed for multiple types, only the type and label columns are shown but a configurable number of columns are shown when viewing results of a single type. An administrator is therefore required to configure the columns for each type via the /admin/config endpoint before this visualization will display more detailed information. * Alternatively, the client can optionally specify a set of fields for each type using the 'fields' property. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» hitCount | integer | false | none | The total number of objects that matched the search criteria. |
» columnHeadings | [visualizationResponseTypeTableColumn] | false | none | The columns for the requested page of hits. |
» data | [any] | false | none | The row data for the requested page of hits. Each array entry represents a single row as a map keyed by field name (matching up with the column headings). All rows have an id data entry for their unique identifier. Rows relating to resolved entities have an additional, compoundValues data entry for their unique set of compound values. |
visualizationResponseTypeTableColumn
{
"field": "string",
"label": "string",
"type": "boolean",
"masked": {
"type": "full"
}
}
A column within the context of the Table visualization.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
field | string | false | none | The name of the field. |
label | string | false | none | The localized display name for the field. |
type | string | false | none | The type of field data. |
masked | maskedFieldConfiguration | false | none | The configuration for a masked field. |
Enumerated Values
Property | Value |
---|---|
type | boolean |
type | date |
type | double |
type | float |
type | integer |
type | long |
type | text |
visualizationResponseTypeTimebar
{
"type": "facets",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z",
"intervalCount": 0,
"geoEventsRequired": true,
"hitCount": 0,
"eventCount": 0,
"globalMinTime": "2019-08-24T14:15:22Z",
"globalMaxTime": "2019-08-24T14:15:22Z",
"interval": "oneHundredYear",
"intervalSize": 0,
"timebarIntervals": [
{
"start": "2019-08-24T14:15:22Z",
"hitCount": 0
}
]
}
The response parameters for the Time Bar visualization that returns the number of objects found in the search categorized by intervals of time where time-related data is in the form of events. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoints. This visualization is intended to be presented as a date histogram with time on the X axis and the hit count on the Y axis. The X-axis units scale depending on the amount of time events in the search results.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequestTypeTimebar | false | none | The request parameters for the Time Bar visualization that returns the number of objects found in the search categorized by intervals of time where time-related data is in the form of events. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint. This visualization is intended to be presented as a date histogram with time on the X axis and the hit count on the Y axis. The X-axis units scale depending on the amount of time events between the earliest and latest date values. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» hitCount | integer | false | none | The number of objects found in the search that have time events. |
» eventCount | integer | false | none | The number of time events from the objects found in the search. |
» globalMinTime | string(date-time) | false | none | The ISO formatted string for the minimum time value found in the search results. |
» globalMaxTime | string(date-time) | false | none | The ISO formatted string for the maximum time value found in the search results. |
» interval | string | false | none | The units for the X axis. |
» intervalSize | integer | false | none | The units for the X axis in milliseconds. |
» timebarIntervals | [visualizationResponseTypeTimebarInterval] | false | none | The number of objects found in the search that have time events. This is an array rather than a map to preserve the time order of the results. |
Enumerated Values
Property | Value |
---|---|
interval | oneHundredYear |
interval | fiftyYear |
interval | tenYear |
interval | year |
interval | quarter |
interval | month |
interval | week |
interval | day |
interval | hour |
interval | minute |
interval | second |
visualizationResponseTypeTimebarInterval
{
"start": "2019-08-24T14:15:22Z",
"hitCount": 0
}
An interval within the context of the Time Bar visualization.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
start | string(date-time) | false | none | The ISO formatted string for the date time value. |
hitCount | integer | false | none | The number of objects with events within this interval. |
visualizationResponseTypeTimeline
{
"type": "facets",
"start": 0,
"limit": 0,
"order": {
"type": "doc",
"direction": "ascending",
"fields": [
{
"name": "string",
"entityType": "string",
"direction": "ascending"
}
]
},
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z",
"intervalCount": 0,
"minimumClusterSize": 0,
"paddingFactor": 0,
"interval": "oneHundredYear",
"hitCount": 0,
"eventCount": 0,
"globalMinTime": "2019-08-24T14:15:22Z",
"globalMaxTime": "2019-08-24T14:15:22Z",
"minTime": "2019-08-24T14:15:22Z",
"maxTime": "2019-08-24T14:15:22Z",
"swimLanes": [
{
"id": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"label": "string",
"description": "string",
"attachmentsCount": 0,
"selected": true
}
],
"swimLaneEntries": [
{
"version": 0,
"eventId": "string",
"eventCategory": "string",
"eventLabel": "string",
"eventDescription": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"objectLabel": "string",
"objectDescription": "string",
"objectAttachmentCount": 0,
"selected": true,
"group": "string",
"startTimestamp": "2019-08-24T14:15:22Z",
"endTimestamp": "2019-08-24T14:15:22Z"
}
]
}
The response parameters for the Time Line visualization that returns time-related data in the form of events extracted from the objects found in the search. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint. This visualization is intended to be presented as a series of charts or swim lanes, one per object, with time on the X axis and the events or swim lane entries relating to the current swim lane plotted at the appropriate points in time. The X axis units scale depending on the amount of swim lane entries. The swim lane entries can be individual events or clusters containing multiple events depending on the request parameters and the number of events within the same time interval.
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | visualizationRequestTypeTimeline | false | none | The request parameters for the Time Line visualization that returns time-related data in the form of events extracted from the objects found in the search. An event captures what, when, where information. Events are extracted from objects as they are indexed. Before this visualization can be requested and preferably before any data is indexed (data can always be re-indexed when events configuration changes), an administrator needs to define which events to extract from each entity via the /admin/config endpoint. This visualization is intended to be presented as a series of charts or swim lanes, one per object, with time on the X axis and the events or swim lane entries relating to the current swim lane plotted at the appropriate points in time. The X axis units scale depending on the amount of swim lane entries between the earliest and latest date values. The swim lane entries can be individual events or clusters containing multiple events depending on the request parameters and the number of events within the same time interval. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» interval | string | false | none | The units for the X axis. |
» hitCount | integer | false | none | The number of objects found in the search that have time events. |
» eventCount | integer | false | none | The number of time events from the objects found in the search. |
» globalMinTime | string(date-time) | false | none | The ISO formatted string for the minimum time value found in the search results. |
» globalMaxTime | string(date-time) | false | none | The ISO formatted string for the maximum time value found in the search results. |
» minTime | string(date-time) | false | none | The ISO formatted string for the minimum time value found in the current page of results. |
» maxTime | string(date-time) | false | none | The ISO formatted string for the maximum time value found in the current page of results. |
» swimLanes | [visualizationResponseTypeTimelineSwimLane] | false | none | The objects found in the search that have time events. |
» swimLaneEntries | [event] | false | none | The time events from the objects found in the search. |
Enumerated Values
Property | Value |
---|---|
interval | oneHundredYear |
interval | fiftyYear |
interval | tenYear |
interval | year |
interval | quarter |
interval | month |
interval | week |
interval | day |
interval | hour |
interval | minute |
interval | second |
visualizationResponseTypeTimelineSwimLane
{
"id": "string",
"objectId": "string",
"objectType": "string",
"objectTypeLabel": "string",
"label": "string",
"description": "string",
"attachmentsCount": 0,
"selected": true
}
A single swim lane in the context of the Time Line visualization.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The unique identifier for the swim lane. |
objectId | string | false | none | The identifier for the object if this swim lane is for an entity object. |
objectType | string | false | none | The object type name if this swim lane is for an entity object. |
objectTypeLabel | string | false | none | The localized display name for the object type if this swim lane is for an entity object. |
label | string | false | none | The summary label for the object. |
description | string | false | none | The summary description if this swim lane is for an entity object. |
attachmentsCount | integer | false | none | The number of attachments if this swim lane is for an entity object. |
selected | boolean | false | none | True if the object matches the selection criteria in the search request. |