IBM Cloud API Docs

Introduction

IBM Match 360 (Beta) provides APIs that enable you to connect the IBM Match 360 service's powerful master data matching capabilities to your systems and processes. IBM Match 360 is an IBM Cloud service delivered through IBM Cloud Pak for Data as a Service that enables you to establish a single, trusted, 360-degree view of your customers -- a digital twin. IBM Match 360 includes cloud-native, machine learning-assisted, self-service analytics and matching tools that deliver better business insights.

Business users and systems can access IBM Match 360 data to search, view, and analyze master data entities. With IBM Match 360 on Cloud Pak for Data as a Service, you can ensure that your users and systems have a total view of your data. With a seamlessly integrated, cross-solution cloud experience, your users can discover master data directly in the space where they expect to consume it.

The IBM Match 360 APIs support:

  • Loading and mapping data
  • Customizing the data model
  • Configuring the matching algorithm
  • Running matching
  • Retrieving master data entity and record details
  • MDM job management

For more information about using the IBM Match 360 service, see the Cloud Pak for Data as a Service documentation.

Tip: To access the API documentation by using the Swagger UI tool, open a web browser and go to: https://api.{endpoint-location}.mdm.watson.cloud.ibm.com/api-{api-name}/explorer/. Replace {endpoint-location} in the URL with the location code of your deployment's multizone region, and replace {api-name} with the name of the IBM Match 360 API service you are accessing: data, model, job, matching, or configuration. For example, to access the APIs in the Dallas global endpoint (us-south), go to the following URLs: - Configuration API: https://api.us-south.mdm.watson.cloud.ibm.com/api-configuration/explorer/ - Entity Maintenance API: https://api.us-south.mdm.watson.cloud.ibm.com/api-data/explorer/ - Job API: https://api.us-south.mdm.watson.cloud.ibm.com/api-job/explorer/ - Matching API: https://api.us-south.mdm.watson.cloud.ibm.com/api-matching/explorer/ - Model API: https://api.us-south.mdm.watson.cloud.ibm.com/api-model/explorer/

The code examples on this tab use the client library that is provided for Node.js.

Installation

npm install --save master-data—management-cloud

The code examples on this tab use the client library that is provided for Java.

Maven

<dependency>
  <groupId>com.ibm.cloud</groupId>
  <artifactId>mdm</artifactId>
  <version>1.0.6</version>
</dependency>

Gradle

implementation 'com.ibm.cloud:mdm:1.0.6'

The code examples on this tab use the client library that is provided for Python.

Installation

pip install master-data-management

Endpoint URLs

The IBM Match 360 API uses the Dallas global endpoint URL for all regions. When you call the API, add the path for each method to form the complete API endpoint for your requests.

https://api.dataplatform.cloud.ibm.com

Example request to the Dallas endpoint

curl -u "apikey:{apikey}" -X {request_method} "https://api.dataplatform.cloud.ibm.com/{method_endpoint}"

Replace {apikey}, {request_method}, and {method_endpoint} in this example with the values for your particular API call.

Example request to the Dallas endpoint

const MasterDataManagementV1 = require('ibm/master-data-management/v4');
const { IamAuthenticator } = require('ibm/auth');

const masterDataManagement = new MasterDataManagementV1({
  version: '{version}',
  authenticator: new IamAuthenticator({
    apikey: '{apikey}',
  }),
  url: 'https://api.dataplatform.cloud.ibm.com/{method_endpoint}',
});

Replace {apikey}, {version}, and {method_endpoint} in this example with the values for your particular API call.

Example request to the Dallas endpoint

import com.ibm.cloud.sdk.core.security.BearerTokenAuthenticator;
import com.ibm.cloud.mdm.v1.Mdm;
Authenticator authenticator = new BearerTokenAuthenticator("<access-token>");
Mdm mdm = new Mdm(crn, Mdm.DEFAULT_SERVICE_NAME, authenticator);

Replace <access-token> in this example with the values for your particular API call.

Later, when the access token expires, the application must acquire a new access token, then set it on the authenticator. Subsequent request invocations will include the new access token.

authenticator.setBearerToken("<new-access-token>")

Alternatively, use external configuration and provide values for the below properties

MDM_URL=https://api.dataplatform.cloud.ibm.com/
MDM_AUTH_TYPE=bearertoken
MDM_BEARER_TOKEN=<access-token>

and access the service using

Mdm service = Mdm.newInstance(crn);

Example request to the Dallas endpoint

from ibm import MasterDataManagementV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

authenticator = IAMAuthenticator('{apikey}')
master_data_management = MasterDataManagementV1(
    version='{version}',
    authenticator=authenticator
)

master_data_management.set_service_url('https://api.dataplatform.cloud.ibm.com/{method_endpoint}')

Replace {apikey}, {version}, and {method_endpoint} in this example with the values for your particular API call.

Error handling

This API uses standard HTTP response codes to indicate whether a method completed successfully. A 200 response indicates success. A 400 type response indicates a failure, and a 500 type response indicates an internal system error.

HTTP error code Description Recovery
200 Success The request was successful.
400 Bad Request The input parameters in the request body are either incomplete or in the wrong format. Be sure to include all required parameters in your request.
401 Unauthorized You are not authorized to make this request. Log in to IBM Cloud and try again. If this error persists, contact the account owner to check your permissions.
403 Forbidden The supplied authentication is not authorized to access '{namespace}'.
404 Not Found The requested resource could not be found.
408 Request Timeout The connection to the server timed out. Wait a few minutes, then try again.
409 Conflict The entity is already in the requested state.
500 Internal Server Error offering_name is currently unavailable. Your request could not be processed. Wait a few minutes and try again.

ErrorContainer

Field name Type Description
status_code integer The HTTP status code of the response.
errors List<ErrorMessage> A list of errors.
trace string The lower case UUID that uniquely identies the request.

ErrorMessage

Field name Type Description
code string A snake_case string succinctly identifying the problem.
message string An explanation of the solution to the problem.
more_info string A publicly-accessible URL where information about the error can be read in a web browser.
target ErrorTarget An error target model.

ErrorTarget

Field name Type Description
type string The type of the error target. One of: field, parameter, or header.
name string The name of the field, parameter, or header.

When the Node SDK receives an error response from the IBM Match 360 service, it creates an Error object with information describing the error that occurred. This error object is passed as the first parameter to the callback function for the method. The contents of the error object are as shown in the following table:

Errors

Error field Description
code The HTTP status code returned.
message A message describing the error.

The Java SDK generates an exception for any unsuccessful method invocation. All methods that accept an argument can also throw an IllegalArgumentException.

Exception Description
IllegalArgumentException An invalid argument was passed to the method.

When the Java SDK receives an error response from the IBM Match 360 service, it generates an exception from the com.ibm.master_data_management.service.exception package. All service exceptions contain the following fields:

Error field Description
statusCode The HTTP status code returned
message A message describing the error

The Python SDK generates an exception for any unsuccessful method invocation. When the Python SDK receives an error response from the IBM Match 360 service, it generates a MasterDataManagementAPIException containing the following fields:

Error field Description
code The HTTP status code returned
message A message describing the error
info A dictionary of additional information about the error
masterDataManagement.method(params,
    function(err, response) {
        // The error will be the first argument of the callback
        if (err.code == 404) {
            // Handle Not Found (404) error
        } else if (err.code == 413) {
            // Handle Request Too Large (413) error
        } else {
            console.log('Unexpected error: ', err.code);
            console.log('error:', err);
        }
    });

Example error handling

try {
    // Invoke an IBM Match 360 method
} catch (NotFoundException e) {
    // Handle Not Found (404) exception
} catch (RequestTooLargeException e) {
    // Handle Request Too Large (413) exception
} catch (ServiceResponseException e) {
    // Base class for all exceptions caused by error responses from the service
    System.out.println("Service returned status code " + e.getStatusCode() + ": " + e.getMessage());
}

Example error handling

from master_data_management import MasterDataManagementAPIException
try:
    # Invoke an IBM Match 360 method
except MasterDataManagementAPIException as ex:
    print "Method failed with status code " + str(ex.code) + ": " + ex.message

Authentication

To authenticate to the IBM Match 360 API, you pass a bearer token in an Authorization header. The token is associated with a user name.

The bearer authentication token can be obtained using cURL: curl -X POST https://iam.cloud.ibm.com/identity/token -H "content-type: application/x-www-form-urlencoded" -H "accept: application/json" -d "grant_type=urn%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey&apikey=APIKEY"

The following cURL example shows authentication being passed using a bearer token: curl -X PUT --header "Authorization: Bearer {accessToken}" --header "Accept: application/json" "{url}/mdm/configuration/v1/config_data_model/publish_model?project_id=config_42d00915_1497_4d65_90af_cfd09d015769%3A31925406598685396&crn=CRN”

Replace {accessToken} with your authentication bearer token.

Generating a bearer token. The response includes an accessToken property.

Replace {cpd_cluster_host} and {port} with the details for the service instance. Replace {username} and {password} with your IBM Cloud Pak for Data credentials.

curl -k -u "{username}:{password}" "https://{cpd_cluster_host}{:port}/v1/preauth/validateAuth"

Authenticating to the API. Replace {accessToken} with your authentication bearer token.

curl -H "Authorization: Bearer {accessToken}" "{url}/v1/{method}"

Example header parameter in a request

masterDataManagement.methodName(
    {
        parameters,
        headers: {
            'Custom-Header': '{header_value}'
        }
    }, function(err, response) {
        if (err)
            console.log('error:', err);
        else
            console.log(response);
    }
);

Example header parameter in a request

ReturnType returnValue = masterDataManagement.methodName(parameters)
        .addHeader("Custom-Header", "{header_value}")
        .execute();

Example header parameter in a request

response = masterDataManagement.methodName(
    parameters,
    headers = {
        'Custom-Header': '{header_value}'
    })

Methods

Get config data model

Gets the data model present in configuration space.

Gets the data model present in configuration space.

GET /mdm/v1/config_data_model
ServiceCall<ConfigDataModel> getConfiguratorConfigDataModel(GetConfiguratorConfigDataModelOptions getConfiguratorConfigDataModelOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.read

Request

Use the GetConfiguratorConfigDataModelOptions.Builder to create a GetConfiguratorConfigDataModelOptions object that contains the parameter values for the getConfiguratorConfigDataModel method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/config_data_model?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetConfiguratorConfigDataModelOptions getConfiguratorConfigDataModelOptions = new GetConfiguratorConfigDataModelOptions();
    
    Response<ConfigDataModel> response = mdmService.getConfiguratorConfigDataModel(getConfiguratorConfigDataModelOptions).execute();
    ConfigDataModel configDataModel = response.getResult();
    
    System.out.println(configDataModel);

Response

Collection of locale, record types, relationship types, system properties definition in configuration space.

Collection of locale, record types, relationship types, system properties definition in configuration space.

Status Code

  • Config data model is returned

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting config data model. An internal error occurred while attempting to get config data model.

Example responses
  • {
      "record_types": [
        {
          "name": "person",
          "default_display_name": "person",
          "properties": [
            {
              "name": "record_source",
              "data_type": "String",
              "default_display_name": "Record Source",
              "designation": "source"
            },
            {
              "name": "social_security_number",
              "data_type": "identification",
              "cardinality": "*",
              "default_display_name": "Social Security Number"
            }
          ],
          "source_systems": [
            {
              "name": "MDMSP",
              "default_display_name": "MDMS Person",
              "quality_factors": {
                "completeness": 100,
                "accuracy": 100,
                "correctness": 100,
                "age_relevancy": 100,
                "data_relevancy": 100,
                "consistency": 100
              }
            }
          ]
        }
      ],
      "data_types": [
        {
          "name": "identification",
          "default_display_name": "identification",
          "properties": [
            {
              "name": "identification",
              "data_type": "String",
              "default_display_name": "Identification Value"
            },
            {
              "name": "identification_number",
              "data_type": "String",
              "default_display_name": "Identification Number"
            }
          ]
        }
      ]
    }
  • {
      "record_types": [
        {
          "name": "person",
          "default_display_name": "person",
          "properties": [
            {
              "name": "record_source",
              "data_type": "String",
              "default_display_name": "Record Source",
              "designation": "source"
            },
            {
              "name": "social_security_number",
              "data_type": "identification",
              "cardinality": "*",
              "default_display_name": "Social Security Number"
            }
          ],
          "source_systems": [
            {
              "name": "MDMSP",
              "default_display_name": "MDMS Person",
              "quality_factors": {
                "completeness": 100,
                "accuracy": 100,
                "correctness": 100,
                "age_relevancy": 100,
                "data_relevancy": 100,
                "consistency": 100
              }
            }
          ]
        }
      ],
      "data_types": [
        {
          "name": "identification",
          "default_display_name": "identification",
          "properties": [
            {
              "name": "identification",
              "data_type": "String",
              "default_display_name": "Identification Value"
            },
            {
              "name": "identification_number",
              "data_type": "String",
              "default_display_name": "Identification Number"
            }
          ]
        }
      ]
    }

Replace Config Data Model

Replaces the config data model present in configuration space.

Replaces the config data model present in configuration space.

PUT /mdm/v1/config_data_model
ServiceCall<ConfigDataModel> replaceConfiguratorConfigDataModel(ReplaceConfiguratorConfigDataModelOptions replaceConfiguratorConfigDataModelOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.manage

Request

Use the ReplaceConfiguratorConfigDataModelOptions.Builder to create a ReplaceConfiguratorConfigDataModelOptions object that contains the parameter values for the replaceConfiguratorConfigDataModel method.

Query Parameters

  • The cloud resource name of the service.

Collection of locale, record types, relationship types, system properties definition in configuration space.

Examples:
ConfigDataModelExample

The replaceConfiguratorConfigDataModel options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/config_data_model?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"locale":"en_us","system_properties":{"record_types":{"collection_id":{"label":"Collection ID","description":"Optional identifier for identifying a collection of records","data_type":"String","editable":true,"indexed":true},"record_source":{"label":"Record source","description":"A user provided record source.","data_type":"String","editable":true,"indexed":true},"record_id":{"label":"Record identifier","description":"User provided or autogenerated record identifier","data_type":"String","editable":true,"indexed":true},"record_number":{"label":"Record number","description":"System generated record number","data_type":"String","editable":false,"indexed":true},"record_last_updated":{"label":"Record last updated","description":"System generated record last updated","data_type":"Long","editable":false,"indexed":false}},"entity_types":{"entity_id":{"label":"Entity identifier","data_type":"String","editable":false,"indexed":true},"entity_last_updated":{"label":"Entity last updated time","data_type":"Long","editable":false,"indexed":false}},"attribute_types":{"attribute_last_updated":{"label":"Attribute last updated date","description":"Entity last updated time","data_type":"Long","editable":false,"indexed":false}},"relationship_types":{"relationship_last_updated":{"label":"Relationship last updated date","description":"Entity last updated time","data_type":"Long","editable":false,"indexed":false}}},"record_types":{"person":{"label":"Person","description":"The record type for person records.","entity_types":{"person_entity":{"label":"Person Entity","description":"The entity type for person records."}},"attributes":{"birth_date":{"label":"Birth Date","description":"The birth date associated with this person record.","attribute_type":"string","classification":"","cardinality":"LIST","indexed":true,"matching_type":"DATE"},"gender":{"label":"Gender","description":"The gender of the the person associated with this record.","attribute_type":"string","classification":"","cardinality":"LIST","indexed":true,"matching_type":"GENDER"},"primary_residence":{"label":"Primary Residence","description":"Indicates that this address is a primary residence.","attribute_type":"address","classification":"","cardinality":"LIST","indexed":true},"mailing_address":{"label":"Mailing Address","description":"Indicates that this address is a mailing address.","attribute_type":"address","classification":"","cardinality":"LIST","indexed":true},"home_telephone":{"label":"Home Telephone","description":"Indicates that this phone number is for a home telephone.","attribute_type":"telephone","classification":"","cardinality":"LIST","indexed":true},"mobile_telephone":{"label":"Mobile Telephone","description":"Indicates that this phone number is for a mobile telephone.","attribute_type":"telephone","classification":"","cardinality":"LIST","indexed":true},"personal_email":{"label":"Personal Email","description":"Indicates that this email address is a personal email address.","attribute_type":"email","classification":"","cardinality":"LIST","indexed":true},"twitter":{"label":"Twitter","description":"Indicates that this social media type is Twitter.","attribute_type":"social_media","classification":"","cardinality":"LIST","indexed":true},"drivers_licence":{"label":"Driver's Licence","description":"Indicates that this identifier is a driver's license.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"},"passport":{"label":"Passport","description":"Indicates that this identifier is a passport.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"},"credit_card":{"label":"Credit Card","description":"Indicates that this identifier is a credit card.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"PAYMENTCARDNUMBER"},"social_insurance_number":{"label":"Social Insurance Number","description":"Indicates that this identifier is a social insurance number.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"},"legal_name":{"label":"Legal Name","description":"Indicates that this name is a legal name.","attribute_type":"person_name","classification":"","cardinality":"LIST","indexed":true},"previous_name":{"label":"Previous Name","description":"Indicates that this name is a previous name.","attribute_type":"person_name","classification":"","cardinality":"LIST","indexed":true}}},"organization":{"label":"Organization","description":"The record type for organization records.","entity_types":{"organization_entity":{"label":"Organization Entity","description":"The entity type for org records."}},"attributes":{"business_name":{"label":"Business Name","description":"Indicates that this name is a business name.","attribute_type":"organization_name","classification":"","cardinality":"LIST","indexed":true},"doing_business_as":{"label":"Doing Business As","description":"Indicates that this name is a Doing Business As name.","attribute_type":"organization_name","classification":"","cardinality":"LIST","indexed":true},"abbreviated_name":{"label":"Abbreviated Name","description":"Indicates that this name is an abbreviated name.","attribute_type":"organization_name","classification":"","cardinality":"LIST","indexed":true},"business_address":{"label":"Business Address","description":"Indicates that this address is a business address.","attribute_type":"address","classification":"","cardinality":"LIST","indexed":true},"mailing_address":{"label":"Mailing Address","description":"Indicates that this address is a mailing address.","attribute_type":"address","classification":"","cardinality":"LIST","indexed":true},"business_telephone":{"label":"Business Telephone","description":"Indicates that this phone number is for a business telephone.","attribute_type":"telephone","classification":"","cardinality":"LIST","indexed":true},"business_email":{"label":"Business Email","description":"Indicates that this email address is a business email.","attribute_type":"email","classification":"","cardinality":"LIST","indexed":true},"business_tax_identification":{"label":"Business Tax Identification","description":"Indicates that this identifier is a business tax identification number.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"},"duns":{"label":"DUNS","description":"Indicates that this identifier is a D-U-N-S Number.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"}}}},"attribute_types":{"address":{"label":"Address","description":"The address locations associated with a record. Only one address per usage value is allowed. For example, there can only be one mailing address for a contact.","classification":"","matching_types":["ADDRESS"],"fields":{"residence":{"label":"Residence Value","description":"The type of residence for this address, such as home, apartment, or suite.","classification":"","indexed":true},"address_line1":{"label":"Address Line 1","description":"The first line of this address.","classification":"","indexed":true},"address_line2":{"label":"Address Line 2","description":"The second line of this address.","classification":"","indexed":true},"address_line3":{"label":"Address Line 3","description":"The third line of this address.","classification":"","indexed":true},"city":{"label":"City","description":"The city of this address.","classification":"","indexed":true},"zip_postal_code":{"label":"Postal Code","description":"The postal code of this address.","classification":"","indexed":true},"residence_number":{"label":"Residence Number","description":"The residence number of this address.","classification":"","indexed":true},"province_state":{"label":"State/Province Value","description":"The state or province of this address.","classification":"","indexed":true},"county":{"label":"County","description":"The county of this address.","classification":"","indexed":true},"country":{"label":"Country Value","description":"The country of this address.","classification":"","indexed":true},"latitude_degrees":{"label":"Latitude Degrees","description":"The latitude of this address.","classification":"","indexed":true},"longitude_degrees":{"label":"Longitude Degrees","description":"The longitude of this address.","classification":"","indexed":true}}},"telephone":{"label":"Telephone","description":"Indicates that this attribute is a telephone number. Create attributes of this type for each category of telephone number, such as mobile, home, or business.","classification":"","matching_types":["PHONE"],"fields":{"phone_number":{"label":"Phone Number","description":"A string containing the digits for this telephone number.","classification":"","indexed":true}}},"email":{"label":"Email","description":"Indicates that this attribute is an email address. Create attributes of this type for each category of email address, such as personal or business.","classification":"","matching_types":["EMAIL"],"fields":{"email_id":{"label":"Email Id","description":"A string containing the email address value.","classification":"","indexed":true}}},"social_media":{"label":"Social Media","description":"Indicates that this attribute is a social media handle or user name. Create attributes of this type for each social media platform, such as Twitter or Instagram.","classification":"","matching_types":["SOCIALMEDIA"],"fields":{"social_media_handle":{"label":"Social Media Handle","description":"A string containing the handle or user name value.","classification":"","indexed":true}}},"identification":{"label":"Identification","description":"A unique identifier that can be used to distinguish a party from others.","classification":"","matching_types":["NATIONALIDENTIFIER","PAYMENTCARDNUMBER","OTHERIDENTIFIER"],"fields":{"identification_number":{"label":"Identification Number","description":"The actual alphanumeric identifier. For example, if the identification type indicates a social security number, then this value contains the 9 characters of the social security number.","classification":"","indexed":true}}},"person_name":{"label":"Person Name","description":"Information about a name associated with a person record.","classification":"","matching_types":["PERSONNAME"],"fields":{"generation":{"label":"Generation Value","description":"Identifies familial generational information in the form of a generation type. Examples include The First, The Second, Junior or Senior.","classification":"","indexed":true},"prefix":{"label":"Prefix Value","description":"The name prefix, such as Mr, Mrs, Miss, Dr, and others.","classification":"","indexed":true},"given_name":{"label":"Given Name","description":"The first given name of a person. Commonly known as the first name.","classification":"","indexed":true},"middle_name":{"label":"Middle Name","description":"The second given name of a person. Commonly known as the middle name.","classification":"","indexed":true},"last_name":{"label":"Last Name","description":"The surname or family name of a person. Commonly known as the last name.","classification":"","indexed":true},"suffix":{"label":"suffix","description":"The name suffix, such as Jr, MD, Esq, PhD, and others.","classification":"","indexed":true},"full_name":{"label":"Full name","description":"The complete name of this person in a single string, including first, middle, and last names.","classification":"","indexed":true}}},"organization_name":{"label":"Organization Name","description":"Information about a name associated with an organization record.","classification":"","matching_types":["ORGNAME"],"fields":{"name":{"label":"name","description":"The organization name.","classification":"","indexed":true}}},"string":{"label":"Simple attribute","description":"A single field primitive attribute","classification":"","fields":{"value":{"label":"Value","description":"","classification":"","indexed":true}}}},"relationship_types":{"linkage":{"label":"Linkage","label_from_source":"Linked into","label_from_target":"Linked from","description":"This is the built in linkage relationship type the matching engine creates between records and their resolved entities","cardinality":"ONE2MANY","directional":true}}}" 
  • RecordType recordTypeModel = new RecordType.Builder()
      .label("testString")
      .build();
    ReplaceConfiguratorConfigDataModelOptions replaceConfiguratorConfigDataModelOptions = new ReplaceConfiguratorConfigDataModelOptions.Builder()
      .build();
    
    Response<ConfigDataModel> response = mdmService.replaceConfiguratorConfigDataModel(replaceConfiguratorConfigDataModelOptions).execute();
    ConfigDataModel configDataModel = response.getResult();
    
    System.out.println(configDataModel);

Response

Collection of locale, record types, relationship types, system properties definition in configuration space.

Collection of locale, record types, relationship types, system properties definition in configuration space.

Status Code

  • Config data model is replaced.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem replacing config data model. An internal error occurred while attempting to replace the config data model.

Example responses
  • {
      "record_types": [
        {
          "name": "person",
          "default_display_name": "person",
          "properties": [
            {
              "name": "record_source",
              "data_type": "String",
              "default_display_name": "Record Source",
              "designation": "source"
            },
            {
              "name": "social_security_number",
              "data_type": "identification",
              "cardinality": "*",
              "default_display_name": "Social Security Number"
            }
          ],
          "source_systems": [
            {
              "name": "MDMSP",
              "default_display_name": "MDMS Person",
              "quality_factors": {
                "completeness": 100,
                "accuracy": 100,
                "correctness": 100,
                "age_relevancy": 100,
                "data_relevancy": 100,
                "consistency": 100
              }
            }
          ]
        }
      ],
      "data_types": [
        {
          "name": "identification",
          "default_display_name": "identification",
          "properties": [
            {
              "name": "identification",
              "data_type": "String",
              "default_display_name": "Identification Value"
            },
            {
              "name": "identification_number",
              "data_type": "String",
              "default_display_name": "Identification Number"
            }
          ]
        }
      ]
    }
  • {
      "record_types": [
        {
          "name": "person",
          "default_display_name": "person",
          "properties": [
            {
              "name": "record_source",
              "data_type": "String",
              "default_display_name": "Record Source",
              "designation": "source"
            },
            {
              "name": "social_security_number",
              "data_type": "identification",
              "cardinality": "*",
              "default_display_name": "Social Security Number"
            }
          ],
          "source_systems": [
            {
              "name": "MDMSP",
              "default_display_name": "MDMS Person",
              "quality_factors": {
                "completeness": 100,
                "accuracy": 100,
                "correctness": 100,
                "age_relevancy": 100,
                "data_relevancy": 100,
                "consistency": 100
              }
            }
          ]
        }
      ],
      "data_types": [
        {
          "name": "identification",
          "default_display_name": "identification",
          "properties": [
            {
              "name": "identification",
              "data_type": "String",
              "default_display_name": "Identification Value"
            },
            {
              "name": "identification_number",
              "data_type": "String",
              "default_display_name": "Identification Number"
            }
          ]
        }
      ]
    }

Get Config Data Model Type Attributes

Gets all the attributes of a specific type for the data model present in configuration space.

Gets all the attributes of a specific type for the data model present in configuration space.

GET /mdm/v1/config_data_model/attributes
ServiceCall<ConfigDataModelAttributes> getConfiguratorConfigDataModelAttributes(GetConfiguratorConfigDataModelAttributesOptions getConfiguratorConfigDataModelAttributesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.read

Request

Use the GetConfiguratorConfigDataModelAttributesOptions.Builder to create a GetConfiguratorConfigDataModelAttributesOptions object that contains the parameter values for the getConfiguratorConfigDataModelAttributes method.

Query Parameters

  • The cloud resource name of the service.

  • The type category of the data model attributes

  • The type name of the type category to identify data model attributes

The getConfiguratorConfigDataModelAttributes options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/config_data_model/attributes?type_name=person&type_category=employee&crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 

Response

The Config Data Model attributes for a record type.

The Config Data Model attributes for a record type.

Status Code

  • Config Data Model Type attributes retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Error in fetching Config Data Model Record Type attributes.

Example responses
  • {
      "attributes": [
        {
          "name": "record_id",
          "default_display_name": "Record identifier"
        },
        {
          "name": "record_source",
          "default_display_name": "Record source"
        }
      ]
    }
  • {
      "attributes": [
        {
          "name": "record_id",
          "default_display_name": "Record identifier"
        },
        {
          "name": "record_source",
          "default_display_name": "Record source"
        }
      ]
    }

Get matching statistics

Gets the matching statistics (such as number of entities, entity size distributions, etc.) for the specified record type.

Gets the matching statistics (such as number of entities, entity size distributions, etc.) for the specified record type.

GET /mdm/v1/match_statistics
ServiceCall<MatchStatistics> getConfiguratorMatchingStatistics(GetConfiguratorMatchingStatisticsOptions getConfiguratorMatchingStatisticsOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.read

Request

Use the GetConfiguratorMatchingStatisticsOptions.Builder to create a GetConfiguratorMatchingStatisticsOptions object that contains the parameter values for the getConfiguratorMatchingStatistics method.

Query Parameters

  • The cloud resource name of the service.

  • Record type of match statistics

    Example: person

  • Entity type of match statistics

    Example: person_entity

The getConfiguratorMatchingStatistics options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/match_statistics?record_type=person&entity_type=person_entity&crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetConfiguratorMatchingStatisticsOptions getConfiguratorMatchingStatisticsOptions = new GetConfiguratorMatchingStatisticsOptions.Builder()
      .recordType("person")
      .entityType("person_entity")
      .build();
    
    Response<MatchStatistics> response = mdmService.getConfiguratorMatchingStatistics(getConfiguratorMatchingStatisticsOptions).execute();
    MatchStatistics matchStatistics = response.getResult();
    
    System.out.println(matchStatistics);

Response

The Statistics of the match process results.

The Statistics of the match process results.

Status Code

  • Statistics retrieved

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Error occurred in get resource process. Resource does not exist

  • Error in fetching statistics

Example responses
  • {
      "entity_breakdown": {
        "average": 2,
        "standard_deviation": 0,
        "variance": 0,
        "max": 4,
        "count": 500,
        "min": 1
      },
      "largest_entities": [
        {
          "entity_id": 40976536,
          "entity_size": 4
        }
      ],
      "entity_size_distribution": [
        {
          "entity_count": 5,
          "entity_size": 120
        }
      ],
      "summary": {
        "total_records": 2500,
        "singleton_count": 300,
        "distinct_sources": 4,
        "data_assets": 9,
        "entities_count": 950
      },
      "status": {
        "date_completed": {},
        "comparison_count": 120,
        "bucket_count": 9,
        "run_time": 159000
      }
    }
  • {
      "entity_breakdown": {
        "average": 2,
        "standard_deviation": 0,
        "variance": 0,
        "max": 4,
        "count": 500,
        "min": 1
      },
      "largest_entities": [
        {
          "entity_id": 40976536,
          "entity_size": 4
        }
      ],
      "entity_size_distribution": [
        {
          "entity_count": 5,
          "entity_size": 120
        }
      ],
      "summary": {
        "total_records": 2500,
        "singleton_count": 300,
        "distinct_sources": 4,
        "data_assets": 9,
        "entities_count": 950
      },
      "status": {
        "date_completed": {},
        "comparison_count": 120,
        "bucket_count": 9,
        "run_time": 159000
      }
    }

List the process details

Lists the Configurator process details for all processes, optionally filtered by process status.

Lists the Configurator process details for all processes, optionally filtered by process status.

GET /mdm/v1/configuration_metadata/processes
ServiceCall<ProcessList> listConfiguratorProcesses(ListConfiguratorProcessesOptions listConfiguratorProcessesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.manage

Request

Use the ListConfiguratorProcessesOptions.Builder to create a ListConfiguratorProcessesOptions object that contains the parameter values for the listConfiguratorProcesses method.

Query Parameters

  • The cloud resource name of the service.

  • Unique status param to get the processes based on it. i.e. Not-Initiated, In-progress, Complete and Error

    Example: In-progress

The listConfiguratorProcesses options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/configuration_metadata/processes?status=Complete&crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListConfiguratorProcessesOptions listConfiguratorProcessesOptions = new ListConfiguratorProcessesOptions.Builder()
      .status("In-progress")
      .build();
    
    Response<ProcessList> response = mdmService.listConfiguratorProcesses(listConfiguratorProcessesOptions).execute();
    ProcessList processList = response.getResult();
    
    System.out.println(processList);

Response

Response wrapper with the list of Processes.

Response wrapper with the list of Processes.

Status Code

  • Processes retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Error in getting processes.

Example responses
  • {
      "processes": [
        {
          "record_type_label": "Person",
          "record_type": "person",
          "process_name": "match",
          "process_count": "0",
          "message": "Match completed successfully and statistics updated.",
          "status": "Complete"
        }
      ]
    }
  • {
      "processes": [
        {
          "record_type_label": "Person",
          "record_type": "person",
          "process_name": "match",
          "process_count": "0",
          "message": "Match completed successfully and statistics updated.",
          "status": "Complete"
        }
      ]
    }

Create process

Create the Configurator process to publish data, publish model, match and delete assets.

Create the Configurator process to publish data, publish model, match and delete assets.

POST /mdm/v1/configuration_metadata/processes
ServiceCall<ProcessStatus> createConfiguratorProcess(CreateConfiguratorProcessOptions createConfiguratorProcessOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.manage

Request

Use the CreateConfiguratorProcessOptions.Builder to create a CreateConfiguratorProcessOptions object that contains the parameter values for the createConfiguratorProcess method.

Query Parameters

  • The cloud resource name of the service.

Process creation request details.

Examples:
PublishDataExample-all_assets
PublishDataExample-selective_assets
AssetDeletionExample
PublishModelExample
MatchingExample

The createConfiguratorProcess options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/configuration_metadata/processes?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"process_name":"publish_data","asset_source_details":{"project":{"cos_endpoint":"https://s3.us-south.cloud-object-storage.appdomain.cloud","cos_bucket_name":"bucket-name","cos_api_key":"project_api_key"}},"initiator":"IAM ID" }" 
  • ProcessRequestAssetSourceDetailsProject processRequestAssetSourceDetailsProjectModel = new ProcessRequestAssetSourceDetailsProject.Builder()
      .cosBucketName("bucket-name")
      .cosApiKey("project_api_key")
      .cosEndpoint("https://s3.us-south.cloud-object-storage.appdomain.cloud")
      .build();
    ProcessRequestAssetSourceDetails processRequestAssetSourceDetailsModel = new ProcessRequestAssetSourceDetails.Builder()
      .project(processRequestAssetSourceDetailsProjectModel)
      .build();
    CreateConfiguratorProcessOptions createConfiguratorProcessOptions = new CreateConfiguratorProcessOptions.Builder()
      .processName("publish_data")
      .assetSourceDetails(processRequestAssetSourceDetailsModel)
      .initiator("IAM ID")
      .build();
    
    Response<ProcessStatus> response = mdmService.createConfiguratorProcess(createConfiguratorProcessOptions).execute();
    ProcessStatus processStatus = response.getResult();
    
    System.out.println(processStatus);

Response

Process Status.

Process Status.

Status Code

  • Process created successfully.

  • Error in process creation. The request you used is invalid. Please revalidate and try again.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Error in getting processes.

Example responses
  • {
      "status": "In-Progress",
      "message": "Matching is in progress."
    }
  • {
      "status": "In-Progress",
      "message": "Matching is in progress."
    }
  • {
      "status": "In-progress",
      "message": "Publish model is initiated."
    }
  • {
      "status": "In-progress",
      "message": "Publish model is initiated."
    }
  • {
      "status": "In-progress",
      "message": "Asset Deletion is initiated!",
      "summary": {
        "asset_id_1": "Delete-in-progress"
      }
    }
  • {
      "status": "In-progress",
      "message": "Asset Deletion is initiated!",
      "summary": {
        "asset_id_1": "Delete-in-progress"
      }
    }
  • {
      "message": "Bulk load of data is initiated.",
      "status": "In-progress"
    }
  • {
      "message": "Bulk load of data is initiated.",
      "status": "In-progress"
    }

Get configuration metadata

Gets the configuration metadata with all assets, their mappings, loading status, matching status, etc.

Gets the configuration metadata with all assets, their mappings, loading status, matching status, etc.

GET /mdm/v1/configuration_metadata
ServiceCall<ConfigurationMetadata> getConfiguratorConfigurationMetadata(GetConfiguratorConfigurationMetadataOptions getConfiguratorConfigurationMetadataOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.read

Request

Use the GetConfiguratorConfigurationMetadataOptions.Builder to create a GetConfiguratorConfigurationMetadataOptions object that contains the parameter values for the getConfiguratorConfigurationMetadata method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/configuration_metadata?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetConfiguratorConfigurationMetadataOptions getConfiguratorConfigurationMetadataOptions = new GetConfiguratorConfigurationMetadataOptions();
    
    Response<ConfigurationMetadata> response = mdmService.getConfiguratorConfigurationMetadata(getConfiguratorConfigurationMetadataOptions).execute();
    ConfigurationMetadata configurationMetadata = response.getResult();
    
    System.out.println(configurationMetadata);

Response

Configuration metadata details.

Configuration metadata details.

Status Code

  • configuration metadata for given id is fetched successfullly.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Error in getting configuration metadata.

Example responses
  • {
      "name": "configuration_metadata",
      "description": "sample configuration metadata",
      "storage_type": "Cloud storage",
      "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
      "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24",
      "role": "admin",
      "collaborators": "AP",
      "assets": [
        {
          "asset_name": "person-100.csv",
          "asset_status": "Mapped",
          "asset_record_type": "Person",
          "asset_source": "project",
          "asset_mappings": [
            {
              "key": "COLUMN1",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_source",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            },
            {
              "key": "COLUMN2",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_id",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            }
          ],
          "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7"
        }
      ]
    }
  • {
      "name": "configuration_metadata",
      "description": "sample configuration metadata",
      "storage_type": "Cloud storage",
      "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
      "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24",
      "role": "admin",
      "collaborators": "AP",
      "assets": [
        {
          "asset_name": "person-100.csv",
          "asset_status": "Mapped",
          "asset_record_type": "Person",
          "asset_source": "project",
          "asset_mappings": [
            {
              "key": "COLUMN1",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_source",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            },
            {
              "key": "COLUMN2",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_id",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            }
          ],
          "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7"
        }
      ]
    }

Replace configuration metadata

Replaces the configuration metadata. It would replace the configuration data including asset information, matching attributes, etc.

Replaces the configuration metadata. It would replace the configuration data including asset information, matching attributes, etc.

PUT /mdm/v1/configuration_metadata
ServiceCall<ConfigurationMetadata> replaceConfiguratorConfigurationMetadata(ReplaceConfiguratorConfigurationMetadataOptions replaceConfiguratorConfigurationMetadataOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.manage

Request

Use the ReplaceConfiguratorConfigurationMetadataOptions.Builder to create a ReplaceConfiguratorConfigurationMetadataOptions object that contains the parameter values for the replaceConfiguratorConfigurationMetadata method.

Query Parameters

  • The cloud resource name of the service.

Configuration metadata details.

Examples:
ConfigurationMetadataExample

The replaceConfiguratorConfigurationMetadata options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/configuration_metadata?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"collaborators":"AP","storage_type":"Cloud storage","project_id":"0e4bb17d-4871-40a5-b5a1-55b2866fe000","catalog_id":"ee1de5f6-54da-4246-95bc-7bc282151000","description":"Example project","role":"admin","name":"Project 1"}" 
  • ReplaceConfiguratorConfigurationMetadataOptions replaceConfiguratorConfigurationMetadataOptions = new ReplaceConfiguratorConfigurationMetadataOptions.Builder()
      .projectId("52a72453-597c-4fb3-a518-c815225e3ea9")
      .catalogId("8a3cc967-81c4-49a3-86a2-208059819b24")
      .description("sample configuration metadata")
      .name("configuration_metadata")
      .build();
    
    Response<ConfigurationMetadata> response = mdmService.replaceConfiguratorConfigurationMetadata(replaceConfiguratorConfigurationMetadataOptions).execute();
    ConfigurationMetadata configurationMetadata = response.getResult();
    
    System.out.println(configurationMetadata);

Response

Configuration metadata details.

Configuration metadata details.

Status Code

  • configuration metadata successfully replaced

  • Error in replacing configuration metadata. The request you used is invalid. Please revalidate and try again.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Internal error occured in replacing configuration metadata.

Example responses
  • {
      "name": "configuration_metadata",
      "description": "sample configuration metadata",
      "storage_type": "Cloud storage",
      "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
      "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24",
      "role": "admin",
      "collaborators": "AP",
      "assets": [
        {
          "asset_name": "person-100.csv",
          "asset_status": "Mapped",
          "asset_record_type": "Person",
          "asset_source": "project",
          "asset_mappings": [
            {
              "key": "COLUMN1",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_source",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            },
            {
              "key": "COLUMN2",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_id",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            }
          ],
          "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7"
        }
      ]
    }
  • {
      "name": "configuration_metadata",
      "description": "sample configuration metadata",
      "storage_type": "Cloud storage",
      "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
      "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24",
      "role": "admin",
      "collaborators": "AP",
      "assets": [
        {
          "asset_name": "person-100.csv",
          "asset_status": "Mapped",
          "asset_record_type": "Person",
          "asset_source": "project",
          "asset_mappings": [
            {
              "key": "COLUMN1",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_source",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            },
            {
              "key": "COLUMN2",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_id",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            }
          ],
          "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7"
        }
      ]
    }

Update configuration metadata

Updates the configuration metadata with the information provided in the request.

Updates the configuration metadata with the information provided in the request.

PATCH /mdm/v1/configuration_metadata
ServiceCall<ConfigurationMetadata> updateConfiguratorConfigurationMetadata(UpdateConfiguratorConfigurationMetadataOptions updateConfiguratorConfigurationMetadataOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.manage

Request

Use the UpdateConfiguratorConfigurationMetadataOptions.Builder to create a UpdateConfiguratorConfigurationMetadataOptions object that contains the parameter values for the updateConfiguratorConfigurationMetadata method.

Query Parameters

  • The cloud resource name of the service.

Configuration metadata details.

Examples:
ConfigurationMetadataExample

The updateConfiguratorConfigurationMetadata options.

  • curl -X PATCH --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/configuration_metadata?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"collaborators":"AP","storage_type":"Cloud storage","project_id":"0e4bb17d-4871-40a5-b5a1-55b2866fe000","catalog_id":"ee1de5f6-54da-4246-95bc-7bc282151000","description":"Example project","role":"admin","name":"Project 1"}" 
  • UpdateConfiguratorConfigurationMetadataOptions updateConfiguratorConfigurationMetadataOptions = new UpdateConfiguratorConfigurationMetadataOptions.Builder()
      .projectId("52a72453-597c-4fb3-a518-c815225e3ea9")
      .catalogId("8a3cc967-81c4-49a3-86a2-208059819b24")
      .description("sample configuration metadata")
      .name("configuration_metadata")
      .build();
    
    Response<ConfigurationMetadata> response = mdmService.updateConfiguratorConfigurationMetadata(updateConfiguratorConfigurationMetadataOptions).execute();
    ConfigurationMetadata configurationMetadata = response.getResult();
    
    System.out.println(configurationMetadata);

Response

Configuration metadata details.

Configuration metadata details.

Status Code

  • configuration metadata successfully updated

  • Error in updating configuration metadata. The request you used is invalid. Please revalidate and try again.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Internal error occured in getting configuration metadata.

Example responses
  • {
      "name": "configuration_metadata",
      "description": "sample configuration metadata",
      "storage_type": "Cloud storage",
      "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
      "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24",
      "role": "admin",
      "collaborators": "AP",
      "assets": [
        {
          "asset_name": "person-100.csv",
          "asset_status": "Mapped",
          "asset_record_type": "Person",
          "asset_source": "project",
          "asset_mappings": [
            {
              "key": "COLUMN1",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_source",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            },
            {
              "key": "COLUMN2",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_id",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            }
          ],
          "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7"
        }
      ]
    }
  • {
      "name": "configuration_metadata",
      "description": "sample configuration metadata",
      "storage_type": "Cloud storage",
      "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
      "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24",
      "role": "admin",
      "collaborators": "AP",
      "assets": [
        {
          "asset_name": "person-100.csv",
          "asset_status": "Mapped",
          "asset_record_type": "Person",
          "asset_source": "project",
          "asset_mappings": [
            {
              "key": "COLUMN1",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_source",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            },
            {
              "key": "COLUMN2",
              "classified_class": "X",
              "data_mapping_name": "record_id",
              "data_mapping_default_display_name": "record_id",
              "exclude_column": "FALSE",
              "auto_mapped": true,
              "completeness_percent": "90"
            }
          ],
          "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7"
        }
      ]
    }

Add configuration metadata asset

Adds a new asset in configuration metadata. This can be called when new asset is getting added into configuration space.

Adds a new asset in configuration metadata. This can be called when new asset is getting added into configuration space.

POST /mdm/v1/configuration_metadata/assets
ServiceCall<AssetMetadata> addConfiguratorConfigurationAsset(AddConfiguratorConfigurationAssetOptions addConfiguratorConfigurationAssetOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.manage

Request

Use the AddConfiguratorConfigurationAssetOptions.Builder to create a AddConfiguratorConfigurationAssetOptions object that contains the parameter values for the addConfiguratorConfigurationAsset method.

Query Parameters

  • The cloud resource name of the service.

Request details for creating new Data Asset.

Examples:
projectAssetExample

The addConfiguratorConfigurationAsset options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/configuration_metadata/assets?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"asset_created_date":"{}","asset_mappings":[{"exclude_column":false,"auto_mapped":true,"completeness_percent":100,"data_mapping_default_display_name":"Record Source","classified_class":"GEN","data_mapping_name":"gender","key":"COLUMN 1"}],"asset_id":"d8868c51-a96e-48ab-a4cd-0000000","asset_name":"Person10k.csv","asset_status":"Mapped","asset_record_type":"Person"}" 
  • AssetMapping assetMappingModel = new AssetMapping.Builder()
      .completenessPercent("100")
      .dataMappingName("record_source")
      .excludeColumn(false)
      .autoMapped(false)
      .classifiedClass("X")
      .key("COLUMN1")
      .build();
    AddConfiguratorConfigurationAssetOptions addConfiguratorConfigurationAssetOptions = new AddConfiguratorConfigurationAssetOptions.Builder()
      .assetId("asset_id")
      .assetName("Person10.csv")
      .assetStatus("Mapped")
      .assetCreatedDate("2020-05-12 13:21:21.727000+00:00")
      .assetMappings(new java.util.ArrayList<AssetMapping>(java.util.Arrays.asList(assetMappingModel)))
      .build();
    
    Response<AssetMetadata> response = mdmService.addConfiguratorConfigurationAsset(addConfiguratorConfigurationAssetOptions).execute();
    AssetMetadata assetMetadata = response.getResult();
    
    System.out.println(assetMetadata);

Response

Response wrapper with details of Data Asset Metadata.

Response wrapper with details of Data Asset Metadata.

Status Code

  • Asset created successfully.

  • Error in created asset. The request you used is invalid. Please revalidate and try again.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Internal error occured in creating asset for the given configuration metadata.

Example responses
  • {
      "asset_id": "asset_id",
      "asset_name": "Person10.csv",
      "asset_status": "Mapped",
      "asset_record_type": "Person",
      "asset_created_date": {},
      "asset_mappings": [
        {
          "key": "COLUMN1",
          "classified_class": "X",
          "data_mapping_name": "record_source",
          "data_mapping_default_display_name": "Record Source",
          "exclude_column": false,
          "auto_mapped": false,
          "completeness_percent": 100
        },
        {
          "key": "COLUMN2",
          "classified_class": "T",
          "data_mapping_name": "",
          "data_mapping_default_display_name": "",
          "exclude_column": true,
          "auto_mapped": false,
          "completeness_percent": 100
        }
      ],
      "asset_last_updated_date": "2021-05-17T18:58:59.000Z"
    }
  • {
      "asset_id": "asset_id",
      "asset_name": "Person10.csv",
      "asset_status": "Mapped",
      "asset_record_type": "Person",
      "asset_created_date": {},
      "asset_mappings": [
        {
          "key": "COLUMN1",
          "classified_class": "X",
          "data_mapping_name": "record_source",
          "data_mapping_default_display_name": "Record Source",
          "exclude_column": false,
          "auto_mapped": false,
          "completeness_percent": 100
        },
        {
          "key": "COLUMN2",
          "classified_class": "T",
          "data_mapping_name": "",
          "data_mapping_default_display_name": "",
          "exclude_column": true,
          "auto_mapped": false,
          "completeness_percent": 100
        }
      ],
      "asset_last_updated_date": "2021-05-17T18:58:59.000Z"
    }

Get configurator process

Gets the process details for the specified process name.

Gets the process details for the specified process name.

GET /mdm/v1/configuration_metadata/processes/{process_name}
ServiceCall<ProcessModelStatus> getConfiguratorProcess(GetConfiguratorProcessOptions getConfiguratorProcessOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.manage

Request

Use the GetConfiguratorProcessOptions.Builder to create a GetConfiguratorProcessOptions object that contains the parameter values for the getConfiguratorProcess method.

Path Parameters

  • Unique process name to get the process status. i.e. publish_model, publish_data, match, delete_asset

Query Parameters

  • The cloud resource name of the service.

  • Unique record type associated with the process

    Example: person

  • Unique entity type associated with the process

    Example: person_entity

The getConfiguratorProcess options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/configuration_metadata/processes/publish_model?record_type=person&entity_type=person_entity&crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetConfiguratorProcessOptions getConfiguratorProcessOptions = new GetConfiguratorProcessOptions.Builder()
      .processName("testString")
      .recordType("person")
      .entityType("person_entity")
      .build();
    
    Response<ProcessModelStatus> response = mdmService.getConfiguratorProcess(getConfiguratorProcessOptions).execute();
    ProcessModelStatus processModelStatus = response.getResult();
    
    System.out.println(processModelStatus);

Response

Details of the Process.

Details of the Process.

Status Code

  • Process retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem processing request. Please check if you have provided correct process name.

  • Error in getting process.

Example responses
  • {
      "record_type_label": "Person",
      "record_type": "person",
      "process_name": "match",
      "process_count": "0",
      "message": "Match completed successfully and statistics updated.",
      "status": "Complete"
    }
  • {
      "record_type_label": "Person",
      "record_type": "person",
      "process_name": "match",
      "process_count": "0",
      "message": "Match completed successfully and statistics updated.",
      "status": "Complete"
    }

Replace configuration metadata asset

Replaces asset information in the configuration with the information provided in the request.

Replaces asset information in the configuration with the information provided in the request.

PUT /mdm/v1/configuration_metadata/assets/{asset_id}
ServiceCall<AssetMetadata> replaceConfiguratorConfigurationAsset(ReplaceConfiguratorConfigurationAssetOptions replaceConfiguratorConfigurationAssetOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.manage

Request

Use the ReplaceConfiguratorConfigurationAssetOptions.Builder to create a ReplaceConfiguratorConfigurationAssetOptions object that contains the parameter values for the replaceConfiguratorConfigurationAsset method.

Path Parameters

  • Unique identifier of project asset

Query Parameters

  • The cloud resource name of the service.

Request object for updating an asset.

Examples:
projectAssetExample

The replaceConfiguratorConfigurationAsset options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/configuration_metadata/assets/d8868c51-a96e-48ab-a4cd-0000000?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"asset_created_date":"{}","asset_mappings":[{"exclude_column":false,"auto_mapped":true,"completeness_percent":100,"data_mapping_default_display_name":"Record Source","classified_class":"GEN","data_mapping_name":"gender","key":"COLUMN 1"}],"asset_name":"Person10k.csv","asset_status":"Mapped","asset_record_type":"Person"}" 
  • AssetMapping assetMappingModel = new AssetMapping.Builder()
      .completenessPercent("100")
      .dataMappingName("record_source")
      .excludeColumn(false)
      .autoMapped(false)
      .classifiedClass("X")
      .key("COLUMN1")
      .build();
    ReplaceConfiguratorConfigurationAssetOptions replaceConfiguratorConfigurationAssetOptions = new ReplaceConfiguratorConfigurationAssetOptions.Builder()
      .assetId("testString")
      .assetName("Person10.csv")
      .assetStatus("Mapped")
      .assetCreatedDate("2020-05-12 13:21:21.727000+00:00")
      .assetMappings(new java.util.ArrayList<AssetMapping>(java.util.Arrays.asList(assetMappingModel)))
      .build();
    
    Response<AssetMetadata> response = mdmService.replaceConfiguratorConfigurationAsset(replaceConfiguratorConfigurationAssetOptions).execute();
    AssetMetadata assetMetadata = response.getResult();
    
    System.out.println(assetMetadata);

Response

Response wrapper with details of Data Asset Metadata.

Response wrapper with details of Data Asset Metadata.

Status Code

  • Asset replaced successfully.

  • Error in replacing asset. The request you used is invalid. Please revalidate and try again.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Internal error occured in replacing asset for the given configuration metadata.

Example responses
  • {
      "asset_name": "Person10.csv",
      "asset_status": "Mapped",
      "asset_record_type": "Person",
      "asset_created_date": {},
      "asset_mappings": [
        {
          "key": "COLUMN1",
          "classified_class": "X",
          "data_mapping_name": "record_source",
          "data_mapping_default_display_name": "Record Source",
          "exclude_column": false,
          "auto_mapped": false,
          "completeness_percent": 100
        },
        {
          "key": "COLUMN2",
          "classified_class": "T",
          "data_mapping_name": "",
          "data_mapping_default_display_name": "",
          "exclude_column": true,
          "auto_mapped": false,
          "completeness_percent": 100
        }
      ],
      "asset_id": "asset_id",
      "asset_last_updated_date": "2021-05-17T19:00:34.000Z"
    }
  • {
      "asset_name": "Person10.csv",
      "asset_status": "Mapped",
      "asset_record_type": "Person",
      "asset_created_date": {},
      "asset_mappings": [
        {
          "key": "COLUMN1",
          "classified_class": "X",
          "data_mapping_name": "record_source",
          "data_mapping_default_display_name": "Record Source",
          "exclude_column": false,
          "auto_mapped": false,
          "completeness_percent": 100
        },
        {
          "key": "COLUMN2",
          "classified_class": "T",
          "data_mapping_name": "",
          "data_mapping_default_display_name": "",
          "exclude_column": true,
          "auto_mapped": false,
          "completeness_percent": 100
        }
      ],
      "asset_id": "asset_id",
      "asset_last_updated_date": "2021-05-17T19:00:34.000Z"
    }

Suggest data mappings

Suggest data mappings from MDM data model based on the generic classes of Watson Knowledge Catalog with which the asset is profiled.

Suggest data mappings from MDM data model based on the generic classes of Watson Knowledge Catalog with which the asset is profiled.

POST /mdm/v1/suggest_data_mappings
ServiceCall<SuggestedDataMapping> suggestConfiguratorDataMappings(SuggestConfiguratorDataMappingsOptions suggestConfiguratorDataMappingsOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.read

Request

Use the SuggestConfiguratorDataMappingsOptions.Builder to create a SuggestConfiguratorDataMappingsOptions object that contains the parameter values for the suggestConfiguratorDataMappings method.

Query Parameters

  • The cloud resource name of the service.

  • Record type for data mapping suggestions

    Example: person

Suggested Data Mapping Request details.

Examples:
DataMappingExample

The suggestConfiguratorDataMappings options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/suggest_data_mappings?record_type=person&crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • DataMapping dataMappingModel = new DataMapping.Builder()
      .classifiedClass("X")
      .key("COLUMN1")
      .build();
    SuggestConfiguratorDataMappingsOptions suggestConfiguratorDataMappingsOptions = new SuggestConfiguratorDataMappingsOptions.Builder()
      .recordType("person")
      .columns(new java.util.ArrayList<DataMapping>(java.util.Arrays.asList(dataMappingModel)))
      .build();
    
    Response<SuggestedDataMapping> response = mdmService.suggestConfiguratorDataMappings(suggestConfiguratorDataMappingsOptions).execute();
    SuggestedDataMapping suggestedDataMapping = response.getResult();
    
    System.out.println(suggestedDataMapping);

Response

Response wrapper with details of Suggested Data Mappings.

Response wrapper with details of Suggested Data Mappings.

Status Code

  • Suggested mappings are fetched

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Unexpected error occured while getting data mappings.

Example responses
  • {
      "suggested_data_mappings": [
        {
          "data_mapping_default_display_name": "Gender",
          "data_mapping_name": "gender",
          "classified_class": "GEN",
          "key": "COLUMN 1"
        }
      ]
    }
  • {
      "suggested_data_mappings": [
        {
          "data_mapping_default_display_name": "Gender",
          "data_mapping_name": "gender",
          "classified_class": "GEN",
          "key": "COLUMN 1"
        }
      ]
    }

Get suggested matching attributes

Gets suggested matching attributes for the record type based on mappings of assets of the specified record type.

Gets suggested matching attributes for the record type based on mappings of assets of the specified record type.

GET /mdm/v1/suggested_matching_attributes
ServiceCall<SuggestedMatchAttributes> getConfiguratorSuggestedMatchingAttributes(GetConfiguratorSuggestedMatchingAttributesOptions getConfiguratorSuggestedMatchingAttributesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.configurator.read

Request

Use the GetConfiguratorSuggestedMatchingAttributesOptions.Builder to create a GetConfiguratorSuggestedMatchingAttributesOptions object that contains the parameter values for the getConfiguratorSuggestedMatchingAttributes method.

Query Parameters

  • The cloud resource name of the service.

  • Record type for matching attribute suggestions

The getConfiguratorSuggestedMatchingAttributes options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/suggested_matching_attributes?record_type=person&crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetConfiguratorSuggestedMatchingAttributesOptions getConfiguratorSuggestedMatchingAttributesOptions = new GetConfiguratorSuggestedMatchingAttributesOptions.Builder()
      .recordType("testString")
      .build();
    
    Response<SuggestedMatchAttributes> response = mdmService.getConfiguratorSuggestedMatchingAttributes(getConfiguratorSuggestedMatchingAttributesOptions).execute();
    SuggestedMatchAttributes suggestedMatchAttributes = response.getResult();
    
    System.out.println(suggestedMatchAttributes);

Response

Response wrapper for attributes suggested for running match process.

Response wrapper for attributes suggested for running match process.

Status Code

  • Suggested matching attributes are retrieved

  • Project assets are missing or in invalid state.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Error occured while getting suggested matching attributes.

Example responses
  • {
      "suggested_matching_attributes": [
        {
          "matching_attribute_default_display_name": "Gender",
          "matching_attribute_name": "gender"
        }
      ]
    }
  • {
      "suggested_matching_attributes": [
        {
          "matching_attribute_default_display_name": "Gender",
          "matching_attribute_name": "gender"
        }
      ]
    }

Initiate weight tuning job

  • This service initiates asynchronous processing of the weight tuning job.
  • Weight tuning is the process to improve the weight for the matching algorithm based on given set of match decisions from data stewards.
  • This service initiates asynchronous processing of the weight tuning job.
  • Weight tuning is the process to improve the weight for the matching algorithm based on given set of match decisions from data stewards.
POST /mdm/v1/weight_tuning_job
ServiceCall<TuningJobResponse> createWeightTuningJob(CreateWeightTuningJobOptions createWeightTuningJobOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.manage

Request

Use the CreateWeightTuningJobOptions.Builder to create a CreateWeightTuningJobOptions object that contains the parameter values for the createWeightTuningJob method.

Query Parameters

  • The cloud resource name of the service.

  • Record type of match statistics

    Example: person

  • Entity type of match statistics

    Example: person_entity

The createWeightTuningJob options.

  • CreateWeightTuningJobOptions createWeightTuningJobOptions = new CreateWeightTuningJobOptions.Builder()
      .recordType("person")
      .entityType("person_entity")
      .build();
    
    Response<TuningJobResponse> response = mdmService.createWeightTuningJob(createWeightTuningJobOptions).execute();
    TuningJobResponse tuningJobResponse = response.getResult();
    
    System.out.println(tuningJobResponse);

Response

Response object for asynchronous processing of a tuning job

Response object for asynchronous processing of a tuning job.

Status Code

  • The weight tuning job has been successfully created.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "created_at": "",
      "image": "mdm-tuning-job",
      "job_name": "weight-tuning",
      "last_updated_at": "",
      "id": "2ba3ed28-00c7-42e4-9cc9-8c74bf5e4ff0",
      "input": {},
      "status": "Running"
    }
  • {
      "created_at": "",
      "image": "mdm-tuning-job",
      "job_name": "weight-tuning",
      "last_updated_at": "",
      "id": "2ba3ed28-00c7-42e4-9cc9-8c74bf5e4ff0",
      "input": {},
      "status": "Running"
    }

Start an operation to bulk delete data from the graph

There are four options for a delete:

  • Delete by search, which removes all records matching a search criteria.
  • Delete by source, which removes all records of a specified record source.
  • Delete by asset, which removes all records loaded from a particular asset or list of assets.
  • Full delete, which removes all records from the graph.

There are four options for a delete:

  • Delete by search, which removes all records matching a search criteria.
  • Delete by source, which removes all records of a specified record source.
  • Delete by asset, which removes all records loaded from a particular asset or list of assets.
  • Full delete, which removes all records from the graph.
POST /mdm/v1/bulk_delete
ServiceCall<BulkDeleteJob> runDataBulkDelete(RunDataBulkDeleteOptions runDataBulkDeleteOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.manage

Request

Use the RunDataBulkDeleteOptions.Builder to create a RunDataBulkDeleteOptions object that contains the parameter values for the runDataBulkDelete method.

Query Parameters

  • The cloud resource name of the service.

Valid object defining the bulk delete job information.

The runDataBulkDelete options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/bulk_delete?crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"delete_type":"full"}" 
  • RunDataBulkDeleteOptions runDataBulkDeleteOptions = new RunDataBulkDeleteOptions.Builder()
      .deleteType("asset")
      .build();
    
    Response<BulkDeleteJob> response = mdmService.runDataBulkDelete(runDataBulkDeleteOptions).execute();
    BulkDeleteJob bulkDeleteJob = response.getResult();
    
    System.out.println(bulkDeleteJob);

Response

Information about a bulk delete job.

Information about a bulk delete job.

Status Code

  • The bulk delete job was successfully started.

  • Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem performing bulk delete. An internal error occurred while attempting to perform the operation.

Example responses
  • {
      "job_id": "24403560707830722",
      "job_type": "delete",
      "process_ids": [
        "b3ba096d-c625-4d2f-ad12-285966f61cb0"
      ],
      "start_time": "1603483531000",
      "status": "running",
      "delete_type": "source",
      "record_source": "MDM"
    }
  • {
      "job_id": "24403560707830722",
      "job_type": "delete",
      "process_ids": [
        "b3ba096d-c625-4d2f-ad12-285966f61cb0"
      ],
      "start_time": "1603483531000",
      "status": "running",
      "delete_type": "source",
      "record_source": "MDM"
    }

Start a bulk load of data into the graph

Once the data load job is queued, track the status of the job to completion using the Job APIs.

  • To run a sample bulk load, provide the type as 'sample' and the directory_ref identifying which sample data set to load. directory_path is not required when type is set to 'sample', if provided it will be ignored. The available sample data sets are sample_contract_small, sample_consent_small, sample_contract, and sample_consent, and these are the only acceptable values for 'directory_ref'.
  • To run a bulk load of custom data, provide the type as 'dfs' and the directory_path pointing to the relative location of the data within the storage system. 'directory_ref' is not required when type is set to 'dfs', if provided it will be ignored. Data source directories are expected to adhere to the following format, if not otherwise specified under 'data_structure' in the request body:
record.properties
relationship.properties
record
--[record data files]
relationship
--[relationship data files]
  • To run a bulk load of data from the Watson Knowledge Catalog, provide the type as 'wkc' and either the 'project_id' or 'catalog_id' of the resource that contains the data. If both are provided, 'catalog_id' will be used by default. 'directory_ref' and 'directory_path' are not required when type is set to 'wkc', if provided they will be ignored. The data asset id and properties must be specified under 'data_structure' in the request body.
  • For bulk loads of type 'dfs' or 'wkc', required data properties must be supplied either in a properties file or by specifying the properties contents in the request. If both a file and properties contents are provided, the properties contents will take precedence. Properties contents must include 'file_type' to be valid.

Once the data load job is queued, track the status of the job to completion using the Job APIs.

  • To run a sample bulk load, provide the type as 'sample' and the directory_ref identifying which sample data set to load. directory_path is not required when type is set to 'sample', if provided it will be ignored. The available sample data sets are sample_contract_small, sample_consent_small, sample_contract, and sample_consent, and these are the only acceptable values for 'directory_ref'.
  • To run a bulk load of custom data, provide the type as 'dfs' and the directory_path pointing to the relative location of the data within the storage system. 'directory_ref' is not required when type is set to 'dfs', if provided it will be ignored. Data source directories are expected to adhere to the following format, if not otherwise specified under 'data_structure' in the request body:
--[record data files] relationship
--[relationship data files]
  • To run a bulk load of data from the Watson Knowledge Catalog, provide the type as 'wkc' and either the 'project_id' or 'catalog_id' of the resource that contains the data. If both are provided, 'catalog_id' will be used by default. 'directory_ref' and 'directory_path' are not required when type is set to 'wkc', if provided they will be ignored. The data asset id and properties must be specified under 'data_structure' in the request body.
  • For bulk loads of type 'dfs' or 'wkc', required data properties must be supplied either in a properties file or by specifying the properties contents in the request. If both a file and properties contents are provided, the properties contents will take precedence. Properties contents must include 'file_type' to be valid.
POST /mdm/v1/bulk_load
ServiceCall<BulkLoadJob> runDataBulkLoad(RunDataBulkLoadOptions runDataBulkLoadOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the RunDataBulkLoadOptions.Builder to create a RunDataBulkLoadOptions object that contains the parameter values for the runDataBulkLoad method.

Query Parameters

  • The cloud resource name of the service.

Valid object defining the data source and parameters for the bulk load job.

The runDataBulkLoad options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/bulk_load?crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"data_source":{"directory_path":"34dcd76c-f083-4186-8e0f-5a6a43bf481f/","type":"dfs"},"data_structure":{"record_path":"person/record/person-100.csv","record_properties":"person/record.properties"}}" 
  • DataLoadSource dataLoadSourceModel = new DataLoadSource.Builder()
      .type("dfs")
      .build();
    RunDataBulkLoadOptions runDataBulkLoadOptions = new RunDataBulkLoadOptions.Builder()
      .dataSource(dataLoadSourceModel)
      .build();
    
    Response<BulkLoadJob> response = mdmService.runDataBulkLoad(runDataBulkLoadOptions).execute();
    BulkLoadJob bulkLoadJob = response.getResult();
    
    System.out.println(bulkLoadJob);

Response

Information about a bulk load job.

Information about a bulk load job.

Status Code

  • The bulk load job was successfully started.

  • Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem performing bulk load. An internal error occurred while attempting to perform the operation.

  • Problem performing bulk load. A bulk load process is already running.

Example responses
  • {
      "job_id": "11734859286522966",
      "job_type": "bulk_load",
      "process_ids": [
        "3d2a5f4a-4784-4562-9252-2aa5afa3547f",
        "cfdf26ea-040e-4ce1-80b4-a7491acd0198"
      ],
      "start_time": "1603479295000",
      "status": "running",
      "load_stage": "vertices"
    }
  • {
      "job_id": "11734859286522966",
      "job_type": "bulk_load",
      "process_ids": [
        "3d2a5f4a-4784-4562-9252-2aa5afa3547f",
        "cfdf26ea-040e-4ce1-80b4-a7491acd0198"
      ],
      "start_time": "1603479295000",
      "status": "running",
      "load_stage": "vertices"
    }

List the records linked into an entity

View a list of member records that form the entity.

View a list of member records that form the entity.

GET /mdm/v1/entities/{id}/records
ServiceCall<DataRecordsResponse> listDataRecordsForEntity(ListDataRecordsForEntityOptions listDataRecordsForEntityOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataRecordsForEntityOptions.Builder to create a ListDataRecordsForEntityOptions object that contains the parameter values for the listDataRecordsForEntity method.

Path Parameters

  • The unique identifier of the entity.

Query Parameters

  • The cloud resource name of the service.

  • The maximum number of records to return in each page of results. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • The number of records to skip before returning a page of results.

    Default: 0

  • Record attributes from the data model to include in the results.

    Possible values: contains only unique items

    Examples:
    View
  • Record attributes from the data model to exclude from the results.

    Possible values: contains only unique items

    Examples:
    View

The listDataRecordsForEntity options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/entities/12345/records?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&include=legal_name.given_name&exclude=legal_name.last_name" 
  • ListDataRecordsForEntityOptions listDataRecordsForEntityOptions = new ListDataRecordsForEntityOptions.Builder()
      .id("testString")
      .include(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .exclude(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .build();
    
    Response<DataRecordsResponse> response = mdmService.listDataRecordsForEntity(listDataRecordsForEntityOptions).execute();
    DataRecordsResponse dataRecordsResponse = response.getResult();
    
    System.out.println(dataRecordsResponse);

Response

Paged information about a collection of records.

Paged information about a collection of records.

Status Code

  • The entity records have been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting records for entity: Entity with id <entity_id> does not exist.

  • Problem getting records for entity. An internal error occurred while attempting to retrieve the records.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/entities/person_entity-53496/records?crn=${crn}&return_type=results_as_entities&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/entities/person_entity-53496/records?crn=${crn}&return_type=results_as_entities&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "total_count": 1,
      "records": [
        {
          "attributes": {
            "birth_date": {
              "attribute_last_updated": "1548936483016",
              "value": "1934-05-11T00:00:00.000Z"
            },
            "gender": {
              "attribute_last_updated": "1548936483016",
              "value": "F"
            },
            "legal_name": {
              "attribute_last_updated": "1548936483016",
              "last_name": "LEES",
              "given_name": "KAROLYN"
            },
            "primary_residence": {
              "attribute_last_updated": "1548936483189",
              "address_province_state_value": "KY",
              "address_city": "ELLIOTTVILLE",
              "address_zip_postal_code": "40317",
              "address_province_state_type": "21",
              "address_line_1": "106 EAST SYCAMORE ST.",
              "address_record_id": "215054896528318812",
              "address_line_2": "Unit-701"
            },
            "record_id": "216754896528315937",
            "record_last_updated": "1603572360787",
            "record_source": "MDM"
          },
          "id": "53496",
          "type": "record",
          "record_number": 53496,
          "type_name": "person"
        }
      ]
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/entities/person_entity-53496/records?crn=${crn}&return_type=results_as_entities&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/entities/person_entity-53496/records?crn=${crn}&return_type=results_as_entities&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "total_count": 1,
      "records": [
        {
          "attributes": {
            "birth_date": {
              "attribute_last_updated": "1548936483016",
              "value": "1934-05-11T00:00:00.000Z"
            },
            "gender": {
              "attribute_last_updated": "1548936483016",
              "value": "F"
            },
            "legal_name": {
              "attribute_last_updated": "1548936483016",
              "last_name": "LEES",
              "given_name": "KAROLYN"
            },
            "primary_residence": {
              "attribute_last_updated": "1548936483189",
              "address_province_state_value": "KY",
              "address_city": "ELLIOTTVILLE",
              "address_zip_postal_code": "40317",
              "address_province_state_type": "21",
              "address_line_1": "106 EAST SYCAMORE ST.",
              "address_record_id": "215054896528318812",
              "address_line_2": "Unit-701"
            },
            "record_id": "216754896528315937",
            "record_last_updated": "1603572360787",
            "record_source": "MDM"
          },
          "id": "53496",
          "type": "record",
          "record_number": 53496,
          "type_name": "person"
        }
      ]
    }

View a list of records that have a relationship to the member records of the specified entity based on the specified relationship type. All records related to the specified entity will be returned regardless of relationship direction. The relationship type is expected to be defined in the data model.

View a list of records that have a relationship to the member records of the specified entity based on the specified relationship type. All records related to the specified entity will be returned regardless of relationship direction. The relationship type is expected to be defined in the data model.

GET /mdm/v1/entities/{id}/related_records
ServiceCall<RelatedRecords> listDataRelatedRecordsForEntity(ListDataRelatedRecordsForEntityOptions listDataRelatedRecordsForEntityOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataRelatedRecordsForEntityOptions.Builder to create a ListDataRelatedRecordsForEntityOptions object that contains the parameter values for the listDataRelatedRecordsForEntity method.

Path Parameters

  • The unique identifier of the entity.

Query Parameters

  • The cloud resource name of the service.

  • The type of records to return in results.

  • The type of relationship between related records and entity member records.

  • The maximum number of records to return in each page of results. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • The number of records to skip before returning a page of results.

    Default: 0

  • Record attributes from the data model to include in the results.

    Possible values: contains only unique items

    Examples:
    View
  • Record attributes from the data model to exclude from the results.

    Possible values: contains only unique items

    Examples:
    View

The listDataRelatedRecordsForEntity options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/entities/12345/related_records?relationship_type=party_relationship&record_type=person&limit=10&offset=0&crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListDataRelatedRecordsForEntityOptions listDataRelatedRecordsForEntityOptions = new ListDataRelatedRecordsForEntityOptions.Builder()
      .id("testString")
      .recordType("testString")
      .relationshipType("testString")
      .include(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .exclude(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .build();
    
    Response<RelatedRecords> response = mdmService.listDataRelatedRecordsForEntity(listDataRelatedRecordsForEntityOptions).execute();
    RelatedRecords relatedRecords = response.getResult();
    
    System.out.println(relatedRecords);

Paged information about a set of other records related to an entity or a record.

Paged information about a set of other records related to an entity or a record.

Status Code

  • The related records for the entity have been successfully retrieved.

  • Problem getting related records for entity. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting related records for entity. Entity with id does not exist.

  • Problem getting related records for entity. An internal error occurred while attempting to retrieve the records.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/entities/person_entity-53496/related_records?crn=${crn}&relationship_type=party_relationship&record_type=person&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/entities/person_entity-53496/related_records?crn=${crn}&relationship_type=party_relationship&record_type=person&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "total_count": 1,
      "related_records": [
        {
          "attributes": {
            "record_id": "535354896573139473",
            "record_last_updated": "1603572360787",
            "record_source": "MDM",
            "usage_type": {
              "attribute_last_updated": "1548936483189",
              "value": "3"
            },
            "usage_value": {
              "attribute_last_updated": "1548936483189",
              "value": "Retail Banking"
            }
          },
          "id": "192616",
          "type": "record",
          "record_number": 192616,
          "type_name": "preference"
        }
      ]
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/entities/person_entity-53496/related_records?crn=${crn}&relationship_type=party_relationship&record_type=person&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/entities/person_entity-53496/related_records?crn=${crn}&relationship_type=party_relationship&record_type=person&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "total_count": 1,
      "related_records": [
        {
          "attributes": {
            "record_id": "535354896573139473",
            "record_last_updated": "1603572360787",
            "record_source": "MDM",
            "usage_type": {
              "attribute_last_updated": "1548936483189",
              "value": "3"
            },
            "usage_value": {
              "attribute_last_updated": "1548936483189",
              "value": "Retail Banking"
            }
          },
          "id": "192616",
          "type": "record",
          "record_number": 192616,
          "type_name": "preference"
        }
      ]
    }

List the relationships for an entity

View a list of relationships that exist between the given entity and other nodes on the graph. This endpoint does not include internal relationships in the resulting list of relationships.

View a list of relationships that exist between the given entity and other nodes on the graph. This endpoint does not include internal relationships in the resulting list of relationships.

GET /mdm/v1/entities/{id}/relationships
ServiceCall<DataRelationshipsResponse> listDataRelationshipsForEntity(ListDataRelationshipsForEntityOptions listDataRelationshipsForEntityOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataRelationshipsForEntityOptions.Builder to create a ListDataRelationshipsForEntityOptions object that contains the parameter values for the listDataRelationshipsForEntity method.

Path Parameters

  • The ID of the entity.

Query Parameters

  • The cloud resource name of the service.

  • The relationship types to return.

  • Whether to include entity record relationships to other nodes.

    Default: false

  • The number of relationships to skip over.

    Default: 0

  • The number of relationships to be returned. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • Attributes from the data model to include in the results for the source vertex.

    Possible values: contains only unique items

    Examples:
    View
  • Attributes from the data model to include in the results for the target vertex.

    Possible values: contains only unique items

    Examples:
    View

The listDataRelationshipsForEntity options.

  • ListDataRelationshipsForEntityOptions listDataRelationshipsForEntityOptions = new ListDataRelationshipsForEntityOptions.Builder()
      .id("testString")
      .build();
    
    Response<DataRelationshipsResponse> response = mdmService.listDataRelationshipsForEntity(listDataRelationshipsForEntityOptions).execute();
    DataRelationshipsResponse dataRelationshipsResponse = response.getResult();
    
    System.out.println(dataRelationshipsResponse);

Response

Paged information about a collection of relationships.

Paged information about a collection of relationships.

Status Code

  • The relationships have been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting relationships for entity. Entity not found.

  • Problem getting relationships for entity. An internal error occurred while attempting to retrieve the relationships.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/entities/456/relationships?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/entities/456/relationships?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "relationships": [
        {
          "attributes": {
            "relationship_id": "997554896611881692",
            "relationship_last_updated": "1548937318815",
            "relationship_source": "MDM",
            "from_record_id": "358354896586841797",
            "from_record_source": "MDM",
            "from_record_type": "preference",
            "to_record_id": "998254896587316451",
            "to_record_source": "MDM",
            "to_record_type": "organization"
          },
          "id": "215tzl-5cw8-q7f9-oi7u8",
          "source": {
            "id": "4344",
            "type": "record",
            "type_name": "person"
          },
          "target": {
            "id": "456",
            "type": "entity",
            "type_name": "person_entity"
          },
          "type": "relationship",
          "type_name": "preference_association"
        }
      ]
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/entities/456/relationships?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/entities/456/relationships?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "relationships": [
        {
          "attributes": {
            "relationship_id": "997554896611881692",
            "relationship_last_updated": "1548937318815",
            "relationship_source": "MDM",
            "from_record_id": "358354896586841797",
            "from_record_source": "MDM",
            "from_record_type": "preference",
            "to_record_id": "998254896587316451",
            "to_record_source": "MDM",
            "to_record_type": "organization"
          },
          "id": "215tzl-5cw8-q7f9-oi7u8",
          "source": {
            "id": "4344",
            "type": "record",
            "type_name": "person"
          },
          "target": {
            "id": "456",
            "type": "entity",
            "type_name": "person_entity"
          },
          "type": "relationship",
          "type_name": "preference_association"
        }
      ]
    }

Get the composite view of an entity

View attributes for an entity in a consolidated view based on defined composite view rules from the Model APIs.

View attributes for an entity in a consolidated view based on defined composite view rules from the Model APIs.

GET /mdm/v1/entities/{id}
ServiceCall<DataEntityResponse> getDataEntity(GetDataEntityOptions getDataEntityOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataEntityOptions.Builder to create a GetDataEntityOptions object that contains the parameter values for the getDataEntity method.

Path Parameters

  • The unique identifier of the entity.

Query Parameters

  • The cloud resource name of the service.

  • Record attributes from the data model to include in the results.

    Possible values: contains only unique items

    Examples:
    View
  • Record attributes from the data model to exclude from the results.

    Possible values: contains only unique items

    Examples:
    View

The getDataEntity options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/entities/12345?include=legal_name.given_name&exclude=legal_name.last_name&crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetDataEntityOptions getDataEntityOptions = new GetDataEntityOptions.Builder()
      .id("testString")
      .include(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .exclude(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .build();
    
    Response<DataEntityResponse> response = mdmService.getDataEntity(getDataEntityOptions).execute();
    DataEntityResponse dataEntityResponse = response.getResult();
    
    System.out.println(dataEntityResponse);

Response

Information and metadata about the composite view of an entity.

Information and metadata about the composite view of an entity.

Status Code

  • The composite view has been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting composite view for entity: Entity with id <entity_id> does not exist.

  • Problem getting composite view for entity. An internal error occurred while attempting to retrieve the composite view.

Example responses
  • {
      "entity": {
        "attributes": {
          "birth_date": {
            "attribute_last_updated": "1548936483016",
            "value": "1934-05-11T00:00:00.000Z"
          },
          "entity_last_updated": "1603572360787",
          "gender": {
            "attribute_last_updated": "1548936483016",
            "value": "F"
          },
          "legal_name": {
            "attribute_last_updated": "1548936483016",
            "last_name": "LEES",
            "given_name": "KAROLYN"
          },
          "primary_residence": {
            "attribute_last_updated": "1548936483189",
            "address_province_state_value": "KY",
            "address_city": "ELLIOTTVILLE",
            "address_zip_postal_code": "40317",
            "address_line_1": "106 EAST SYCAMORE ST.",
            "address_record_id": "215054896528318812",
            "address_line_2": "Unit-701"
          },
          "record_id": "216754896528315937",
          "record_source": "MDM"
        },
        "id": "person_entity-53496",
        "type": "entity",
        "record_count": 1,
        "type_name": "person_entity"
      },
      "metadata": {
        "href": "${host}/mdm/v1/entities/person_entity-53496?crn=${crn}",
        "id": "person_entity-53496",
        "updated_at": "2020-10-24T20:46:00.787Z"
      }
    }
  • {
      "entity": {
        "attributes": {
          "birth_date": {
            "attribute_last_updated": "1548936483016",
            "value": "1934-05-11T00:00:00.000Z"
          },
          "entity_last_updated": "1603572360787",
          "gender": {
            "attribute_last_updated": "1548936483016",
            "value": "F"
          },
          "legal_name": {
            "attribute_last_updated": "1548936483016",
            "last_name": "LEES",
            "given_name": "KAROLYN"
          },
          "primary_residence": {
            "attribute_last_updated": "1548936483189",
            "address_province_state_value": "KY",
            "address_city": "ELLIOTTVILLE",
            "address_zip_postal_code": "40317",
            "address_line_1": "106 EAST SYCAMORE ST.",
            "address_record_id": "215054896528318812",
            "address_line_2": "Unit-701"
          },
          "record_id": "216754896528315937",
          "record_source": "MDM"
        },
        "id": "person_entity-53496",
        "type": "entity",
        "record_count": 1,
        "type_name": "person_entity"
      },
      "metadata": {
        "href": "${host}/mdm/v1/entities/person_entity-53496?crn=${crn}",
        "id": "person_entity-53496",
        "updated_at": "2020-10-24T20:46:00.787Z"
      }
    }

Get information for an export

View detailed information about the specified export job. The process ids can be used to track the job status through the Job APIs.

View detailed information about the specified export job. The process ids can be used to track the job status through the Job APIs.

GET /mdm/v1/data_exports/{export_id}
ServiceCall<DataExport> getDataExport(GetDataExportOptions getDataExportOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataExportOptions.Builder to create a GetDataExportOptions object that contains the parameter values for the getDataExport method.

Path Parameters

  • The ID of the export.

Query Parameters

  • The cloud resource name of the service.

The getDataExport options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/data_exports/24403560707830722?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetDataExportOptions getDataExportOptions = new GetDataExportOptions.Builder()
      .exportId("testString")
      .build();
    
    Response<DataExport> response = mdmService.getDataExport(getDataExportOptions).execute();
    DataExport dataExport = response.getResult();
    
    System.out.println(dataExport);

Response

Information about an export.

Information about an export.

Status Code

  • The export information was retrieved successfully.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting export information. The export does not exist.

  • Problem getting export information. An internal error occurred while attempting to retrieve the export information.

Example responses
  • {
      "end_time": "1603483621000",
      "job_id": "24403560707830722",
      "job_type": "export",
      "process_ids": [
        "b3ba096d-c625-4d2f-ad12-285966f61cb0"
      ],
      "start_time": "1603483531000",
      "status": "succeeded",
      "file_expired": false,
      "file_name": "records",
      "search_criteria": {
        "filters": [],
        "query": {
          "expressions": [
            {
              "condition": "equal",
              "expressions": [],
              "value": "JOHN"
            }
          ],
          "operation": "and"
        },
        "search_type": "record"
      }
    }
  • {
      "end_time": "1603483621000",
      "job_id": "24403560707830722",
      "job_type": "export",
      "process_ids": [
        "b3ba096d-c625-4d2f-ad12-285966f61cb0"
      ],
      "start_time": "1603483531000",
      "status": "succeeded",
      "file_expired": false,
      "file_name": "records",
      "search_criteria": {
        "filters": [],
        "query": {
          "expressions": [
            {
              "condition": "equal",
              "expressions": [],
              "value": "JOHN"
            }
          ],
          "operation": "and"
        },
        "search_type": "record"
      }
    }

Download an export file

Download the resulting file from a completed export job if the file exists. The export files may expire after some time.

Download the resulting file from a completed export job if the file exists. The export files may expire after some time.

GET /mdm/v1/data_exports/{export_id}/download
ServiceCall<InputStream> getDataExportDownload(GetDataExportDownloadOptions getDataExportDownloadOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataExportDownloadOptions.Builder to create a GetDataExportDownloadOptions object that contains the parameter values for the getDataExportDownload method.

Path Parameters

  • The ID of the export. This ID is equivalent to the job ID of the export job.

Query Parameters

  • The cloud resource name of the service.

The getDataExportDownload options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/data_exports/24403560707830722/download?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetDataExportDownloadOptions getDataExportDownloadOptions = new GetDataExportDownloadOptions.Builder()
      .exportId("testString")
      .build();
    
    Response<InputStream> response = mdmService.getDataExportDownload(getDataExportDownloadOptions).execute();
    InputStream inputStream = response.getResult();
    
    System.out.println(inputStream);

Response

Response type: InputStream

Status Code

  • The export file has been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem downloading export file. The export does not exist.

  • Problem downloading export file. The export file no longer exists.

  • Problem downloading export file. An internal error occurred while attempting to retrieve the export file.

  • Problem downloading export file. The export job is not in a successful state.

No Sample Response

This method does not specify any sample responses.

List the export jobs

View a summary list of export jobs that have been requested.

View a summary list of export jobs that have been requested.

GET /mdm/v1/data_exports
ServiceCall<DataExports> listDataExports(ListDataExportsOptions listDataExportsOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataExportsOptions.Builder to create a ListDataExportsOptions object that contains the parameter values for the listDataExports method.

Query Parameters

  • The cloud resource name of the service.

  • The number of exports to skip before returning a page of results.

    Default: 0

  • The maximum number of exports to return in each page of results. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • Whether to include exports with expired files.

    Default: true

The listDataExports options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/data_exports?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListDataExportsOptions listDataExportsOptions = new ListDataExportsOptions.Builder()
      .build();
    
    Response<DataExports> response = mdmService.listDataExports(listDataExportsOptions).execute();
    DataExports dataExports = response.getResult();
    
    System.out.println(dataExports);

Response

Paged information about a collection of exports.

Paged information about a collection of exports.

Status Code

  • The list of exports was retrieved successfully.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting list of exports. An internal error occurred while attempting to retrieve the list of exports.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/data_exports?crn=${crn}&record_type=person&local=true&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/data_exports?crn=${crn}&record_type=person&local=true&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "exports": [
        {
          "end_time": "1603483621000",
          "job_id": "24403560707830722",
          "job_type": "export",
          "process_ids": [
            "b3ba096d-c625-4d2f-ad12-285966f61cb0"
          ],
          "start_time": "1603483531000",
          "status": "succeeded",
          "file_expired": false,
          "file_name": "records",
          "search_criteria": {
            "filters": [],
            "query": {
              "expressions": [
                {
                  "condition": "equal",
                  "expressions": [],
                  "value": "JOHN"
                }
              ],
              "operation": "and"
            },
            "search_type": "record"
          }
        }
      ],
      "total_count": 1
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/data_exports?crn=${crn}&record_type=person&local=true&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/data_exports?crn=${crn}&record_type=person&local=true&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "exports": [
        {
          "end_time": "1603483621000",
          "job_id": "24403560707830722",
          "job_type": "export",
          "process_ids": [
            "b3ba096d-c625-4d2f-ad12-285966f61cb0"
          ],
          "start_time": "1603483531000",
          "status": "succeeded",
          "file_expired": false,
          "file_name": "records",
          "search_criteria": {
            "filters": [],
            "query": {
              "expressions": [
                {
                  "condition": "equal",
                  "expressions": [],
                  "value": "JOHN"
                }
              ],
              "operation": "and"
            },
            "search_type": "record"
          }
        }
      ],
      "total_count": 1
    }

Start an export of search results

Run a data export job to export the results of a search. Export format, search criteria, and file name are configurable in the message body. The file name must only contain alphanumeric characters, and be 64 characters or less.

The operation runs as follows:

  • A compression type must be provided when a partition type of 'executor_count' is specified.

Run a data export job to export the results of a search. Export format, search criteria, and file name are configurable in the message body. The file name must only contain alphanumeric characters, and be 64 characters or less.

The operation runs as follows:

  • A compression type must be provided when a partition type of 'executor_count' is specified.
POST /mdm/v1/data_exports
ServiceCall<DataExport> createDataExport(CreateDataExportOptions createDataExportOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the CreateDataExportOptions.Builder to create a CreateDataExportOptions object that contains the parameter values for the createDataExport method.

Query Parameters

  • The cloud resource name of the service.

  • The type of file compression used when exporting the output file. Required when a partition type of 'executor_count' is specified.

    Allowable values: [tar,tgz,zip]

  • The type of partitioning used when exporting the results.

    Allowable values: [none,executor_count]

    Default: none

Valid object defining the export format and search criteria for the export job.

The createDataExport options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/data_exports?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::"  --data "{ "export_type": "entity", "format": "csv", "file_name":"records", "search_criteria": { "search_type": "record", "query": { "operation": "and", "expressions": [ { "value": "JOHN" } ] } } }" 
  • DataSearchCriteria dataSearchCriteriaModel = new DataSearchCriteria.Builder()
      .build();
    CreateDataExportOptions createDataExportOptions = new CreateDataExportOptions.Builder()
      .exportType("record")
      .format("csv")
      .searchCriteria(dataSearchCriteriaModel)
      .build();
    
    Response<DataExport> response = mdmService.createDataExport(createDataExportOptions).execute();
    DataExport dataExport = response.getResult();
    
    System.out.println(dataExport);

Response

Information about an export.

Information about an export.

Status Code

  • The export job was started successfully.

  • Problem starting export job. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem starting export job. An internal error occurred.

Example responses
  • {
      "job_id": "24403560707830722",
      "job_type": "export",
      "process_ids": [
        "b3ba096d-c625-4d2f-ad12-285966f61cb0"
      ],
      "start_time": "1603483531000",
      "status": "running",
      "file_expired": false,
      "file_name": "records",
      "search_criteria": {
        "filters": [],
        "query": {
          "expressions": [
            {
              "condition": "equal",
              "expressions": [],
              "value": "JOHN"
            }
          ],
          "operation": "and"
        },
        "search_type": "record"
      }
    }
  • {
      "job_id": "24403560707830722",
      "job_type": "export",
      "process_ids": [
        "b3ba096d-c625-4d2f-ad12-285966f61cb0"
      ],
      "start_time": "1603483531000",
      "status": "running",
      "file_expired": false,
      "file_name": "records",
      "search_criteria": {
        "filters": [],
        "query": {
          "expressions": [
            {
              "condition": "equal",
              "expressions": [],
              "value": "JOHN"
            }
          ],
          "operation": "and"
        },
        "search_type": "record"
      }
    }

Stop a given job

Attempt to stop a running job. This operation does not rollback changes made by the job process prior to stopping the job. Full deletion of job resources may take up to a few minutes.

Attempt to stop a running job. This operation does not rollback changes made by the job process prior to stopping the job. Full deletion of job resources may take up to a few minutes.

POST /mdm/v1/data_jobs/{job_id}/stop
ServiceCall<DataJob> stopDataJob(StopDataJobOptions stopDataJobOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the StopDataJobOptions.Builder to create a StopDataJobOptions object that contains the parameter values for the stopDataJob method.

Path Parameters

  • The ID of the job.

Query Parameters

  • The cloud resource name of the service.

The stopDataJob options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "/mdm/v1/data_jobs/24403560707830722/stop?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • StopDataJobOptions stopDataJobOptions = new StopDataJobOptions.Builder()
      .jobId("testString")
      .build();
    
    Response<DataJob> response = mdmService.stopDataJob(stopDataJobOptions).execute();
    DataJob dataJob = response.getResult();
    
    System.out.println(dataJob);

Response

Information about a job.

Information about a job.

Status Code

  • The job was stopped successfully.

  • Problem stopping job process. The process with job id <job_id> is not running.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem stopping job process. A process with job id <job_id> could not be found.

  • Problem stopping job process. Jobs of this type are not supported.

  • Problem stopping job process. An internal error occurred while attempting to perform the operation.

Example responses
  • {
      "end_time": "1620660046000",
      "job_id": "8785798185259674",
      "job_type": "bulk_load",
      "process_ids": [
        "7155aff7-7d42-487b-85a7-8474b5efff2f",
        "8647d779-b13e-4f77-bda7-3ab2ca85c881"
      ],
      "start_time": "1620660025000",
      "status": "canceled",
      "load_stage": "vertices"
    }
  • {
      "end_time": "1620660046000",
      "job_id": "8785798185259674",
      "job_type": "bulk_load",
      "process_ids": [
        "7155aff7-7d42-487b-85a7-8474b5efff2f",
        "8647d779-b13e-4f77-bda7-3ab2ca85c881"
      ],
      "start_time": "1620660025000",
      "status": "canceled",
      "load_stage": "vertices"
    }

List the jobs

View a list of jobs that have been run. Filter on job type or job status to get a more precise list of jobs.

View a list of jobs that have been run. Filter on job type or job status to get a more precise list of jobs.

GET /mdm/v1/data_jobs
ServiceCall<DataJobs> listDataJobs(ListDataJobsOptions listDataJobsOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataJobsOptions.Builder to create a ListDataJobsOptions object that contains the parameter values for the listDataJobs method.

Query Parameters

  • The cloud resource name of the service.

  • The number of jobs to skip before returning a page of results.

    Default: 0

  • The maximum number of jobs to return in each page of results. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • Filter by job status.

    Allowable values: [not_started,prep,queued,running,succeeded,failed,canceled,unknown]

  • Filter by job type.

    Allowable values: [bulk_load,delete,export]

The listDataJobs options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "/mdm/v1/data_jobs?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&status=running&type=bulk_load" 
  • ListDataJobsOptions listDataJobsOptions = new ListDataJobsOptions.Builder()
      .build();
    
    Response<DataJobs> response = mdmService.listDataJobs(listDataJobsOptions).execute();
    DataJobs dataJobs = response.getResult();
    
    System.out.println(dataJobs);

Response

Paged information about a collection of jobs.

Paged information about a collection of jobs.

Status Code

  • The list of jobs was retrieved successfully.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting list of jobs. An internal error occurred while attempting to retrieve the list of jobs.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/data_jobs?crn=${CRN}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/data_jobs?crn=${CRN}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "jobs": [
        {
          "end_time": "1620155648000",
          "job_id": "4839655889405511",
          "job_type": "bulk_load",
          "process_ids": [
            "e7df6747-6668-4b5b-a642-70b05eadf20f",
            "658fde68-384c-427e-90a0-bdfd8aa02b6d"
          ],
          "start_time": "1620155442000",
          "status": "succeeded",
          "load_stage": "edges"
        }
      ],
      "total_count": 1
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/data_jobs?crn=${CRN}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/data_jobs?crn=${CRN}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "jobs": [
        {
          "end_time": "1620155648000",
          "job_id": "4839655889405511",
          "job_type": "bulk_load",
          "process_ids": [
            "e7df6747-6668-4b5b-a642-70b05eadf20f",
            "658fde68-384c-427e-90a0-bdfd8aa02b6d"
          ],
          "start_time": "1620155442000",
          "status": "succeeded",
          "load_stage": "edges"
        }
      ],
      "total_count": 1
    }

Get information for a job

View information about the specified job.

View information about the specified job.

GET /mdm/v1/data_jobs/{job_id}
ServiceCall<DataJob> getDataJob(GetDataJobOptions getDataJobOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataJobOptions.Builder to create a GetDataJobOptions object that contains the parameter values for the getDataJob method.

Path Parameters

  • The ID of the job.

Query Parameters

  • The cloud resource name of the service.

The getDataJob options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "/mdm/v1/data_jobs/24403560707830722?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetDataJobOptions getDataJobOptions = new GetDataJobOptions.Builder()
      .jobId("testString")
      .build();
    
    Response<DataJob> response = mdmService.getDataJob(getDataJobOptions).execute();
    DataJob dataJob = response.getResult();
    
    System.out.println(dataJob);

Response

Information about a job.

Information about a job.

Status Code

  • The job status was retrieved successfully.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting job information. Job not found.

  • Problem getting job information. An internal error occurred while attempting to retrieve the job information.

Example responses
  • {
      "end_time": "1620155648000",
      "job_id": "4839655889405511",
      "job_type": "bulk_load",
      "process_ids": [
        "e7df6747-6668-4b5b-a642-70b05eadf20f",
        "658fde68-384c-427e-90a0-bdfd8aa02b6d"
      ],
      "start_time": "1620155442000",
      "status": "succeeded",
      "load_stage": "edges"
    }
  • {
      "end_time": "1620155648000",
      "job_id": "4839655889405511",
      "job_type": "bulk_load",
      "process_ids": [
        "e7df6747-6668-4b5b-a642-70b05eadf20f",
        "658fde68-384c-427e-90a0-bdfd8aa02b6d"
      ],
      "start_time": "1620155442000",
      "status": "succeeded",
      "load_stage": "edges"
    }

Clean up job data

Delete any uploaded artifacts from the system after the job completes.

Delete any uploaded artifacts from the system after the job completes.

POST /mdm/v1/data_jobs/{job_id}/clean_up
ServiceCall<Void> cleanUpDataJob(CleanUpDataJobOptions cleanUpDataJobOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the CleanUpDataJobOptions.Builder to create a CleanUpDataJobOptions object that contains the parameter values for the cleanUpDataJob method.

Path Parameters

  • The ID of the job.

Query Parameters

  • The cloud resource name of the service.

The cleanUpDataJob options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "/mdm/v1/data_jobs/24403560707830722/clean_up?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • CleanUpDataJobOptions cleanUpDataJobOptions = new CleanUpDataJobOptions.Builder()
      .jobId("testString")
      .build();
    
    Response<Void> response = mdmService.cleanUpDataJob(cleanUpDataJobOptions).execute();

Response

Status Code

  • The job clean up was successful.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem cleaning up job. Job not found.

  • Problem cleaning up job. Jobs of this type are not supported.

  • Problem cleaning up job. The job data could not be found.

  • Problem cleaning up job. An internal error occurred while cleaning up the job.

  • Problem cleaning up job. Operation cannot be performed while job is still running.

No Sample Response

This method does not specify any sample responses.

Get a record

View information about the specified record on the graph.

View information about the specified record on the graph.

GET /mdm/v1/records/{id}
ServiceCall<DataRecordResponse> getDataRecord(GetDataRecordOptions getDataRecordOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataRecordOptions.Builder to create a GetDataRecordOptions object that contains the parameter values for the getDataRecord method.

Path Parameters

  • The ID of the record.

Query Parameters

  • The cloud resource name of the service.

  • Record attributes from the data model to include in the results.

    Possible values: contains only unique items

    Examples:
    View
  • Record attributes from the data model to exclude from the results.

    Possible values: contains only unique items

    Examples:
    View

The getDataRecord options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records/40964176?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetDataRecordOptions getDataRecordOptions = new GetDataRecordOptions.Builder()
      .id(Long.valueOf("26"))
      .include(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .exclude(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .build();
    
    Response<DataRecordResponse> response = mdmService.getDataRecord(getDataRecordOptions).execute();
    DataRecordResponse dataRecordResponse = response.getResult();
    
    System.out.println(dataRecordResponse);

Response

Information about a record.

Information about a record.

Status Code

  • The record has been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting record: Record does not exist.

  • Problem getting record. An internal error occurred while attempting to retrieve the record.

Example responses
  • {
      "metadata": {
        "href": "${host}/mdm/v1/records/40964176?crn=${crn}",
        "id": "40964176",
        "updated_at": "2020-10-23T19:49:51.442Z"
      },
      "record": {
        "attributes": {
          "legal_name": {
            "attribute_last_updated": "1548936483189",
            "last_name": "Smith",
            "given_name": "Jane"
          },
          "record_id": "12345",
          "record_last_updated": "1603482591442",
          "record_source": "MDM"
        },
        "id": "40964176",
        "type": "record",
        "record_number": 40964176,
        "type_name": "person"
      }
    }
  • {
      "metadata": {
        "href": "${host}/mdm/v1/records/40964176?crn=${crn}",
        "id": "40964176",
        "updated_at": "2020-10-23T19:49:51.442Z"
      },
      "record": {
        "attributes": {
          "legal_name": {
            "attribute_last_updated": "1548936483189",
            "last_name": "Smith",
            "given_name": "Jane"
          },
          "record_id": "12345",
          "record_last_updated": "1603482591442",
          "record_source": "MDM"
        },
        "id": "40964176",
        "type": "record",
        "record_number": 40964176,
        "type_name": "person"
      }
    }

Replace attributes for a record

Replace the existing record with the new set of attributes. Any existing editable record attributes not specified in the request will be removed from the record.

Replace the existing record with the new set of attributes. Any existing editable record attributes not specified in the request will be removed from the record.

PUT /mdm/v1/records/{id}
ServiceCall<DataRecordResponse> replaceDataRecord(ReplaceDataRecordOptions replaceDataRecordOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the ReplaceDataRecordOptions.Builder to create a ReplaceDataRecordOptions object that contains the parameter values for the replaceDataRecord method.

Path Parameters

  • The ID of the record.

Query Parameters

  • The cloud resource name of the service.

Valid object defining the record information to replace the existing record.

The replaceDataRecord options.

  • ReplaceDataRecordOptions replaceDataRecordOptions = new ReplaceDataRecordOptions.Builder()
      .id(Long.valueOf("26"))
      .newAttributes(new java.util.HashMap<String, Object>() { { put("foo", TestUtilities.createMockMap()); } })
      .newTypeName("testString")
      .build();
    
    Response<DataRecordResponse> response = mdmService.replaceDataRecord(replaceDataRecordOptions).execute();
    DataRecordResponse dataRecordResponse = response.getResult();
    
    System.out.println(dataRecordResponse);

Response

Information about a record.

Information about a record.

Status Code

  • The record has been successfully updated.

  • Problem updating record. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem updating record. Record does not exist.

  • Problem updating record. Record has a future timestamp.

  • Problem updating record. An internal error occurred while attempting to update the record.

Example responses
  • {
      "metadata": {
        "href": "${host}/mdm/v1/records/40964176?crn=${crn}",
        "id": "40964176",
        "updated_at": "2020-10-23T19:49:51.442Z"
      },
      "record": {
        "attributes": {
          "legal_name": {
            "attribute_last_updated": "1548936483189",
            "last_name": "Smith",
            "given_name": "Jane"
          },
          "record_id": "12345",
          "record_last_updated": "1603482591442",
          "record_source": "MDM"
        },
        "id": "40964176",
        "type": "record",
        "record_number": 40964176,
        "type_name": "person"
      }
    }
  • {
      "metadata": {
        "href": "${host}/mdm/v1/records/40964176?crn=${crn}",
        "id": "40964176",
        "updated_at": "2020-10-23T19:49:51.442Z"
      },
      "record": {
        "attributes": {
          "legal_name": {
            "attribute_last_updated": "1548936483189",
            "last_name": "Smith",
            "given_name": "Jane"
          },
          "record_id": "12345",
          "record_last_updated": "1603482591442",
          "record_source": "MDM"
        },
        "id": "40964176",
        "type": "record",
        "record_number": 40964176,
        "type_name": "person"
      }
    }

Delete a record

Delete an existing record from the graph. Deleting a record automatically triggers a removal of the record from any formed entities.

Delete an existing record from the graph. Deleting a record automatically triggers a removal of the record from any formed entities.

DELETE /mdm/v1/records/{id}
ServiceCall<Void> deleteDataRecord(DeleteDataRecordOptions deleteDataRecordOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the DeleteDataRecordOptions.Builder to create a DeleteDataRecordOptions object that contains the parameter values for the deleteDataRecord method.

Path Parameters

  • The ID of the record.

Query Parameters

  • The cloud resource name of the service.

The deleteDataRecord options.

  • curl -X DELETE --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records/40964176?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • DeleteDataRecordOptions deleteDataRecordOptions = new DeleteDataRecordOptions.Builder()
      .id(Long.valueOf("26"))
      .build();
    
    Response<Void> response = mdmService.deleteDataRecord(deleteDataRecordOptions).execute();

Response

Status Code

  • The record was successfully deleted.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem deleting record. Record does not exist.

  • Problem deleting record. An internal error occurred while attempting to delete the record.

No Sample Response

This method does not specify any sample responses.

Get a relationship for a record

Retrieve a single relationship from the set of relationships for the record.

Retrieve a single relationship from the set of relationships for the record.

GET /mdm/v1/records/{id}/relationships/{relationship_id}
ServiceCall<DataRelationshipResponse> getDataRelationshipForRecord(GetDataRelationshipForRecordOptions getDataRelationshipForRecordOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataRelationshipForRecordOptions.Builder to create a GetDataRelationshipForRecordOptions object that contains the parameter values for the getDataRelationshipForRecord method.

Path Parameters

  • The ID of the record.

  • The ID of the linked relationship to return.

Query Parameters

  • The cloud resource name of the service.

  • Attributes from the data model to include in the results for the source vertex.

    Possible values: contains only unique items

    Examples:
    View
  • Attributes from the data model to include in the results for the target vertex.

    Possible values: contains only unique items

    Examples:
    View

The getDataRelationshipForRecord options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records/40964176/relationships/215tzl-5cw8-q7f9-oi7u8?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetDataRelationshipForRecordOptions getDataRelationshipForRecordOptions = new GetDataRelationshipForRecordOptions.Builder()
      .id(Long.valueOf("26"))
      .relationshipId("testString")
      .build();
    
    Response<DataRelationshipResponse> response = mdmService.getDataRelationshipForRecord(getDataRelationshipForRecordOptions).execute();
    DataRelationshipResponse dataRelationshipResponse = response.getResult();
    
    System.out.println(dataRelationshipResponse);

Response

Information about a relationship.

Information about a relationship.

Status Code

  • The relationship has been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting relationship. Relationship does not exist.

  • Problem getting relationship. An internal error occurred while attempting to retrieve the relationship.

Example responses
  • {
      "metadata": {
        "href": "${host}/mdm/v1/records/41160752/relationships/215tzl-5cw8-q7f9-oi7u8?crn={crn}",
        "id": "215tzl-5cw8-q7f9-oi7u8",
        "updated_at": "2019-01-31T12:21:58.815Z"
      },
      "relationship": {
        "attributes": {
          "relationship_id": "997554896611881692",
          "relationship_last_updated": "1548937318815",
          "relationship_source": "MDM",
          "from_record_id": "358354896586841797",
          "from_record_source": "MDM",
          "from_record_type": "preference",
          "to_record_id": "998254896587316451",
          "to_record_source": "MDM",
          "to_record_type": "organization"
        },
        "id": "215tzl-5cw8-q7f9-oi7u8",
        "type": "relationship",
        "type_name": "preference_association"
      }
    }
  • {
      "metadata": {
        "href": "${host}/mdm/v1/records/41160752/relationships/215tzl-5cw8-q7f9-oi7u8?crn={crn}",
        "id": "215tzl-5cw8-q7f9-oi7u8",
        "updated_at": "2019-01-31T12:21:58.815Z"
      },
      "relationship": {
        "attributes": {
          "relationship_id": "997554896611881692",
          "relationship_last_updated": "1548937318815",
          "relationship_source": "MDM",
          "from_record_id": "358354896586841797",
          "from_record_source": "MDM",
          "from_record_type": "preference",
          "to_record_id": "998254896587316451",
          "to_record_source": "MDM",
          "to_record_type": "organization"
        },
        "id": "215tzl-5cw8-q7f9-oi7u8",
        "type": "relationship",
        "type_name": "preference_association"
      }
    }

Retrieve a set of records which are directly connected to the specified record by a relationship. All records related to the specified record will be returned regardless of relationship direction.

Retrieve a set of records which are directly connected to the specified record by a relationship. All records related to the specified record will be returned regardless of relationship direction.

GET /mdm/v1/records/{id}/related_records
ServiceCall<RelatedRecords> listDataRelatedRecordsForRecord(ListDataRelatedRecordsForRecordOptions listDataRelatedRecordsForRecordOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataRelatedRecordsForRecordOptions.Builder to create a ListDataRelatedRecordsForRecordOptions object that contains the parameter values for the listDataRelatedRecordsForRecord method.

Path Parameters

  • The ID of the record.

Query Parameters

  • The cloud resource name of the service.

  • The type of record to filter in results

  • The type of relationship between related records and the specified record.

  • The maximum number of records to return in each page of results. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • The number of records to skip before returning a page of results.

    Default: 0

The listDataRelatedRecordsForRecord options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records/249992/related_records?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&offset=0&limit=10" 
  • ListDataRelatedRecordsForRecordOptions listDataRelatedRecordsForRecordOptions = new ListDataRelatedRecordsForRecordOptions.Builder()
      .id(Long.valueOf("26"))
      .build();
    
    Response<RelatedRecords> response = mdmService.listDataRelatedRecordsForRecord(listDataRelatedRecordsForRecordOptions).execute();
    RelatedRecords relatedRecords = response.getResult();
    
    System.out.println(relatedRecords);

Paged information about a set of other records related to an entity or a record.

Paged information about a set of other records related to an entity or a record.

Status Code

  • The related records for the record have been successfully retrieved.

  • Problem getting related records. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem retrieving neighbors. Record does not exist.

  • Problem retrieving related records. An internal error occurred while attempting to retrieve the related records.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/records/249992/related_records?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/records/249992/related_records?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "total_count": 1,
      "related_records": [
        {
          "attributes": {
            "record_id": "1000007",
            "record_last_updated": "1603209081559",
            "record_source": "MDM",
            "regulation": {
              "regulation_value": "Safety Regulations",
              "attribute_last_updated": "1549006675422",
              "description": "The Safety Regulations provided by Company ABC",
              "regulation_type": "1",
              "url": "https://www.ibm.com"
            }
          },
          "id": "151592",
          "type": "record",
          "record_number": 151592,
          "type_name": "process_purpose"
        }
      ]
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/records/249992/related_records?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/records/249992/related_records?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "total_count": 1,
      "related_records": [
        {
          "attributes": {
            "record_id": "1000007",
            "record_last_updated": "1603209081559",
            "record_source": "MDM",
            "regulation": {
              "regulation_value": "Safety Regulations",
              "attribute_last_updated": "1549006675422",
              "description": "The Safety Regulations provided by Company ABC",
              "regulation_type": "1",
              "url": "https://www.ibm.com"
            }
          },
          "id": "151592",
          "type": "record",
          "record_number": 151592,
          "type_name": "process_purpose"
        }
      ]
    }

List the entities for a record

View a list of entities which the record contributes to.

View a list of entities which the record contributes to.

GET /mdm/v1/records/{id}/entities
ServiceCall<DataEntitiesResponse> listDataEntitiesForRecord(ListDataEntitiesForRecordOptions listDataEntitiesForRecordOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataEntitiesForRecordOptions.Builder to create a ListDataEntitiesForRecordOptions object that contains the parameter values for the listDataEntitiesForRecord method.

Path Parameters

  • The id of the record.

Query Parameters

  • The cloud resource name of the service.

  • The maximum number of records to return in each page of results. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • The number of records to skip before returning a page of results.

    Default: 0

  • Record attributes from the data model to include in the results.

    Possible values: contains only unique items

    Examples:
    View
  • Record attributes from the data model to exclude from the results.

    Possible values: contains only unique items

    Examples:
    View

The listDataEntitiesForRecord options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records/53496/entities?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListDataEntitiesForRecordOptions listDataEntitiesForRecordOptions = new ListDataEntitiesForRecordOptions.Builder()
      .id(Long.valueOf("26"))
      .include(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .exclude(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .build();
    
    Response<DataEntitiesResponse> response = mdmService.listDataEntitiesForRecord(listDataEntitiesForRecordOptions).execute();
    DataEntitiesResponse dataEntitiesResponse = response.getResult();
    
    System.out.println(dataEntitiesResponse);

Response

Paged information about a collection of entities.

Paged information about a collection of entities.

Status Code

  • The list of entities have been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting entities. Record with id <record_id> does not exist.

  • Problem getting entities. An internal error occurred while attempting to retrieve entities for the specified record.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/records/53496/entities?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/records/53496/entities?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "entities": [
        {
          "attributes": {
            "birth_date": {
              "attribute_last_updated": "1548936483189",
              "value": "1934-05-11T00:00:00.000Z"
            },
            "entity_last_updated": "1603572360787",
            "gender": {
              "attribute_last_updated": "1548936483189",
              "value": "F"
            },
            "legal_name": {
              "attribute_last_updated": "1548936483016",
              "last_name": "LEES",
              "given_name": "KAROLYN"
            },
            "primary_residence": {
              "attribute_last_updated": "1548936483189",
              "address_province_state_value": "KY",
              "address_city": "ELLIOTTVILLE",
              "address_zip_postal_code": "40317",
              "address_province_state_type": "21",
              "address_line_1": "106 EAST SYCAMORE ST.",
              "address_line_2": "Unit-701"
            },
            "record_id": "216754896528315937",
            "record_source": "MDM"
          },
          "id": "person_entity-53496",
          "type": "entity",
          "record_count": 1,
          "type_name": "person_entity"
        }
      ]
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/records/53496/entities?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/records/53496/entities?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "entities": [
        {
          "attributes": {
            "birth_date": {
              "attribute_last_updated": "1548936483189",
              "value": "1934-05-11T00:00:00.000Z"
            },
            "entity_last_updated": "1603572360787",
            "gender": {
              "attribute_last_updated": "1548936483189",
              "value": "F"
            },
            "legal_name": {
              "attribute_last_updated": "1548936483016",
              "last_name": "LEES",
              "given_name": "KAROLYN"
            },
            "primary_residence": {
              "attribute_last_updated": "1548936483189",
              "address_province_state_value": "KY",
              "address_city": "ELLIOTTVILLE",
              "address_zip_postal_code": "40317",
              "address_province_state_type": "21",
              "address_line_1": "106 EAST SYCAMORE ST.",
              "address_line_2": "Unit-701"
            },
            "record_id": "216754896528315937",
            "record_source": "MDM"
          },
          "id": "person_entity-53496",
          "type": "entity",
          "record_count": 1,
          "type_name": "person_entity"
        }
      ]
    }

List the records

View a list of records that have been added to the graph.

View a list of records that have been added to the graph.

GET /mdm/v1/records
ServiceCall<DataRecordsResponse> listDataRecords(ListDataRecordsOptions listDataRecordsOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataRecordsOptions.Builder to create a ListDataRecordsOptions object that contains the parameter values for the listDataRecords method.

Query Parameters

  • The cloud resource name of the service.

  • The number of records to skip over.

    Default: 0

  • The number of records to be returned. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

The listDataRecords options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListDataRecordsOptions listDataRecordsOptions = new ListDataRecordsOptions.Builder()
      .build();
    
    Response<DataRecordsResponse> response = mdmService.listDataRecords(listDataRecordsOptions).execute();
    DataRecordsResponse dataRecordsResponse = response.getResult();
    
    System.out.println(dataRecordsResponse);

Response

Paged information about a collection of records.

Paged information about a collection of records.

Status Code

  • The records have been successfully retrieved.

  • Problem getting records. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting records. An internal error occurred while attempting to retrieve the records.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/records?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/records?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "records": [
        {
          "attributes": {
            "record_id": "1000007",
            "record_last_updated": "1603209081559",
            "record_source": "MDM",
            "regulation": {
              "regulation_value": "Safety Regulations",
              "attribute_last_updated": "1549006675422",
              "description": "The Safety Regulations provided by Company ABC",
              "regulation_type": "1",
              "url": "https://www.ibm.com"
            }
          },
          "id": "151592",
          "type": "record",
          "record_number": 151592,
          "type_name": "process_purpose"
        }
      ]
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/records?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/records?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "records": [
        {
          "attributes": {
            "record_id": "1000007",
            "record_last_updated": "1603209081559",
            "record_source": "MDM",
            "regulation": {
              "regulation_value": "Safety Regulations",
              "attribute_last_updated": "1549006675422",
              "description": "The Safety Regulations provided by Company ABC",
              "regulation_type": "1",
              "url": "https://www.ibm.com"
            }
          },
          "id": "151592",
          "type": "record",
          "record_number": 151592,
          "type_name": "process_purpose"
        }
      ]
    }

Create a new record

Add a new record to the graph. An incremental matching operation is automatically triggered after the record is created, to enable the record to join or form an entity.

Add a new record to the graph. An incremental matching operation is automatically triggered after the record is created, to enable the record to join or form an entity.

POST /mdm/v1/records
ServiceCall<DataRecordResponse> createDataRecord(CreateDataRecordOptions createDataRecordOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the CreateDataRecordOptions.Builder to create a CreateDataRecordOptions object that contains the parameter values for the createDataRecord method.

Query Parameters

  • The cloud resource name of the service.

Valid object defining the record to be added to the graph.

The createDataRecord options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"attributes":{"record_id":"12345","record_source":"MDM","legal_name":{"given_name":"Jane","last_name":"Smith"}},"type_name":"person"}" 
  • CreateDataRecordOptions createDataRecordOptions = new CreateDataRecordOptions.Builder()
      .attributes(new java.util.HashMap<String, Object>() { { put("foo", TestUtilities.createMockMap()); } })
      .typeName("testString")
      .build();
    
    Response<DataRecordResponse> response = mdmService.createDataRecord(createDataRecordOptions).execute();
    DataRecordResponse dataRecordResponse = response.getResult();
    
    System.out.println(dataRecordResponse);

Response

Information about a record.

Information about a record.

Status Code

  • The record has been successfully created.

  • Problem creating record. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem creating record. An internal error occurred while attempting to create the record.

Example responses
  • {
      "metadata": {
        "href": "${host}/mdm/v1/records/40964176?crn=${crn}",
        "id": "40964176",
        "updated_at": "2020-10-23T19:49:51.442Z"
      },
      "record": {
        "attributes": {
          "legal_name": {
            "attribute_last_updated": "1548936483189",
            "last_name": "Smith",
            "given_name": "Jane"
          },
          "record_id": "12345",
          "record_last_updated": "1603482591442",
          "record_source": "MDM"
        },
        "id": "40964176",
        "type": "record",
        "record_number": 40964176,
        "type_name": "person"
      }
    }
  • {
      "metadata": {
        "href": "${host}/mdm/v1/records/40964176?crn=${crn}",
        "id": "40964176",
        "updated_at": "2020-10-23T19:49:51.442Z"
      },
      "record": {
        "attributes": {
          "legal_name": {
            "attribute_last_updated": "1548936483189",
            "last_name": "Smith",
            "given_name": "Jane"
          },
          "record_id": "12345",
          "record_last_updated": "1603482591442",
          "record_source": "MDM"
        },
        "id": "40964176",
        "type": "record",
        "record_number": 40964176,
        "type_name": "person"
      }
    }

List the relationships for a record

View a list of relationships that exist between the given record and other records in the graph.

View a list of relationships that exist between the given record and other records in the graph.

GET /mdm/v1/records/{id}/relationships
ServiceCall<DataRelationshipsResponse> listDataRelationshipsForRecord(ListDataRelationshipsForRecordOptions listDataRelationshipsForRecordOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the ListDataRelationshipsForRecordOptions.Builder to create a ListDataRelationshipsForRecordOptions object that contains the parameter values for the listDataRelationshipsForRecord method.

Path Parameters

  • The ID of the record.

Query Parameters

  • The cloud resource name of the service.

  • The relationship types to return.

  • The number of relationships to skip over.

    Default: 0

  • The number of relationships to be returned. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • Attributes from the data model to include in the results for the source vertex.

    Possible values: contains only unique items

    Examples:
    View
  • Attributes from the data model to include in the results for the target vertex.

    Possible values: contains only unique items

    Examples:
    View

The listDataRelationshipsForRecord options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records/40964176/relationships?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListDataRelationshipsForRecordOptions listDataRelationshipsForRecordOptions = new ListDataRelationshipsForRecordOptions.Builder()
      .id(Long.valueOf("26"))
      .build();
    
    Response<DataRelationshipsResponse> response = mdmService.listDataRelationshipsForRecord(listDataRelationshipsForRecordOptions).execute();
    DataRelationshipsResponse dataRelationshipsResponse = response.getResult();
    
    System.out.println(dataRelationshipsResponse);

Response

Paged information about a collection of relationships.

Paged information about a collection of relationships.

Status Code

  • The relationships have been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem retrieving relationships. Record not found.

  • Problem retrieving relationships. An internal error occurred.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/records/123/relationships?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/records/123/relationships?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "relationships": [
        {
          "attributes": {
            "relationship_id": "997554896611881692",
            "relationship_last_updated": "1548937318815",
            "relationship_source": "MDM",
            "from_record_id": "358354896586841797",
            "from_record_source": "MDM",
            "from_record_type": "preference",
            "to_record_id": "998254896587316451",
            "to_record_source": "MDM",
            "to_record_type": "organization"
          },
          "id": "215tzl-5cw8-q7f9-oi7u8",
          "source": {
            "id": "123",
            "type": "record",
            "type_name": "person"
          },
          "target": {
            "id": "40964344",
            "type": "record",
            "type_name": "person"
          },
          "type": "relationship",
          "type_name": "preference_association"
        }
      ]
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/records/123/relationships?crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/records/123/relationships?crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "relationships": [
        {
          "attributes": {
            "relationship_id": "997554896611881692",
            "relationship_last_updated": "1548937318815",
            "relationship_source": "MDM",
            "from_record_id": "358354896586841797",
            "from_record_source": "MDM",
            "from_record_type": "preference",
            "to_record_id": "998254896587316451",
            "to_record_source": "MDM",
            "to_record_type": "organization"
          },
          "id": "215tzl-5cw8-q7f9-oi7u8",
          "source": {
            "id": "123",
            "type": "record",
            "type_name": "person"
          },
          "target": {
            "id": "40964344",
            "type": "record",
            "type_name": "person"
          },
          "type": "relationship",
          "type_name": "preference_association"
        }
      ]
    }

Create a new relationship

Add a new relationship to the graph.

Add a new relationship to the graph.

POST /mdm/v1/relationships
ServiceCall<DataRelationshipResponse> createDataRelationship(CreateDataRelationshipOptions createDataRelationshipOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the CreateDataRelationshipOptions.Builder to create a CreateDataRelationshipOptions object that contains the parameter values for the createDataRelationship method.

Query Parameters

  • The cloud resource name of the service.

Valid object defining the relationship to be added to the graph.

The createDataRelationship options.

  • CreateDataRelationshipOptions createDataRelationshipOptions = new CreateDataRelationshipOptions.Builder()
      .attributes(new java.util.HashMap<String, Object>() { { put("foo", TestUtilities.createMockMap()); } })
      .typeName("testString")
      .build();
    
    Response<DataRelationshipResponse> response = mdmService.createDataRelationship(createDataRelationshipOptions).execute();
    DataRelationshipResponse dataRelationshipResponse = response.getResult();
    
    System.out.println(dataRelationshipResponse);

Response

Information about a relationship.

Information about a relationship.

Status Code

  • The relationship has been successfully created.

  • Problem creating relationship. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem creating relationship. An internal error occurred while attempting to create the relationship.

Example responses
  • {
      "metadata": {
        "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}",
        "id": "7x80m4-oe09s-i711-2u49q8",
        "updated_at": "2021-08-19T18:33:55.679Z"
      },
      "relationship": {
        "attributes": {
          "relationship_id": "123",
          "relationship_last_updated": "1629398035679",
          "relationship_source": "MDM"
        },
        "id": "7x80m4-oe09s-i711-2u49q8",
        "source": {
          "id": "40964320",
          "type": "record",
          "type_name": "person"
        },
        "target": {
          "id": "171520064",
          "type": "record",
          "type_name": "person"
        },
        "type": "relationship",
        "type_name": "party_relationship"
      }
    }
  • {
      "metadata": {
        "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}",
        "id": "7x80m4-oe09s-i711-2u49q8",
        "updated_at": "2021-08-19T18:33:55.679Z"
      },
      "relationship": {
        "attributes": {
          "relationship_id": "123",
          "relationship_last_updated": "1629398035679",
          "relationship_source": "MDM"
        },
        "id": "7x80m4-oe09s-i711-2u49q8",
        "source": {
          "id": "40964320",
          "type": "record",
          "type_name": "person"
        },
        "target": {
          "id": "171520064",
          "type": "record",
          "type_name": "person"
        },
        "type": "relationship",
        "type_name": "party_relationship"
      }
    }

Get a relationship

View information about the specified relationship on the graph.

View information about the specified relationship on the graph.

GET /mdm/v1/relationships/{id}
ServiceCall<DataRelationshipResponse> getDataRelationship(GetDataRelationshipOptions getDataRelationshipOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataRelationshipOptions.Builder to create a GetDataRelationshipOptions object that contains the parameter values for the getDataRelationship method.

Path Parameters

  • The ID of the relationship.

Query Parameters

  • The cloud resource name of the service.

  • Attributes from the data model to include in the results for the source vertex.

    Possible values: contains only unique items

    Examples:
    View
  • Attributes from the data model to include in the results for the target vertex.

    Possible values: contains only unique items

    Examples:
    View

The getDataRelationship options.

  • GetDataRelationshipOptions getDataRelationshipOptions = new GetDataRelationshipOptions.Builder()
      .id("testString")
      .build();
    
    Response<DataRelationshipResponse> response = mdmService.getDataRelationship(getDataRelationshipOptions).execute();
    DataRelationshipResponse dataRelationshipResponse = response.getResult();
    
    System.out.println(dataRelationshipResponse);

Response

Information about a relationship.

Information about a relationship.

Status Code

  • The relationship has been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting relationship. The relationship could not be found.

  • Problem getting relationship. An internal error occurred while attempting to retrieve the relationship.

Example responses
  • {
      "metadata": {
        "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}",
        "id": "7x80m4-oe09s-i711-2u49q8",
        "updated_at": "2021-08-19T18:33:55.679Z"
      },
      "relationship": {
        "attributes": {
          "relationship_id": "123",
          "relationship_last_updated": "1629398035679",
          "relationship_source": "MDM"
        },
        "id": "7x80m4-oe09s-i711-2u49q8",
        "source": {
          "id": "40964320",
          "type": "record",
          "type_name": "person"
        },
        "target": {
          "id": "171520064",
          "type": "record",
          "type_name": "person"
        },
        "type": "relationship",
        "type_name": "party_relationship"
      }
    }
  • {
      "metadata": {
        "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}",
        "id": "7x80m4-oe09s-i711-2u49q8",
        "updated_at": "2021-08-19T18:33:55.679Z"
      },
      "relationship": {
        "attributes": {
          "relationship_id": "123",
          "relationship_last_updated": "1629398035679",
          "relationship_source": "MDM"
        },
        "id": "7x80m4-oe09s-i711-2u49q8",
        "source": {
          "id": "40964320",
          "type": "record",
          "type_name": "person"
        },
        "target": {
          "id": "171520064",
          "type": "record",
          "type_name": "person"
        },
        "type": "relationship",
        "type_name": "party_relationship"
      }
    }

Replace attributes for a relationship

Replace the existing relationship attributes on the graph with the new set of attributes.

Replace the existing relationship attributes on the graph with the new set of attributes.

PUT /mdm/v1/relationships/{id}
ServiceCall<DataRelationshipResponse> replaceDataRelationship(ReplaceDataRelationshipOptions replaceDataRelationshipOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the ReplaceDataRelationshipOptions.Builder to create a ReplaceDataRelationshipOptions object that contains the parameter values for the replaceDataRelationship method.

Path Parameters

  • The ID of the relationship.

Query Parameters

  • The cloud resource name of the service.

Valid object defining the relationship information to replace the existing relationship.

The replaceDataRelationship options.

  • ReplaceDataRelationshipOptions replaceDataRelationshipOptions = new ReplaceDataRelationshipOptions.Builder()
      .id("testString")
      .newAttributes(new java.util.HashMap<String, Object>() { { put("foo", TestUtilities.createMockMap()); } })
      .newTypeName("testString")
      .build();
    
    Response<DataRelationshipResponse> response = mdmService.replaceDataRelationship(replaceDataRelationshipOptions).execute();
    DataRelationshipResponse dataRelationshipResponse = response.getResult();
    
    System.out.println(dataRelationshipResponse);

Response

Information about a relationship.

Information about a relationship.

Status Code

  • The relationship has been successfully updated.

  • Problem updating relationship. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem updating relationship. The relationship could not be found.

  • Problem updating relationship. The resulting composite key conflicts with an existing relationship.

  • Problem updating relationship. An internal error occurred while attempting to update the relationship.

Example responses
  • {
      "metadata": {
        "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}",
        "id": "7x80m4-oe09s-i711-2u49q8",
        "updated_at": "2021-08-19T18:33:55.679Z"
      },
      "relationship": {
        "attributes": {
          "relationship_id": "123",
          "relationship_last_updated": "1629398035679",
          "relationship_source": "MDM"
        },
        "id": "7x80m4-oe09s-i711-2u49q8",
        "source": {
          "id": "40964320",
          "type": "record",
          "type_name": "person"
        },
        "target": {
          "id": "171520064",
          "type": "record",
          "type_name": "person"
        },
        "type": "relationship",
        "type_name": "party_relationship"
      }
    }
  • {
      "metadata": {
        "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}",
        "id": "7x80m4-oe09s-i711-2u49q8",
        "updated_at": "2021-08-19T18:33:55.679Z"
      },
      "relationship": {
        "attributes": {
          "relationship_id": "123",
          "relationship_last_updated": "1629398035679",
          "relationship_source": "MDM"
        },
        "id": "7x80m4-oe09s-i711-2u49q8",
        "source": {
          "id": "40964320",
          "type": "record",
          "type_name": "person"
        },
        "target": {
          "id": "171520064",
          "type": "record",
          "type_name": "person"
        },
        "type": "relationship",
        "type_name": "party_relationship"
      }
    }

Delete a relationship

Delete an existing relationship from the graph.

Delete an existing relationship from the graph.

DELETE /mdm/v1/relationships/{id}
ServiceCall<Void> deleteDataRelationship(DeleteDataRelationshipOptions deleteDataRelationshipOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.write

Request

Use the DeleteDataRelationshipOptions.Builder to create a DeleteDataRelationshipOptions object that contains the parameter values for the deleteDataRelationship method.

Path Parameters

  • The ID of the relationship.

Query Parameters

  • The cloud resource name of the service.

The deleteDataRelationship options.

  • DeleteDataRelationshipOptions deleteDataRelationshipOptions = new DeleteDataRelationshipOptions.Builder()
      .id("testString")
      .build();
    
    Response<Void> response = mdmService.deleteDataRelationship(deleteDataRelationshipOptions).execute();

Response

Status Code

  • The relationship was successfully deleted.

  • Problem deleting relationship. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem deleting relationship. Relationship does not exist.

  • Problem deleting relationship. An internal error occurred while attempting to delete the relationship.

No Sample Response

This method does not specify any sample responses.

Update the graph schema

Update the existing graph schema to support the latest draft version of the data model. A draft version of the data model is required to exist in the Model APIs when running a schema update operation.

Update the existing graph schema to support the latest draft version of the data model. A draft version of the data model is required to exist in the Model APIs when running a schema update operation.

POST /mdm/v1/schema_update
ServiceCall<Void> runDataSchemaUpdate(RunDataSchemaUpdateOptions runDataSchemaUpdateOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.manage

Request

Use the RunDataSchemaUpdateOptions.Builder to create a RunDataSchemaUpdateOptions object that contains the parameter values for the runDataSchemaUpdate method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/schema_update?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • RunDataSchemaUpdateOptions runDataSchemaUpdateOptions = new RunDataSchemaUpdateOptions();
    
    Response<Void> response = mdmService.runDataSchemaUpdate(runDataSchemaUpdateOptions).execute();

Response

Status Code

  • The schema is up to date with the latest data model.

  • Problem updating schema. The user is not authenticated.

  • Problem updating schema. The user is not authorized to perform the request.

  • Problem updating schema.

  • Problem updating schema. An internal error occurred while attempting to perform the operation.

No Sample Response

This method does not specify any sample responses.

Search the data on the graph

Run a full text search, or search on attribute fields. Searching on fields is achievable by using dot-notation for the property keys (e.g. legal_name.given_name). Omit the property key for a full text search. Pagination is supported.

Run a full text search, or search on attribute fields. Searching on fields is achievable by using dot-notation for the property keys (e.g. legal_name.given_name). Omit the property key for a full text search. Pagination is supported.

POST /mdm/v1/search
ServiceCall<DataSearchResults> searchData(SearchDataOptions searchDataOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the SearchDataOptions.Builder to create a SearchDataOptions object that contains the parameter values for the searchData method.

Query Parameters

  • The cloud resource name of the service.

  • The type of results to return from the search.

    Allowable values: [results,results_as_entities]

    Default: results

  • The maximum number of elements to return in each page of results. The maximum limit is 50.

    Possible values: value ≤ 50

    Default: 10

  • The number of elements to skip before returning a page of results.

    Default: 0

  • Record attributes from the data model to include in the results.

    Possible values: contains only unique items

    Examples:
    View
  • Record attributes from the data model to exclude from the results.

    Possible values: contains only unique items

    Examples:
    View

Valid input defining the search criteria.

Examples:
searchRequestExample

The searchData options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/search?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"search_type":"record","query":{"operation":"or","expressions":[{"value":"TX"},{"property":"legal_name.given_name","value":"John"}]},"filters":[{"type":"record","values":["person"]}]}" 
  • Expression expressionModel = new Expression.Builder()
      .property("legal_name.last_name")
      .condition("equal")
      .value("smith")
      .build();
    SearchQuery searchQueryModel = new SearchQuery.Builder()
      .expressions(new java.util.ArrayList<Expression>(java.util.Arrays.asList(expressionModel)))
      .build();
    SearchDataOptions searchDataOptions = new SearchDataOptions.Builder()
      .searchType("record")
      .query(searchQueryModel)
      .include(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .exclude(new java.util.ArrayList<String>(java.util.Arrays.asList("legal_name.given_name")))
      .build();
    
    Response<DataSearchResults> response = mdmService.searchData(searchDataOptions).execute();
    DataSearchResults dataSearchResults = response.getResult();
    
    System.out.println(dataSearchResults);

Response

Results of a search operation.

Results of a search operation.

Status Code

  • The search was performed successfully.

  • Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Request timed out.

  • Problem searching. An internal error occurred while attempting to perform the search.

Example responses
  • {
      "first": {
        "href": "${host}/mdm/v1/search?return_type=results&crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/search?return_type=results&crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "is_exact_count": true,
      "results": [
        {
          "attributes": {
            "birth_date": {
              "attribute_last_updated": "1548936432644",
              "value": "1981-11-27T00:00:00.000Z"
            },
            "gender": {
              "attribute_last_updated": "1548936432644",
              "value": "M"
            },
            "legal_name": {
              "attribute_last_updated": "1548936432644",
              "last_name": "MYERS",
              "given_name": "JOHN"
            },
            "primary_residence": {
              "attribute_last_updated": "1548936432653",
              "address_province_state_value": "CA",
              "address_city": "COLOMA",
              "address_zip_postal_code": "95613",
              "address_province_state_type": "6",
              "address_line_1": "5955 EAST ST ANNE STREET",
              "address_line_2": "Unit-89"
            },
            "record_id": "103954896523264298",
            "record_last_updated": "1603479339402",
            "record_source": "MDM"
          },
          "id": "180336",
          "type": "record",
          "record_number": 180336,
          "type_name": "person"
        }
      ],
      "total_count": 1
    }
  • {
      "first": {
        "href": "${host}/mdm/v1/search?return_type=results&crn=${crn}&offset=0&limit=10"
      },
      "last": {
        "href": "${host}/mdm/v1/search?return_type=results&crn=${crn}&offset=0&limit=10"
      },
      "limit": 10,
      "offset": 0,
      "is_exact_count": true,
      "results": [
        {
          "attributes": {
            "birth_date": {
              "attribute_last_updated": "1548936432644",
              "value": "1981-11-27T00:00:00.000Z"
            },
            "gender": {
              "attribute_last_updated": "1548936432644",
              "value": "M"
            },
            "legal_name": {
              "attribute_last_updated": "1548936432644",
              "last_name": "MYERS",
              "given_name": "JOHN"
            },
            "primary_residence": {
              "attribute_last_updated": "1548936432653",
              "address_province_state_value": "CA",
              "address_city": "COLOMA",
              "address_zip_postal_code": "95613",
              "address_province_state_type": "6",
              "address_line_1": "5955 EAST ST ANNE STREET",
              "address_line_2": "Unit-89"
            },
            "record_id": "103954896523264298",
            "record_last_updated": "1603479339402",
            "record_source": "MDM"
          },
          "id": "180336",
          "type": "record",
          "record_number": 180336,
          "type_name": "person"
        }
      ],
      "total_count": 1
    }

Get graph statistics

View statistics derived from the data on the graph, including total count, counts by source, and counts by type.

View statistics derived from the data on the graph, including total count, counts by source, and counts by type.

GET /mdm/v1/statistics
ServiceCall<DataStatistics> getDataGraphStatistics(GetDataGraphStatisticsOptions getDataGraphStatisticsOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataGraphStatisticsOptions.Builder to create a GetDataGraphStatisticsOptions object that contains the parameter values for the getDataGraphStatistics method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/statistics?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetDataGraphStatisticsOptions getDataGraphStatisticsOptions = new GetDataGraphStatisticsOptions();
    
    Response<DataStatistics> response = mdmService.getDataGraphStatistics(getDataGraphStatisticsOptions).execute();
    DataStatistics dataStatistics = response.getResult();
    
    System.out.println(dataStatistics);

Response

A collection of statistics for the graph.

A collection of statistics for the graph.

Status Code

  • The graph statistics have been successfully retrieved.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem getting graph statistics. An internal error occurred while attempting to retrieve the graph statistics.

Example responses
  • {
      "aggregate_counts": {
        "record_types": [
          {
            "key": "macro_role",
            "size": 273
          },
          {
            "key": "person",
            "size": 406
          },
          {
            "key": "organization",
            "size": 516
          },
          {
            "key": "contract",
            "size": 315
          },
          {
            "key": "preference",
            "size": 161
          },
          {
            "key": "interaction",
            "size": 279
          },
          {
            "key": "contract_component",
            "size": 203
          },
          {
            "key": "process_purpose",
            "size": 9
          }
        ],
        "sources": [
          {
            "key": "MDM",
            "size": 2062
          },
          {
            "key": "Other",
            "size": 100
          }
        ]
      },
      "record_count": 2162,
      "total_count": 2162
    }
  • {
      "aggregate_counts": {
        "record_types": [
          {
            "key": "macro_role",
            "size": 273
          },
          {
            "key": "person",
            "size": 406
          },
          {
            "key": "organization",
            "size": 516
          },
          {
            "key": "contract",
            "size": 315
          },
          {
            "key": "preference",
            "size": 161
          },
          {
            "key": "interaction",
            "size": 279
          },
          {
            "key": "contract_component",
            "size": 203
          },
          {
            "key": "process_purpose",
            "size": 9
          }
        ],
        "sources": [
          {
            "key": "MDM",
            "size": 2062
          },
          {
            "key": "Other",
            "size": 100
          }
        ]
      },
      "record_count": 2162,
      "total_count": 2162
    }

Get the surrounding vertices and edges for a set of vertices

Fetch a subgraph view of a subset of data on the graph as specified in the request.

The operation runs with the following features:

  • Includes initial vertices in the result.
  • Returns a summary of graph elements. Does not include detailed information such as model attribute keys and values.
  • Ignores a vertex identifier if the vertex cannot be found. Returns an empty subgraph if no vertices are found.
  • Returns an edge in the resulting subgraph if its source vertex, target vertex and the edge itself can be reached within the specified number of hops from at least one initial vertex.
  • Includes edges between record and entity vertices.
  • No more than 3 hops and 50 input vertices are permitted. The number of edges per vertex is capped at 50. Note that the number of edges per vertex may be less than this limit due to shared edges.

Fetch a subgraph view of a subset of data on the graph as specified in the request.

The operation runs with the following features:

  • Includes initial vertices in the result.
  • Returns a summary of graph elements. Does not include detailed information such as model attribute keys and values.
  • Ignores a vertex identifier if the vertex cannot be found. Returns an empty subgraph if no vertices are found.
  • Returns an edge in the resulting subgraph if its source vertex, target vertex and the edge itself can be reached within the specified number of hops from at least one initial vertex.
  • Includes edges between record and entity vertices.
  • No more than 3 hops and 50 input vertices are permitted. The number of edges per vertex is capped at 50. Note that the number of edges per vertex may be less than this limit due to shared edges.
POST /mdm/v1/subgraph
ServiceCall<Subgraph> getDataSubgraph(GetDataSubgraphOptions getDataSubgraphOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.read

Request

Use the GetDataSubgraphOptions.Builder to create a GetDataSubgraphOptions object that contains the parameter values for the getDataSubgraph method.

Query Parameters

  • The cloud resource name of the service.

Valid object defining scope parameters for the subgraph.

The getDataSubgraph options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/subgraph?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{ "distance": 1, "vertex_ids": [ "151592" ] }" 
  • GetDataSubgraphOptions getDataSubgraphOptions = new GetDataSubgraphOptions.Builder()
      .vertexIds(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .build();
    
    Response<Subgraph> response = mdmService.getDataSubgraph(getDataSubgraphOptions).execute();
    Subgraph subgraph = response.getResult();
    
    System.out.println(subgraph);

Response

A graph view representing a scoped subset of the graph.

A graph view representing a scoped subset of the graph.

Status Code

  • The subgraph has been successfully retrieved.

  • Problem retrieving subgraph. Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem retrieving subgraph. An internal error occurred while attempting to retrieve the subgraph.

Example responses
  • {
      "edges": [
        {
          "display_name": "consent_process_purpose_link",
          "id": "2pjo60-18e8-r28l-38yw",
          "source_id": "57536",
          "target_id": "151592",
          "type": "relationship",
          "type_name": "consent_process_purpose_link"
        },
        {
          "display_name": "consent_process_purpose_link",
          "id": "odzpo-2734-r28l-38yw",
          "source_id": "102496",
          "target_id": "151592",
          "type": "relationship",
          "type_name": "consent_process_purpose_link"
        }
      ],
      "vertices": [
        {
          "attributes": {},
          "display_name": "person-57536",
          "id": "57536",
          "is_global": true,
          "type": "record",
          "type_name": "person"
        },
        {
          "attributes": {},
          "display_name": "person-102496",
          "id": "102496",
          "is_global": true,
          "type": "record",
          "type_name": "person"
        },
        {
          "attributes": {},
          "display_name": "process_purpose-151592",
          "id": "151592",
          "is_global": true,
          "type": "record",
          "type_name": "process_purpose"
        }
      ]
    }
  • {
      "edges": [
        {
          "display_name": "consent_process_purpose_link",
          "id": "2pjo60-18e8-r28l-38yw",
          "source_id": "57536",
          "target_id": "151592",
          "type": "relationship",
          "type_name": "consent_process_purpose_link"
        },
        {
          "display_name": "consent_process_purpose_link",
          "id": "odzpo-2734-r28l-38yw",
          "source_id": "102496",
          "target_id": "151592",
          "type": "relationship",
          "type_name": "consent_process_purpose_link"
        }
      ],
      "vertices": [
        {
          "attributes": {},
          "display_name": "person-57536",
          "id": "57536",
          "is_global": true,
          "type": "record",
          "type_name": "person"
        },
        {
          "attributes": {},
          "display_name": "person-102496",
          "id": "102496",
          "is_global": true,
          "type": "record",
          "type_name": "person"
        },
        {
          "attributes": {},
          "display_name": "process_purpose-151592",
          "id": "151592",
          "is_global": true,
          "type": "record",
          "type_name": "process_purpose"
        }
      ]
    }

Perform a bulk update of data on the graph

Run an update of records and relationships in the graph by creating, modifying and deleting data in a single transaction. This operation is intended for incremental updates of data. Please use the bulk load feature when loading large volumes of data.

The operation runs as follows:

  • Performs all relationship deletions first, then record deletions.
  • After the deletions are completed, all record upserts (i.e. insertions and updates) are performed next, followed by relationship upserts.
  • Any element found in both deletions and upserts is treated as a deletion, and is removed from the upserts list before processing.
  • Any other case of a duplicated element will cause the update to fail.
  • If the 'ignore_redundant_updates' parameter is set to 'true', any update with a timestamp that is not newer than the existing timestamp for that element will not be applied, but it will not cause the entire transaction to fail. If the flag is set to 'false', invalid timestamps will cause a transaction failure.
  • A failed update will cause all changes performed by the transaction to be reverted back to the original graph state.

Run an update of records and relationships in the graph by creating, modifying and deleting data in a single transaction. This operation is intended for incremental updates of data. Please use the bulk load feature when loading large volumes of data.

The operation runs as follows:

  • Performs all relationship deletions first, then record deletions.
  • After the deletions are completed, all record upserts (i.e. insertions and updates) are performed next, followed by relationship upserts.
  • Any element found in both deletions and upserts is treated as a deletion, and is removed from the upserts list before processing.
  • Any other case of a duplicated element will cause the update to fail.
  • If the 'ignore_redundant_updates' parameter is set to 'true', any update with a timestamp that is not newer than the existing timestamp for that element will not be applied, but it will not cause the entire transaction to fail. If the flag is set to 'false', invalid timestamps will cause a transaction failure.
  • A failed update will cause all changes performed by the transaction to be reverted back to the original graph state.
POST /mdm/v1/ongoing_sync
ServiceCall<Void> runDataOngoingSync(RunDataOngoingSyncOptions runDataOngoingSyncOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.data.manage

Request

Use the RunDataOngoingSyncOptions.Builder to create a RunDataOngoingSyncOptions object that contains the parameter values for the runDataOngoingSync method.

Query Parameters

  • The cloud resource name of the service.

  • Whether to ignore updates that fail due to missing or invalid 'record_last_updated' timestamps.

    Default: false

Valid object defining the elements to be inserted, updated or deleted on the graph.

The runDataOngoingSync options.

  • RunDataOngoingSyncOptions runDataOngoingSyncOptions = new RunDataOngoingSyncOptions.Builder()
      .build();
    
    Response<Void> response = mdmService.runDataOngoingSync(runDataOngoingSyncOptions).execute();

Response

Status Code

  • The updates have been successfully processed.

  • Input validation failed.

  • Problem processing request. The user is not authenticated.

  • Problem processing request. The user is not authorized to perform the request.

  • Problem performing bulk update. An internal error occurred while attempting to update the graph.

No Sample Response

This method does not specify any sample responses.

Initiate data derivation job

  • This service initiates asynchronous processing of the derive job.
  • Data derivation is the process to standardize and generate buckets for the input records.
  • This service initiates asynchronous processing of the derive job.
  • Data derivation is the process to standardize and generate buckets for the input records.
POST /mdm/v1/bulk_derive
ServiceCall<PostCloudJob> createMatchingDeriveJob(CreateMatchingDeriveJobOptions createMatchingDeriveJobOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.manage

Request

Use the CreateMatchingDeriveJobOptions.Builder to create a CreateMatchingDeriveJobOptions object that contains the parameter values for the createMatchingDeriveJob method.

Query Parameters

  • The cloud resource name of the service.

  • The data type identifier of source records, ie. person, organization, contract

    Example: person

  • Force to re-derive all records, default is false

    Default: false

  • The delimited text file name, ending with .csv/.tsv for comma/tab separated format.

    Example: /usr/mdm-matching/sample/person-100.tsv

  • comma separated column names in the data file

    Example: record_source,,record_id,legal_name.given_name,legal_name.last_name,primary_residence.address_line1,primary_residence.city,primary_residence.province_state,primary_residence.zip_postal_code,,home_telephone.phone_number,business_address.address_line1,business_address.city,business_address.province_state,business_address.zip_postal_code,,home_telephone.phone_number.1,social_security_number.identification_number,health_card.identification_number,birth_date.value,gender.value

  • IBM COS end point (i.e. https://s3.us-east.cloud-object-storage.appdomain.cloud)

    Example: http://s3.us-south.cloud-object-storage.appdomain.cloud

  • IBM COS bucket (i.e. bucket-27200-lwx4cfvcue)

    Example: mdmdata

  • IBM COS access key (i.e. cf4965cebe074720a4929759f57e1214)

    Example: b33037e4e8954207a434cc032c1139d1 #pragma: allowlist secret

  • The unique secret code to access IBM COS

    Example: <hex string>

  • The number of spark executors

    Example: 1

  • Amount of memory to use per executor process

    Example: 8g

  • The number of cores to use on each executor

    Example: 1

  • The number of partitions to be used by spark

    Example: 2

  • IBM COS end point for job log storage.

    Example: http://s3.us-south.cloud-object-storage.appdomain.cloud

  • IBM COS bucket for job log storage.

    Example: mdmdata

  • IBM COS access key for spark log storage

    Example: b33037e4e8954207a434cc032c1139d1

  • IBM COS secret key for spark log storage

    Example: <hex string>

The createMatchingDeriveJob options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/bulk_derive?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&record_type=person&csv_file=person-100.tsv&csv_column=record_source,,record_id,legal_name.given_name,legal_name.last_name,primary_residence.address_line1,primary_residence.city,primary_residence.province_state,primary_residence.zip_postal_code,,home_telephone.phone_number,business_address.address_line1,business_address.city,business_address.province_state,business_address.zip_postal_code,,home_telephone.phone_number.1,social_security_number.identification_number,health_card.identification_number,birth_date.value,gender.value&cos_endpoint=http://s3.us-south.cloud-object-storage.appdomain.cloud&cos_bucket=mdmdata&cos_access_key=1234567&cos_secret_key=7654321&executor_count=1&executor_memory=8g&executor_core_count=1&log_cos_endpoint=http://s3.us-south.cloud-object-storage.appdomain.cloud&log_cos_bucket=mdmdata&log_cos_access_key=b33037e4e8954207a434cc032c1139d1&log_cos_secret_key=hex_string" 
  • CreateMatchingDeriveJobOptions createMatchingDeriveJobOptions = new CreateMatchingDeriveJobOptions.Builder()
      .recordType("person")
      .csvFile("/usr/mdm-matching/sample/person-100.tsv")
      .csvColumn("record_source,,record_id,legal_name.given_name,legal_name.last_name,primary_residence.address_line1,primary_residence.city,primary_residence.province_state,primary_residence.zip_postal_code,,home_telephone.phone_number,business_address.address_line1,business_address.city,business_address.province_state,business_address.zip_postal_code,,home_telephone.phone_number.1,social_security_number.identification_number,health_card.identification_number,birth_date.value,gender.value")
      .cosEndpoint("http://s3.us-south.cloud-object-storage.appdomain.cloud")
      .cosBucket("mdmdata")
      .cosAccessKey("b33037e4e8954207a434cc032c1139d1 #pragma: allowlist secret")
      .cosSecretKey("<hex string>")
      .executorCount(Long.valueOf("1"))
      .executorMemory("8g")
      .executorCoreCount(Long.valueOf("1"))
      .sparkParallelism(Long.valueOf("2"))
      .logCosEndpoint("http://s3.us-south.cloud-object-storage.appdomain.cloud")
      .logCosBucket("mdmdata")
      .logCosAccessKey("b33037e4e8954207a434cc032c1139d1")
      .logCosSecretKey("<hex string>")
      .build();
    
    Response<PostCloudJob> response = mdmService.createMatchingDeriveJob(createMatchingDeriveJobOptions).execute();
    PostCloudJob postCloudJob = response.getResult();
    
    System.out.println(postCloudJob);

Response

Response object for asynchronous processing of a job

Response object for asynchronous processing of a job.

Status Code

  • The request has been successfully created.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "created_at": "",
      "image": "mdm-spark-job",
      "job_name": "match-bulkderiver",
      "last_updated_at": "",
      "id": "2ba3ed28-00c7-42e4-9cc9-8c74bf5e4ff0",
      "input": {},
      "spark_configuration": {},
      "status": "Running"
    }
  • {
      "created_at": "",
      "image": "mdm-spark-job",
      "job_name": "match-bulkderiver",
      "last_updated_at": "",
      "id": "2ba3ed28-00c7-42e4-9cc9-8c74bf5e4ff0",
      "input": {},
      "spark_configuration": {},
      "status": "Running"
    }

Initiate report job

  • This service initiates asynchronous processing of a report job.
  • Report job creates a report of the existing derived data that includes information like matching summary, largest entities, etc..
  • This service initiates asynchronous processing of a report job.
  • Report job creates a report of the existing derived data that includes information like matching summary, largest entities, etc..
POST /mdm/v1/bulk_report
ServiceCall<PostCloudJob> createMatchingReportJob(CreateMatchingReportJobOptions createMatchingReportJobOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.manage

Request

Use the CreateMatchingReportJobOptions.Builder to create a CreateMatchingReportJobOptions object that contains the parameter values for the createMatchingReportJob method.

Query Parameters

  • The cloud resource name of the service.

  • The data type identifier of source records, ie. person, organization, contract

    Example: person

  • The data type identifier of entity, ie. person_entity, organization_entity, household_entity

    Example: person_entity

  • The number of spark executors

    Example: 1

  • Amount of memory to use per executor process

    Example: 8g

  • The number of cores to use on each executor

    Example: 1

  • The number of partitions to be used by spark

    Example: 2

  • Comma separated analytics report identifier to be collected, ie. entity_summary, bucket_summary

    Default: entity_summary,bucket_summary

    Example: entity_summary,bucket_summary

  • collect analysis report, default is false

    Default: false

The createMatchingReportJob options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/bulk_report?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&record_type=person&entity_type=person_entity&executor_count=1&executor_memory=8g&executor_core_count=1&job_list=entity_summary,bucket_summary&do_analytics=false" 
  • CreateMatchingReportJobOptions createMatchingReportJobOptions = new CreateMatchingReportJobOptions.Builder()
      .recordType("person")
      .entityType("person_entity")
      .executorCount(Long.valueOf("1"))
      .executorMemory("8g")
      .executorCoreCount(Long.valueOf("1"))
      .sparkParallelism(Long.valueOf("2"))
      .jobList("entity_summary,bucket_summary")
      .build();
    
    Response<PostCloudJob> response = mdmService.createMatchingReportJob(createMatchingReportJobOptions).execute();
    PostCloudJob postCloudJob = response.getResult();
    
    System.out.println(postCloudJob);

Response

Response object for asynchronous processing of a job

Response object for asynchronous processing of a job.

Status Code

  • The request has been successfully created.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "created_at": "",
      "image": "mdm-spark-job",
      "job_name": "match-bulkreporter",
      "last_updated_at": "",
      "id": "854ed8ca-dddf-4862-b069-58cb15eba138",
      "input": {},
      "spark_configuration": {},
      "status": "Queued"
    }
  • {
      "created_at": "",
      "image": "mdm-spark-job",
      "job_name": "match-bulkreporter",
      "last_updated_at": "",
      "id": "854ed8ca-dddf-4862-b069-58cb15eba138",
      "input": {},
      "spark_configuration": {},
      "status": "Queued"
    }

Initiate match job

  • This service initiates asynchronous processing of the match job.
  • Matching is the process to compare two or more records and create linkages between the matched records.
  • This service initiates asynchronous processing of the match job.
  • Matching is the process to compare two or more records and create linkages between the matched records.
POST /mdm/v1/bulk_match
ServiceCall<PostCloudJob> createMatchingMatchJob(CreateMatchingMatchJobOptions createMatchingMatchJobOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.manage

Request

Use the CreateMatchingMatchJobOptions.Builder to create a CreateMatchingMatchJobOptions object that contains the parameter values for the createMatchingMatchJob method.

Query Parameters

  • The cloud resource name of the service.

  • The data type identifier of source records, ie. person, organization, contract

    Example: person

  • The data type identifier of entity, ie. person_entity, organization_entity, household_entity

    Example: person_entity

  • Force to re-match all records, default is false

    Default: false

  • Deduplicate pairs, default is false

    Default: false

  • collect analysis report, default is false

    Default: false

  • Replicate entity id, default is false

    Default: false

  • The number of spark executors

    Example: 1

  • Amount of memory to use per executor process

    Example: 8g

  • The number of cores to use on each executor

    Example: 1

  • The number of partitions to be used by spark

    Example: 2

  • IBM COS end point for job log storage.

    Example: http://s3.us-south.cloud-object-storage.appdomain.cloud

  • IBM COS bucket for job log storage.

    Example: mdmdata

  • IBM COS access key for spark log storage

    Example: b33037e4e8954207a434cc032c1139d1

  • IBM COS secret key for spark log storage

    Example: <hex string>

The createMatchingMatchJob options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/bulk_match?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&record_type=person&entity_type=person_entity&executor_count=1&executor_memory=8g&executor_core_count=1&log_cos_endpoint=http://s3.us-south.cloud-object-storage.appdomain.cloud&log_cos_bucket=mdmdata&log_cos_access_key=b33037e4e8954207a434cc032c1139d1&log_cos_secret_key=hex_string&do_force=false&do_deduplicate=false&do_analytics=false&do_replicate=false" 
  • CreateMatchingMatchJobOptions createMatchingMatchJobOptions = new CreateMatchingMatchJobOptions.Builder()
      .recordType("person")
      .entityType("person_entity")
      .executorCount(Long.valueOf("1"))
      .executorMemory("8g")
      .executorCoreCount(Long.valueOf("1"))
      .sparkParallelism(Long.valueOf("2"))
      .logCosEndpoint("http://s3.us-south.cloud-object-storage.appdomain.cloud")
      .logCosBucket("mdmdata")
      .logCosAccessKey("b33037e4e8954207a434cc032c1139d1")
      .logCosSecretKey("<hex string>")
      .build();
    
    Response<PostCloudJob> response = mdmService.createMatchingMatchJob(createMatchingMatchJobOptions).execute();
    PostCloudJob postCloudJob = response.getResult();
    
    System.out.println(postCloudJob);

Response

Response object for asynchronous processing of a job

Response object for asynchronous processing of a job.

Status Code

  • The request has been successfully created.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "created_at": "",
      "image": "mdm-spark-job",
      "job_name": "match-bulkmatcher",
      "last_updated_at": "",
      "id": "b10502a6-b336-4452-b15d-bbda67b95299",
      "input": {},
      "spark_configuration": {},
      "status": "Queued"
    }
  • {
      "created_at": "",
      "image": "mdm-spark-job",
      "job_name": "match-bulkmatcher",
      "last_updated_at": "",
      "id": "b10502a6-b336-4452-b15d-bbda67b95299",
      "input": {},
      "spark_configuration": {},
      "status": "Queued"
    }

Retrieve information for a job

  • This service retrieves the information about a job which is identified with the supplied job id.
  • This service retrieves the information about a job which is identified with the supplied job id.
GET /mdm/v1/matching_jobs/{job_id}
ServiceCall<GetMatchingJobs> getMatchingJobInfo(GetMatchingJobInfoOptions getMatchingJobInfoOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.read

Request

Use the GetMatchingJobInfoOptions.Builder to create a GetMatchingJobInfoOptions object that contains the parameter values for the getMatchingJobInfo method.

Path Parameters

  • The unique identifier of the job.

    Example: 95364

Query Parameters

  • The cloud resource name of the service.

The getMatchingJobInfo options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/matching_jobs/95364?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetMatchingJobInfoOptions getMatchingJobInfoOptions = new GetMatchingJobInfoOptions.Builder()
      .jobId("95364")
      .build();
    
    Response<GetMatchingJobs> response = mdmService.getMatchingJobInfo(getMatchingJobInfoOptions).execute();
    GetMatchingJobs getMatchingJobs = response.getResult();
    
    System.out.println(getMatchingJobs);

Response

Response object for get matching job

Response object for get matching job.

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "image": "mdm-spark-job",
      "job_name": "match-bulkderiver",
      "created_at": "2021-07-08T06:55:53.000Z",
      "id": "2a01507e-92a8-41c4-8568-2b3dec10889b",
      "last_updated_at": "2021-07-08T07:01:41.000Z",
      "started_at": "2021-07-08T06:55:53.000Z",
      "status": "Success"
    }
  • {
      "image": "mdm-spark-job",
      "job_name": "match-bulkderiver",
      "created_at": "2021-07-08T06:55:53.000Z",
      "id": "2a01507e-92a8-41c4-8568-2b3dec10889b",
      "last_updated_at": "2021-07-08T07:01:41.000Z",
      "started_at": "2021-07-08T06:55:53.000Z",
      "status": "Success"
    }

Retrieve record ids

  • This service retrieves all record_ids that are assigned with the same entity_id.
  • This service retrieves all record_ids that are assigned with the same entity_id.
GET /mdm/v1/entity_ids/{entity_id}
ServiceCall<GetRecordKeys> getMatchingRecords(GetMatchingRecordsOptions getMatchingRecordsOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.read

Request

Use the GetMatchingRecordsOptions.Builder to create a GetMatchingRecordsOptions object that contains the parameter values for the getMatchingRecords method.

Path Parameters

  • The entity identifier of an entity as assigned by the system

    Example: entity_type-123456789

Query Parameters

  • The cloud resource name of the service.

The getMatchingRecords options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/entity_ids/entity_type-123456789?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetMatchingRecordsOptions getMatchingRecordsOptions = new GetMatchingRecordsOptions.Builder()
      .entityId("entity_type-123456789")
      .build();
    
    Response<GetRecordKeys> response = mdmService.getMatchingRecords(getMatchingRecordsOptions).execute();
    GetRecordKeys getRecordKeys = response.getResult();
    
    System.out.println(getRecordKeys);

Response

Response wrapper object for getting the record keys of a given entity_id

Response wrapper object for getting the record keys of a given entity_id.

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "records": []
    }
  • {
      "records": []
    }

Preview entity composition

  • This service provides a preview of the impacted entities by hypothesizing one or more manual link/unlink rules.
  • This service provides a preview of the impacted entities by hypothesizing one or more manual link/unlink rules.
POST /mdm/v1/linkage_rules_preview
ServiceCall<Map<String, Map<String, List<String>>>> createMatchingEntityPreview(CreateMatchingEntityPreviewOptions createMatchingEntityPreviewOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.read

Request

Use the CreateMatchingEntityPreviewOptions.Builder to create a CreateMatchingEntityPreviewOptions object that contains the parameter values for the createMatchingEntityPreview method.

Query Parameters

  • The cloud resource name of the service.

The wrapper object of linkage rules

The createMatchingEntityPreview options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/linkage_rules_preview?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"entity_type":"person_entity","{"rules":[{"record_numbers":["32995408531474430"],"rule_type":"unlink","description":"test"}]}}" 
  • RulesRequestRule rulesRequestRuleModel = new RulesRequestRule.Builder()
      .ruleType("testString")
      .recordNumbers(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .description("testString")
      .build();
    CreateMatchingEntityPreviewOptions createMatchingEntityPreviewOptions = new CreateMatchingEntityPreviewOptions.Builder()
      .rules(new java.util.ArrayList<RulesRequestRule>(java.util.Arrays.asList(rulesRequestRuleModel)))
      .entityType("testString")
      .build();
    
    Response<Map<String, Map<String, List<String>>>> response = mdmService.createMatchingEntityPreview(createMatchingEntityPreviewOptions).execute();
    Map<String, Map<String, List<String>>> mapStringMapStringListString = response.getResult();
    
    System.out.println(mapStringMapStringListString);

Response

Response type: Map<String, Map<String, List<String>>>

Response wrapper object for previewing the impacted entities by hypothesizing one or more linkage rules

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "person_entity": {
        "35678330629897216": [],
        "35678327655087104": [
          "35678330629897216",
          "35678327655087104"
        ]
      }
    }
  • {
      "person_entity": {
        "35678330629897216": [],
        "35678327655087104": [
          "35678330629897216",
          "35678327655087104"
        ]
      }
    }

Add or update manual link/unlink

  • This service adds or updates a collection of manual link/unlink rules.
  • This service adds or updates a collection of manual link/unlink rules.
PUT /mdm/v1/linkage_rules
ServiceCall<Map<String, List<RulesEntityRule>>> replaceMatchingRule(ReplaceMatchingRuleOptions replaceMatchingRuleOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.write

Request

Use the ReplaceMatchingRuleOptions.Builder to create a ReplaceMatchingRuleOptions object that contains the parameter values for the replaceMatchingRule method.

Query Parameters

  • The cloud resource name of the service.

The wrapper object of linkage rules

The replaceMatchingRule options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/linkage_rules?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"entity_type":"person_entity","{"rules":[{"record_numbers":["32995408531474430"],"rule_type":"unlink","description":"test"}]}}" 
  • RulesRequestRule rulesRequestRuleModel = new RulesRequestRule.Builder()
      .ruleType("testString")
      .recordNumbers(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .description("testString")
      .build();
    ReplaceMatchingRuleOptions replaceMatchingRuleOptions = new ReplaceMatchingRuleOptions.Builder()
      .rules(new java.util.ArrayList<RulesRequestRule>(java.util.Arrays.asList(rulesRequestRuleModel)))
      .entityType("testString")
      .build();
    
    Response<Map<String, List<RulesEntityRule>>> response = mdmService.replaceMatchingRule(replaceMatchingRuleOptions).execute();
    Map<String, List<RulesEntityRule>> mapStringListRulesEntityRule = response.getResult();
    
    System.out.println(mapStringListRulesEntityRule);

Response

Response type: Map<String, List<RulesEntityRule>>

Response wrapper object for linkage rules

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "person_entity": [
        {
          "src_recno": "35677335438998528",
          "target_recno": "35677332186315776",
          "rule_type": "LINK",
          "description": "string",
          "user": "user1",
          "last_updated": "1605178647780"
        }
      ]
    }
  • {
      "person_entity": [
        {
          "src_recno": "35677335438998528",
          "target_recno": "35677332186315776",
          "rule_type": "LINK",
          "description": "string",
          "user": "user1",
          "last_updated": "1605178647780"
        }
      ]
    }

Remove manual link/unlink

  • This service removes one or more manual link/unlink rules supplied by user.
  • This service removes one or more manual link/unlink rules supplied by user.
POST /mdm/v1/delete_linkage_rules
ServiceCall<Map<String, List<RulesEntityRule>>> deleteMatchingRule(DeleteMatchingRuleOptions deleteMatchingRuleOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.write

Request

Use the DeleteMatchingRuleOptions.Builder to create a DeleteMatchingRuleOptions object that contains the parameter values for the deleteMatchingRule method.

Query Parameters

  • The cloud resource name of the service.

The wrapper object of linkage rules

The deleteMatchingRule options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/delete_linkage_rules?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"entity_type":"person_entity","{"rules":[{"record_numbers":["32995408531474430"],"rule_type":"unlink","description":"test"}]}}" 
  • RulesRequestRule rulesRequestRuleModel = new RulesRequestRule.Builder()
      .ruleType("testString")
      .recordNumbers(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .description("testString")
      .build();
    DeleteMatchingRuleOptions deleteMatchingRuleOptions = new DeleteMatchingRuleOptions.Builder()
      .rules(new java.util.ArrayList<RulesRequestRule>(java.util.Arrays.asList(rulesRequestRuleModel)))
      .entityType("testString")
      .build();
    
    Response<Map<String, List<RulesEntityRule>>> response = mdmService.deleteMatchingRule(deleteMatchingRuleOptions).execute();
    Map<String, List<RulesEntityRule>> mapStringListRulesEntityRule = response.getResult();
    
    System.out.println(mapStringListRulesEntityRule);

Response

Response type: Map<String, List<RulesEntityRule>>

Response wrapper object for linkage rules

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "person_entity": [
        {
          "src_recno": "35677335438998528",
          "target_recno": "35677332186315776",
          "rule_type": "LINK",
          "description": "string",
          "user": "user1",
          "last_updated": "1605178647780"
        }
      ]
    }
  • {
      "person_entity": [
        {
          "src_recno": "35677335438998528",
          "target_recno": "35677332186315776",
          "rule_type": "LINK",
          "description": "string",
          "user": "user1",
          "last_updated": "1605178647780"
        }
      ]
    }

Retrieve an entity's manual links/unlinks

  • This service retrieves all manual link/unlink rules for specified entity.
  • This service retrieves all manual link/unlink rules for specified entity.
GET /mdm/v1/entities/{entity_id}/linkage_rules
ServiceCall<Map<String, List<RulesEntityRule>>> listMatchingRules(ListMatchingRulesOptions listMatchingRulesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.read

Request

Use the ListMatchingRulesOptions.Builder to create a ListMatchingRulesOptions object that contains the parameter values for the listMatchingRules method.

Path Parameters

  • The entity identifier of an entity as assigned by the system

    Example: person_entity-1234

Query Parameters

  • The cloud resource name of the service.

The listMatchingRules options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/entities/{entity_id}/linkage_rules?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&entity_id=person_entity-1234" 
  • ListMatchingRulesOptions listMatchingRulesOptions = new ListMatchingRulesOptions.Builder()
      .entityId("person_entity-1234")
      .build();
    
    Response<Map<String, List<RulesEntityRule>>> response = mdmService.listMatchingRules(listMatchingRulesOptions).execute();
    Map<String, List<RulesEntityRule>> mapStringListRulesEntityRule = response.getResult();
    
    System.out.println(mapStringListRulesEntityRule);

Response

Response type: Map<String, List<RulesEntityRule>>

Response wrapper object for linkage rules

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "person_entity": [
        {
          "last_updated": "1611866992413",
          "rule_type": "UNLINK",
          "src_recno": "42690607485214720",
          "description": "string",
          "target_recno": "42690601550274560",
          "user": "admin"
        }
      ]
    }
  • {
      "person_entity": [
        {
          "last_updated": "1611866992413",
          "rule_type": "UNLINK",
          "src_recno": "42690607485214720",
          "description": "string",
          "target_recno": "42690601550274560",
          "user": "admin"
        }
      ]
    }

Retrieve a record's manual links/unlinks

  • This service retrieves all manual link/unlink rules for given record and entity type.
  • This service retrieves all manual link/unlink rules for given record and entity type.
GET /mdm/v1/records/{record_number}/linkage_rules
ServiceCall<Map<String, List<RulesEntityRule>>> getMatchingRecordRules(GetMatchingRecordRulesOptions getMatchingRecordRulesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.read

Request

Use the GetMatchingRecordRulesOptions.Builder to create a GetMatchingRecordRulesOptions object that contains the parameter values for the getMatchingRecordRules method.

Path Parameters

  • The unique identifier of a source record as assigned by the system

    Example: 123456789

Query Parameters

  • The cloud resource name of the service.

  • The data type identifier of entity, ie. person_entity, organization_entity, household_entity

    Example: entity-type

The getMatchingRecordRules options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/records/{record_number}/linkage_rules?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&record_number=123456789&entity_type=person_entity" 
  • GetMatchingRecordRulesOptions getMatchingRecordRulesOptions = new GetMatchingRecordRulesOptions.Builder()
      .recordNumber(Long.valueOf("123456789"))
      .entityType("entity-type")
      .build();
    
    Response<Map<String, List<RulesEntityRule>>> response = mdmService.getMatchingRecordRules(getMatchingRecordRulesOptions).execute();
    Map<String, List<RulesEntityRule>> mapStringListRulesEntityRule = response.getResult();
    
    System.out.println(mapStringListRulesEntityRule);

Response

Response type: Map<String, List<RulesEntityRule>>

Response wrapper object for linkage rules

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "person_entity": [
        {
          "src_recno": "35677335438998529",
          "target_recno": "35677332186315776",
          "rule_type": "LINK",
          "description": "string",
          "user": "user2",
          "last_updated": "1605178647781"
        }
      ]
    }
  • {
      "person_entity": [
        {
          "src_recno": "35677335438998529",
          "target_recno": "35677332186315776",
          "rule_type": "LINK",
          "description": "string",
          "user": "user2",
          "last_updated": "1605178647781"
        }
      ]
    }

Compare pairs of records

  • This service compares the input pairs of records and returns comparison details.
  • This service supports comparing multiple pairs of records by supplying pairs of record numbers in the payload.
  • This service compares the input pairs of records and returns comparison details.
  • This service supports comparing multiple pairs of records by supplying pairs of record numbers in the payload.
POST /mdm/v1/batch_compare
ServiceCall<BatchComparePairsResponse> batchCompareMatchingIndex(BatchCompareMatchingIndexOptions batchCompareMatchingIndexOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.read

Request

Use the BatchCompareMatchingIndexOptions.Builder to create a BatchCompareMatchingIndexOptions object that contains the parameter values for the batchCompareMatchingIndex method.

Query Parameters

  • The cloud resource name of the service.

  • The data type identifier of entity, ie. person_entity, organization_entity, household_entity

    Example: person_entity

  • The level of information detail in response, ie. low, high, debug

    Default: low

  • The data type identifier of source records, ie. person, organization, contract

    Default: person

    Example: person

The wrapper Object for pairs of record numbers

Examples:
batchCompareRequestExample

The batchCompareMatchingIndex options.

  • BatchComparePairsRequestPair batchComparePairsRequestPairModel = new BatchComparePairsRequestPair.Builder()
      .recordNumber1("123")
      .recordNumber2("456")
      .build();
    BatchCompareMatchingIndexOptions batchCompareMatchingIndexOptions = new BatchCompareMatchingIndexOptions.Builder()
      .pairs(new java.util.ArrayList<BatchComparePairsRequestPair>(java.util.Arrays.asList(batchComparePairsRequestPairModel)))
      .entityType("person_entity")
      .recordType("person")
      .build();
    
    Response<BatchComparePairsResponse> response = mdmService.batchCompareMatchingIndex(batchCompareMatchingIndexOptions).execute();
    BatchComparePairsResponse batchComparePairsResponse = response.getResult();
    
    System.out.println(batchComparePairsResponse);

Response

The wrapper object for the comparison details of the pairs compared

The wrapper object for the comparison details of the pairs compared.

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "comparison_scores": [
        {
          "score": 331.33,
          "score_category": "matched"
        },
        {
          "score": 80,
          "score_category": "unmatched"
        }
      ]
    }
  • {
      "comparison_scores": [
        {
          "score": 331.33,
          "score_category": "matched"
        },
        {
          "score": 80,
          "score_category": "unmatched"
        }
      ]
    }

Compare records

  • This service compares the input records and returns comparison details.
  • This service supports comparing two records by supplying payload or record_id.
  • This service also supports self comparison of a single input record.
  • This service compares the input records and returns comparison details.
  • This service supports comparing two records by supplying payload or record_id.
  • This service also supports self comparison of a single input record.
POST /mdm/v1/compare
ServiceCall<Compare> compareMatchingIndex(CompareMatchingIndexOptions compareMatchingIndexOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.read

Request

Use the CompareMatchingIndexOptions.Builder to create a CompareMatchingIndexOptions object that contains the parameter values for the compareMatchingIndex method.

Query Parameters

  • The cloud resource name of the service.

  • The data type identifier of entity, ie. person_entity, organization_entity, household_entity

    Example: person_entity

  • The level of information detail in response, ie. low, high, debug

    Default: low

  • The unique identifier of the first source record as assigned by the system

    Example: 123456789

  • The unique identifier of the second source record as assigned by the system

    Example: 123456789

  • The data type identifier of source records, ie. person, organization, contract

    Default: person

    Example: person

The wrapper object for collection of records

Examples:
compareRequestExample

The compareMatchingIndex options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/compare?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&details=debug&entity_type=person_entity&record_number1=1234567890&record_number2=1234567899&record_type=person" --data "{"records":[{"record_type":"person","attributes":{"record_source":"MDM","record_id":"6","record_last_updated":"2017-10-02 18:08:23.638","birth_date":[{"value":"1961-08-24T00:00:00"}],"gender":[{"value":"mALe"}],"primary_residence":[{"record_start":"2017-10-02 18:08:23.689","record_last_updated":"2017-10-02 18:08:23.69","residence":"condo","address_line1":"7959 SW King AVE","city":"Toronto","zip_postal_code":"L5D4K8","residence_number":"120","province_state":"ON","county":"Peel","country":"canada"}],"home_telephone":[{"record_start":"2017-10-02 18:08:23.793","record_last_updated":"2017-10-02 18:08:23.793","phone_number":"905-722-5903","contact_method":"Telephone Number"}],"mobile_telephone":[{"record_start":"2017-10-02 18:08:23.793","record_last_updated":"2017-10-02 18:08:23.793","phone_number":"416-722-5903","contact_method":"Telephone Number"}],"personal_email":[{"record_last_updated":"2017-10-02 18:08:23.651","usageValue":"personal_email","email_id":"brownb@us.ibm.com","record_start":"2017-10-02 18:08:23.651","usageType":"6"}],"social_security_number":[{"record_last_updated":"2017-10-02 18:08:23.651","usageValue":"social_security_number","identification_number":"982588729873","record_start":"2017-10-02 18:08:23.651","usageType":"6"}],"drivers_licence":[{"record_last_updated":"2017-10-02 18:08:23.651","usageValue":"drivers_licence","identification_number":"803356781","record_start":"2017-10-02 18:08:23.651","usageType":"6"}],"passport":[{"record_last_updated":"2017-10-02 18:08:23.651","usageValue":"passport","identification_number":"EG346ASS9820M","record_start":"2017-10-02 18:08:23.651","usageType":"6"}],"legal_name":[{"record_start":"2017-10-02 18:08:23.641","record_last_updated":"2017-10-02 18:08:23.641","generation":"phd","usage":"Legal","prefix":"rev","given_name":"Bobby","middle_name":"Don","last_name":"Brown","suffix":"2d"}]}},{"record_type":"person","attributes":{"record_source":"MDMx","record_id":"7","record_last_updated":"2017-10-02 18:08:23.638","birth_date":[{"value":"1961-08-23T00:00:00"}],"gender":[{"value":"mALe"}],"primary_residence":[{"record_start":"2017-10-02 18:08:23.689","record_last_updated":"2017-10-02 18:08:23.69","residence":"condo","address_line1":"7950 SW King AVE","city":"Toronto","zip_postal_code":"L5D4K8","residence_number":"120","province_state":"ON","county":"Peel","country":"canada"}],"home_telephone":[{"record_start":"2017-10-02 18:08:23.793","record_last_updated":"2017-10-02 18:08:23.793","phone_number":"905-722-5903","contact_method":"Telephone Number"}],"personal_email":[{"record_last_updated":"2017-10-02 18:08:23.651","usageValue":"personal_email","email_id":"brownb@us.ibm.com","record_start":"2017-10-02 18:08:23.651","usageType":"6"}],"legal_name":[{"record_start":"2017-10-02 18:08:23.641","record_last_updated":"2017-10-02 18:08:23.641","generation":"phd","usage":"Legal","prefix":"rev","given_name":"Boby","middle_name":"Don","last_name":"Brown","suffix":"2d"}]}}]}" 
  • SingleRecordRequestAttributes singleRecordRequestAttributesModel = new SingleRecordRequestAttributes.Builder()
      .recordLastUpdated(Long.valueOf("1506982103000"))
      .recordId("2")
      .recordSource("MDM")
      .add("birth_date", "[{\"value\":\"11/05/1993\"}]")
      .add("gender", "[{\"value\":\"male\"}]")
      .add("primary_residence", "[{\"record_start\":\" \",\"address_line1\":\"7908 NE VAN TRUMP AVE\",\"city\":\"LEFOR\",\"province_state\":\"Texas\"}]")
      .build();
    SingleRecordRequest singleRecordRequestModel = new SingleRecordRequest.Builder()
      .recordType("person")
      .attributes(singleRecordRequestAttributesModel)
      .build();
    CompareMatchingIndexOptions compareMatchingIndexOptions = new CompareMatchingIndexOptions.Builder()
      .records(new java.util.ArrayList<SingleRecordRequest>(java.util.Arrays.asList(singleRecordRequestModel)))
      .entityType("person_entity")
      .recordNumber1(Long.valueOf("123456789"))
      .recordNumber2(Long.valueOf("123456789"))
      .recordType("person")
      .build();
    
    Response<Compare> response = mdmService.compareMatchingIndex(compareMatchingIndexOptions).execute();
    Compare compare = response.getResult();
    
    System.out.println(compare);

Response

Response object for comparing records

Response object for comparing records.

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "score": 230.32,
      "score_category": "matched"
    }
  • {
      "score": 230.32,
      "score_category": "matched"
    }

Search records by matching algorithm

  • This service searches for the supplied payload and returns record_ids of potential matches.
  • The order of record_ids in the response is determined by matching algorithms.
  • This service searches for the supplied payload and returns record_ids of potential matches.
  • The order of record_ids in the response is determined by matching algorithms.
POST /mdm/v1/probabilistic_search
ServiceCall<PostSearch> searchMatchingIndex(SearchMatchingIndexOptions searchMatchingIndexOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.matching.read

Request

Use the SearchMatchingIndexOptions.Builder to create a SearchMatchingIndexOptions object that contains the parameter values for the searchMatchingIndex method.

Query Parameters

  • The cloud resource name of the service.

  • The level of information detail in response, ie. low, high, debug

    Default: low

  • The minimum score to filter the matching records in the results. The default min_score is 0.

  • The maximum score to filter the matching records in the results. The default max_score is 32767.

  • The number of entries to skip before returning a page of results. The default offset is 0.

  • The data type identifier of entity, ie. person_entity, organization_entity, household_entity

    Default: person_entity

  • The maximum expected number of entries in each page of results. The default limit is 20.

The wrapper Object for a single record

Examples:
searchRequestExample

The searchMatchingIndex options.

  • curl -X POST --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/probabilistic_search?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"record_type":"person","attributes":{"record_source":"PERSONLIST","record_id":"101","birth_date":[{"value":"2007-01-02"}],"gender":[{"value":"F"}],"primary_residence":[{"address_line1":"232 S RICHELIEU ST.E","city":"PORT NORRIS","zip_postal_code":"8349","province_state":"NJ"}],"business_address":[{"address_line1":"9852 WEST DORSET STREET","city":"SHADE GAP","zip_postal_code":"17255","province_state":"PA"}],"home_telephone":[{"phone_number":"248-0677"}],"social_security_number":[{"identification_number":"117-85-3320"}],"health_card":[{"identification_number":"788-71-4075"}],"legal_name":[{"given_name":"MARGUERITE","last_name":"NICKLES"}]}}" 
  • SingleRecordRequestAttributes singleRecordRequestAttributesModel = new SingleRecordRequestAttributes.Builder()
      .recordLastUpdated(Long.valueOf("1506982103000"))
      .recordId("2")
      .recordSource("MDM")
      .add("birth_date", "[{\"value\":\"1964-08-21 00:00:00\"}]")
      .add("gender", "[{\"value\":\"mALe\"}]")
      .add("legal_name", "[{\"record_start\":\"017-10-02 18:08:23.689\",\"generation\":\"NEWBORN\",\"given_name\":[\"GIRL1\",\"GIRL1\",\"GIRL2\",\"GIRL3\",\"GIRL4\"],\"middle_name\":\"BABYGIRL\"}]")
      .build();
    SearchMatchingIndexOptions searchMatchingIndexOptions = new SearchMatchingIndexOptions.Builder()
      .recordType("person")
      .attributes(singleRecordRequestAttributesModel)
      .build();
    
    Response<PostSearch> response = mdmService.searchMatchingIndex(searchMatchingIndexOptions).execute();
    PostSearch postSearch = response.getResult();
    
    System.out.println(postSearch);

Response

Response object for searching the potential matches of a given search criteria

Response object for searching the potential matches of a given search criteria.

Status Code

  • The request has been successfully finished.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "records": [
        {
          "record_id": "101",
          "score": 238,
          "record_source": "PERSONLIST"
        },
        {
          "record_id": "1",
          "score": 238,
          "record_source": "PERSONLIST"
        }
      ]
    }
  • {
      "records": [
        {
          "record_id": "101",
          "score": 238,
          "record_source": "PERSONLIST"
        },
        {
          "record_id": "1",
          "score": 238,
          "record_source": "PERSONLIST"
        }
      ]
    }

Retrieve record types of all the matching algorithms

  • This service retrieves the record types of all the matching algorithms present.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
  • This service retrieves the record types of all the matching algorithms present.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
GET /mdm/v1/algorithms
ServiceCall<AlgorithmNames> listModelAlgorithms(ListModelAlgorithmsOptions listModelAlgorithmsOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the ListModelAlgorithmsOptions.Builder to create a ListModelAlgorithmsOptions object that contains the parameter values for the listModelAlgorithms method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/algorithms?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListModelAlgorithmsOptions listModelAlgorithmsOptions = new ListModelAlgorithmsOptions();
    
    Response<AlgorithmNames> response = mdmService.listModelAlgorithms(listModelAlgorithmsOptions).execute();
    AlgorithmNames algorithmNames = response.getResult();
    
    System.out.println(algorithmNames);

Response

Response wrapper object for all algorithm names

Response wrapper object for all algorithm names.

Status Code

  • The algorithms' record types has been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "algorithm_names": [
        "organization",
        "person"
      ]
    }
  • {
      "algorithm_names": [
        "organization",
        "person"
      ]
    }

Retrieve the matching algorithm

  • This service retrieves the matching algorithm for a given record type.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
  • This service retrieves the matching algorithm for a given record type.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
GET /mdm/v1/algorithms/{record_type}
ServiceCall<Algorithm> getModelAlgorithm(GetModelAlgorithmOptions getModelAlgorithmOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the GetModelAlgorithmOptions.Builder to create a GetModelAlgorithmOptions object that contains the parameter values for the getModelAlgorithm method.

Path Parameters

  • The data type identifier of source records, ie. person, organization, contract

Query Parameters

  • The cloud resource name of the service.

  • response will return the default template algorithm when set to true

    Default: false

The getModelAlgorithm options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/algorithms/person?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetModelAlgorithmOptions getModelAlgorithmOptions = new GetModelAlgorithmOptions.Builder()
      .recordType("testString")
      .build();
    
    Response<Algorithm> response = mdmService.getModelAlgorithm(getModelAlgorithmOptions).execute();
    Algorithm algorithm = response.getResult();
    
    System.out.println(algorithm);

Response

The matching algorithm for a given record type (i.e. person)

The matching algorithm for a given record type (i.e. person).

Status Code

  • The algorithm has been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "locale": "en_us",
      "encryption": {},
      "standardizers": {},
      "entity_types": {}
    }
  • {
      "locale": "en_us",
      "encryption": {},
      "standardizers": {},
      "entity_types": {}
    }

Overwrite the matching algorithm

  • This service completely overwrites the matching algorithm for a given record type.
  • A matching algorithm defines how two records of a given type are compared.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
  • This service completely overwrites the matching algorithm for a given record type.
  • A matching algorithm defines how two records of a given type are compared.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
PUT /mdm/v1/algorithms/{record_type}
ServiceCall<PutAlgorithm> replaceModelAlgorithm(ReplaceModelAlgorithmOptions replaceModelAlgorithmOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the ReplaceModelAlgorithmOptions.Builder to create a ReplaceModelAlgorithmOptions object that contains the parameter values for the replaceModelAlgorithm method.

Path Parameters

  • The data type identifier of source records, ie. person, organization, contract

Query Parameters

  • The cloud resource name of the service.

The matching algorithm for a given record type (i.e. person)

The replaceModelAlgorithm options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/algorithm/person?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"locale":"en_us","encryption":{"enabled":true,"type":"RSA","sub_type":"Deterministic","pub_key":["59268009512619467129490841773957547832260510507986184641685362733218475996133","15532435938367556669"]},"standardizers":{"name_standardizer":{"label":"Person Name Standardizer","inputs":[{"fields":["last_name","full_name","given_name","middle_name","prefix","suffix","generation"], "attributes":["legal_name","previous_name"]}],"standardizer_recipe":[{"method":"Standardizer.UpperCase","label":"Uppercase","inputs":[1]},{"method":"Standardizer.MapCharacter","label":"Map equivalent Character","map_resource":"person_map_character_general","inputs":[1]},{"method":"Standardizer.Tokenizer","delimiters":[" ","-","/",",","."],"label":"Tokenization","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["given_name","full_name","middle_name","last_name","prefix","suffix","generation"],"drop_unparsed_values":false,"label":"Parse Token","map_resource":"person_map_name_alignments","inputs":[1]},{"method":"Standardizer.Length","min_length":2,"max_length":100,"fields":["last_name"],"label":"Remove single characters from last name","inputs":[1]},{"method":"Standardizer.StopToken","fields":["last_name","given_name","middle_name","prefix","suffix","generation","full_name"],"label":"Stop anonymous token","set_resource":"person_set_name_aname","inputs":[1]},{"method":"Standardizer.PickToken","fields":["last_name","given_name","middle_name","prefix","suffix","generation","full_name"],"unique_tokens":true,"label":"Pick Token","inputs":[1]}]},"birthdate_standardizer":{"label":"BirthDate Standardizer","inputs":[{"fields":["value"],"attributes":["birth_date"]}],"standardizer_recipe":[{"method":"Standardizer.MapCharacter","label":"Convert separators to dashes","map_resource":"person_map_character_date_separators","inputs":[1]},{"method":"Standardizer.Date","input_formats":["d-M-yyyy","yyyy-M-d","M-d-yyyy","yy-M-d","d-M","M-yyyy","MMM d, yyyy","yyyy-M-d'T'HH:mm:ss","yyyy-M-d HH:mm:ss","MMM d","M-yy","yyyy","yy"],"label":"Date Stanardization","inputs":[1]},{"method":"Standardizer.StopToken","label":"Remove filler dates","set_resource":"person_set_date_date","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["value"],"drop_unparsed_values":true,"label":"Parse year, month, day","map_resource":"person_map_date_tokens_year_month_day","inputs":[1]},{"method":"Standardizer.PickToken","fields":["birth_year","birth_month","birth_day"],"count":3,"unique_tokens":true,"label":"Pick Token","inputs":[1]}]},"gender_standardizer":{"label":"Gender Standardizer","inputs":[{"fields":["value"],"attributes":["gender"]}],"standardizer_recipe":[{"method":"Standardizer.MapCharacter","label":"Map equivalent Character","map_resource":"person_map_character_general","inputs":[1]},{"method":"Standardizer.UpperCase","label":"Uppercase","inputs":[1]},{"method":"Standardizer.StopToken","label":"Stop anonymous Token","set_resource":"person_set_gender_anon_gender","inputs":[1]},{"method":"Standardizer.MapToken","label":"Map equivalent Token","map_resource":"person_map_gender_gender","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["value"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_gender_tokens_gender","inputs":[1]},{"method":"Standardizer.PickToken","fields":["gender"],"count":1,"unique_tokens":true,"label":"Pick Token","inputs":[1]}]},"address_standardizer":{"label":"Address Standardizer","inputs":[{"fields":["residence_number","address_line1","address_line2","address_line3","city","province_state","zip_postal_code","country","latitude_degrees","longitude_degrees"],"attributes":["primary_residence","mailing_address"]}],"standardizer_recipe":[{"method":"Standardizer.UpperCase","label":"Uppercase","inputs":[1]},{"method":"Standardizer.MapCharacter","label":"Map equivalent Character","map_resource":"person_map_character_general","inputs":[1]},{"method":"Standardizer.MapToken","fields":["country"],"label":"Map equivalent Token","map_resource":"person_map_address_country","inputs":[1]},{"method":"Standardizer.MapToken","fields":["province_state"],"label":"Map equivalent Token","map_resource":"person_map_address_province_state","inputs":[1]},{"method":"Standardizer.MapToken","label":"Map equivalent Token","map_resource":"person_map_address_delimiter_removal","inputs":[1]},{"method":"Standardizer.Tokenizer","delimiters":[" "],"label":"Tokenization","inputs":[1]},{"method":"Standardizer.MapToken","label":"Map equivalent Token","map_resource":"person_map_address_addr_tok","inputs":[1]},{"method":"Standardizer.StopToken","fields":["zip_postal_code"],"label":"Stop anonymous Word in ZipPostalCode","set_resource":"person_set_address_postal_code","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["residence_number"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_unit_type_and_number","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["address_line1"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_unit_type_and_number","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["address_line2"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_sub_division","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["address_line3"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_pobox_type_and_number","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["city"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_city","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["province_state"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_province","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["zip_postal_code"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_postal_code","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["country"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_country","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["latitude_degrees"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_latitude","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["longitude_degrees"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_address_tokens_longtitude","inputs":[1]},{"method":"Standardizer.PickToken","fields":["unit_number","street_number","street_name","direction","street_type","pobox","postal_code","city","province","sub_division","country"],"count":16,"unique_tokens":true,"label":"Pick Token","inputs":[1]},{"method":"Standardizer.PickToken","fields":["latitude","longtitude"],"count":2,"unique_tokens":true,"label":"Pick Token","inputs":[1]}]},"phone_standardizer":{"label":"Phone Standardizer","inputs":[{"fields":["phone_number"],"attributes":["home_telephone","mobile_telephone"]}],"standardizer_recipe":[{"method":"Standardizer.StopCharacter","label":"Replace all characters except alphanumeric","set_resource":"person_set_character_phone","inputs":[1]},{"method":"Standardizer.StopToken","label":"Ignore anonymous phones","set_resource":"person_set_phone_anon_phone","inputs":[1]},{"method":"Standardizer.Phone","locales":["US","CN","GB","CA"],"drop_country_code":true,"drop_area_code":true,"drop_local_number":false,"label":"Parse phone number","digits_retained":7,"inputs":[1]},{"method":"Standardizer.ParseToken","fields":["phone_number"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_phone_tokens_phone","inputs":[1]},{"method":"Standardizer.PickToken","fields":["phone"],"count":1,"unique_tokens":true,"label":"Pick Token","inputs":[1]}]},"identification_standardizer":{"label":"Identification Standardizer","inputs":[{"fields":["identification_number"],"attributes":["drivers_licence","passport","social_insurance_number","credit_card"]}],"standardizer_recipe":[{"method":"Standardizer.MapCharacter","label":"Map equivalent Character","map_resource":"person_map_character_general","inputs":[1]},{"method":"Standardizer.UpperCase","label":"Uppercase","inputs":[1]},{"method":"Standardizer.StopToken","label":"Stop anonymous Token","set_resource":"person_set_identifier_anonymous","inputs":[1]},{"method":"Standardizer.MapToken","label":"Map equivalent Token","map_resource":"person_map_identifier_equi_identifier","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["identification_number"],"drop_unparsed_values":false,"label":"Parse token","map_resource":"person_map_identifier_tokens_identification_number","inputs":[1]},{"method":"Standardizer.PickToken","fields":["identification_number"],"count":1,"unique_tokens":true,"label":"Pick Token","inputs":[1]}]},"email_standardizer":{"label":"Non-Phone Contact Method Standardizer","inputs":[{"fields":["email_id"],"attributes":["personal_email"]}],"standardizer_recipe":[{"method":"Standardizer.MapCharacter","label":"Map equivalent Character","map_resource":"person_map_character_general","inputs":[1]},{"method":"Standardizer.UpperCase","label":"Uppercase","inputs":[1]},{"method":"Standardizer.StopToken","label":"Stop anonymous Token","set_resource":"person_set_non_phone_anon_non_phone","inputs":[1]},{"method":"Standardizer.MapToken","label":"Map equivalent Token","map_resource":"person_map_non_phone_equi_non_phone","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["email_id"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_non_phone_tokens_non_phone","inputs":[1]},{"method":"Standardizer.PickToken","fields":["email_local_part","email_domain"],"count":2,"unique_tokens":true,"label":"Pick Token","inputs":[1]}]},"social_media_standardizer":{"label":"Social media Standardizer","inputs":[{"fields":["social_media_handle"],"attributes":["twitter"]}],"standardizer_recipe":[{"method":"Standardizer.MapCharacter","label":"Map equivalent Character","map_resource":"person_map_character_general","inputs":[1]},{"method":"Standardizer.UpperCase","label":"Uppercase","inputs":[1]},{"method":"Standardizer.StopToken","label":"Stop anonymous Token","set_resource":"person_set_non_phone_anon_non_phone","inputs":[1]},{"method":"Standardizer.MapToken","label":"Map equivalent Token","map_resource":"person_map_non_phone_equi_non_phone","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["social_media_handle"],"drop_unparsed_values":true,"label":"Parse token","map_resource":"person_map_non_phone_tokens_non_phone","inputs":[1]},{"method":"Standardizer.PickToken","fields":["social_media_id"],"count":2,"unique_tokens":true,"label":"Pick Token","inputs":[1]}]}},"entity_types":{"person_entity":{"bucket_generators":{"name_phone_id_zip_dob_flat_buckets":{"label":"PersonName+Phone/Id/Zip/DOB Flat Buckets","maximum_bucket_size":1000,"inputs":[{"fields":["last_name","given_name","full_name"],"attributes":["legal_name","previous_name"]},{"fields":["phone"],"attributes":["home_telephone","mobile_telephone"]},{"fields":["identification_number"],"attributes":["drivers_licence","social_insurance_number"]},{"fields":["postal_code"],"attributes":["primary_residence","mailing_address"]},{"fields":["birth_day","birth_month","birth_year"],"attributes":["birth_date"]}],"bucket_recipe":[{"method":"BucketGenerator.StopToken","inputs":[1],"fields":["given_name","full_name"],"label":"Exclude Anonymous Name","set_resource":"person_set_name_bkt_anon"},{"method":"BucketGenerator.MapToken","inputs":[1],"fields":["given_name","full_name"],"label":"Nickname convesion","map_resource":"person_map_name_nickname"},{"method":"BucketGenerator.Normphone","inputs":[1],"fields":["last_name","given_name","full_name"],"output_fields":["last_name.normphone","given_name.normphone","full_name.normphone"],"label":"Name Phonetics"},{"inputs":[2],"method":"BucketGenerator.NGram","count":5,"output_fields":["phone.5gram"],"label":"Telephone 5 Grams"},{"inputs":[3],"method":"BucketGenerator.NGram","count":5,"output_fields":["identification_number.5gram"],"label":"Identifier 5 Grams"},{"method":"BucketGenerator.StopToken","inputs":[5],"label":"Exclude Anonymous BirthDate","set_resource":"person_set_date_date"}],"bucket_group_recipe":[{"method":"BucketGenerator.PickToken","inputs":[1,2],"fields":[["given_name.normphone","last_name.normphone","full_name.normphone"],["phone.5gram"]],"min_tokens":[1,1],"max_tokens":[1,1],"count":100,"bucket_group":1,"order":true,"maximum_bucket_size":1000,"label":"Bucket: Normphone Name + 5GramPhone "},{"method":"BucketGenerator.PickToken","inputs":[1,3],"fields":[["last_name.normphone","given_name.normphone","full_name.normphone"],["identification_number.5gram"]],"min_tokens":[1,1],"max_tokens":[1,1],"count":100,"bucket_group":2,"order":true,"maximum_bucket_size":1000,"label":"Bucket: Normphone Name + 5GramIds"},{"method":"BucketGenerator.PickToken","inputs":[1,4],"fields":[["last_name.normphone","given_name.normphone","full_name.normphone"],["postal_code"]],"min_tokens":[1,1],"max_tokens":[2,1],"count":100,"bucket_group":3,"order":true,"maximum_bucket_size":1000,"label":"Bucket: Normphone Name + PostCode AsIs"},{"method":"BucketGenerator.PickToken","inputs":[1,5],"fields":[["last_name.normphone","given_name.normphone","full_name.normphone"],["birth_day","birth_month","birth_year"]],"min_tokens":[1,1],"max_tokens":[2,1],"count":100,"bucket_group":4,"order":true,"maximum_bucket_size":1000,"label":"Bucket: Normphone Name + BirthDate"}]},"identifiers_flat_buckets":{"label":"Identifiers Flat Buckets","maximum_bucket_size":1000,"inputs":[{"fields":["identification_number"],"attributes":["passport","credit_card"]}],"bucket_recipe":[{"method":"BucketGenerator.PickToken","inputs":[1],"fields":["identification_number"],"min_tokens":[1],"max_tokens":[1],"count":100,"bucket_group":5,"order":false,"maximum_bucket_size":1000,"label":"Bucket: Id"}]},"email_flat_buckets":{"label":"Email Flat Buckets","maximum_bucket_size":1000,"inputs":[{"fields":["email_local_part","email_domain"],"attributes":["personal_email"]}],"bucket_recipe":[{"method":"BucketGenerator.PickToken","inputs":[1],"fields":["email_local_part"],"min_tokens":[1],"max_tokens":[1],"count":100,"bucket_group":6,"order":false,"maximum_bucket_size":1000,"label":"Bucket: Email"}]},"social_media_flat_buckets":{"label":"SocialMedia Flat Buckets","maximum_bucket_size":1000,"inputs":[{"fields":["social_media_id"],"attributes":["twitter"]}],"bucket_recipe":[{"method":"BucketGenerator.PickToken","inputs":[1],"fields":["social_media_id"],"min_tokens":[1],"max_tokens":[1],"count":100,"bucket_group":7,"order":false,"maximum_bucket_size":1000,"label":"Bucket: SocialMedaiId"}]}},"clerical_review_threshold":130,"auto_link_threshold":150,"compare_methods":{"name_compare":{"label":"Person Name Compare","methods":[{"inputs":[{"fields":["last_name","given_name","middle_name","prefix","suffix","generation","full_name"],"attributes":["legal_name","previous_name"]}],"compare_recipe":[{"fields":["last_name","given_name","middle_name","prefix","suffix","generation","full_name"],"method":"CompareMethod.NameCompare","label":"Name Match","comparison_resource":"person_compare_spec_name","inputs":[1]}]}],"weights":[65,60,55,50,35,20,10,0,-5,-15,-20]},"birth_date_compare":{"label":"Birth Date Compare","methods":[{"inputs":[{"fields":["birth_year","birth_month","birth_day"],"attributes":["birth_date"]}],"compare_recipe":[{"fields":["birth_year","birth_month","birth_day"],"method":"CompareMethod.DateCompare","label":"Year, Month and Day Match","comparison_resource":"person_compare_spec_date","inputs":[1]}]}],"weights":[12,11,10,9,5,4,2,1,0,0,0]},"gender_compare":{"label":"Gender Compare","methods":[{"inputs":[{"fields":["gender"],"attributes":["gender"]}],"compare_recipe":[{"fields":["gender"],"method":"CompareMethod.SingleTokenCompare","label":"Gender Match","comparison_resource":"person_compare_spec_gender","inputs":[1]}]}],"weights":[3,0,-5,-10,-15,-20,-25,-32,-40,-48,-54]},"email_and_social_media_compare":{"label":"Email and Social Media Compare","methods":[{"inputs":[{"fields":["email_local_part","email_domain"],"attributes":["personal_email"]}],"compare_recipe":[{"fields":["email_local_part","email_domain"],"method":"CompareMethod.EmailCompare","label":"Email Match","comparison_resource":"person_compare_spec_email","inputs":[1]}]},{"inputs":[{"fields":["social_media_id"],"attributes":["twitter"]}],"compare_recipe":[{"fields":["social_media_id"],"method":"CompareMethod.SingleTokenCompare","label":"Social Media Id Match","comparison_resource":"person_compare_spec_non_phone","inputs":[1]}]}],"weights":[52,45,40,35,30,25,15,5,0,-10,-20]},"identifiers_compare":{"label":"Identifiers Compare","methods":[{"inputs":[{"fields":["identification_number"],"attributes":["social_insurance_number"]}],"compare_recipe":[{"fields":["identification_number"],"method":"CompareMethod.SingleTokenCompare","label":"Social Insurance Number Match","comparison_resource":"person_compare_spec_identifier","inputs":[1]}]}],"weights":[54,50,40,35,30,25,15,5,0,-10,-20]},"other_identifiers_compare":{"label":"Other Identifiers Compare","methods":[{"inputs":[{"fields":["identification_number"],"attributes":["drivers_licence"]}],"compare_recipe":[{"fields":["identification_number"],"method":"CompareMethod.SingleTokenCompare","label":"Drivers Licence Match","comparison_resource":"person_compare_spec_identifier","inputs":[1]}]},{"inputs":[{"fields":["identification_number"],"attributes":["passport"]}],"compare_recipe":[{"fields":["identification_number"],"method":"CompareMethod.SingleTokenCompare","label":"Passport Match","comparison_resource":"person_compare_spec_identifier","inputs":[1]}]}],"weights":[54,50,40,35,30,25,15,5,0,-10,-20]},"credit_card_compare":{"label":"Credit Card Compare","methods":[{"inputs":[{"fields":["identification_number"],"attributes":["credit_card"]}],"compare_recipe":[{"fields":["identification_number"],"method":"CompareMethod.SingleTokenCompare","label":"Credit Card Match","comparison_resource":"person_compare_spec_identifier","inputs":[1]}]}],"weights":[54,50,40,35,30,25,15,5,0,-10,-20]},"phone_compare":{"label":"Phone Compare","methods":[{"inputs":[{"fields":["phone"],"attributes":["home_telephone","mobile_telephone"]}],"compare_recipe":[{"fields":["phone"],"method":"CompareMethod.SingleTokenCompare","label":"Phone Match","comparison_resource":"person_compare_spec_phone","inputs":[1]}]}],"weights":[52,50,47,44,40,35,30,26,23,23,22]},"address_compare":{"label":"Address Compare","methods":[{"inputs":[{"fields":["unit_number","street_number","street_name","direction","street_type","pobox","postal_code","city","province","sub_division","country","latitude","longtitude"],"attributes":["primary_residence","mailing_address"]}],"compare_recipe":[{"fields":["unit_number","street_number","street_name","direction","street_type","pobox","postal_code","city","province","sub_division","country","latitude","longtitude"],"method":"CompareMethod.AddressCompare","label":"Address Match","comparison_resource":"person_compare_spec_address","inputs":[1]}]}],"weights":[52,47,42,37,30,25,20,15,10,5,1]}}}}}" 
  • AlgorithmStandardizerStep algorithmStandardizerStepModel = new AlgorithmStandardizerStep.Builder()
      .label("testString")
      .method("testString")
      .build();
    AlgorithmInput algorithmInputModel = new AlgorithmInput.Builder()
      .attributes(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .fields(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .build();
    AlgorithmStandardizer algorithmStandardizerModel = new AlgorithmStandardizer.Builder()
      .label("testString")
      .standardizerRecipe(new java.util.ArrayList<AlgorithmStandardizerStep>(java.util.Arrays.asList(algorithmStandardizerStepModel)))
      .inputs(new java.util.ArrayList<AlgorithmInput>(java.util.Arrays.asList(algorithmInputModel)))
      .build();
    AlgorithmEncryption algorithmEncryptionModel = new AlgorithmEncryption.Builder()
      .subType("testString")
      .pubKey(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .enabled(true)
      .type("testString")
      .build();
    AlgorithmEntityType algorithmEntityTypeModel = new AlgorithmEntityType.Builder()
      .autoLinkThreshold(Float.valueOf("36.0"))
      .build();
    ReplaceModelAlgorithmOptions replaceModelAlgorithmOptions = new ReplaceModelAlgorithmOptions.Builder()
      .recordType("testString")
      .standardizers(new java.util.HashMap<String, AlgorithmStandardizer>() { { put("foo", algorithmStandardizerModel); } })
      .encryption(algorithmEncryptionModel)
      .entityTypes(new java.util.HashMap<String, AlgorithmEntityType>() { { put("foo", algorithmEntityTypeModel); } })
      .locale("testString")
      .build();
    
    Response<PutAlgorithm> response = mdmService.replaceModelAlgorithm(replaceModelAlgorithmOptions).execute();
    PutAlgorithm putAlgorithm = response.getResult();
    
    System.out.println(putAlgorithm);

Response

Response wrapper object for overwriting matching algorithm

Response wrapper object for overwriting matching algorithm.

Status Code

  • The algorithm has been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_id": "41017488",
      "algorithm": {}
    }
  • {
      "flow_state": "published",
      "flow_id": "41017488",
      "algorithm": {}
    }

generate matching algorithm

  • This service customizes the matching algorithm for a given record type.
  • A matching algorithm defines how two records of a given type are compared.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
  • This service customizes the matching algorithm for a given record type.
  • A matching algorithm defines how two records of a given type are compared.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
POST /mdm/v1/algorithms/{record_type}
ServiceCall<PutAlgorithm> generateModelAlgorithm(GenerateModelAlgorithmOptions generateModelAlgorithmOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the GenerateModelAlgorithmOptions.Builder to create a GenerateModelAlgorithmOptions object that contains the parameter values for the generateModelAlgorithm method.

Path Parameters

  • The data type identifier of source records, ie. person, organization, contract

Query Parameters

  • The cloud resource name of the service.

The matching algorithm for a given record type (i.e. person)

The generateModelAlgorithm options.

  • AlgorithmGenerationAttributeItem algorithmGenerationAttributeItemModel = new AlgorithmGenerationAttributeItem.Builder()
      .attributes(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .build();
    AlgorithmGenerationEntityType algorithmGenerationEntityTypeModel = new AlgorithmGenerationEntityType.Builder()
      .matchingAttributes(new java.util.ArrayList<AlgorithmGenerationAttributeItem>(java.util.Arrays.asList(algorithmGenerationAttributeItemModel)))
      .build();
    GenerateModelAlgorithmOptions generateModelAlgorithmOptions = new GenerateModelAlgorithmOptions.Builder()
      .recordType("testString")
      .requestBody(new java.util.HashMap<String, AlgorithmGenerationEntityType>() { { put("foo", algorithmGenerationEntityTypeModel); } })
      .build();
    
    Response<PutAlgorithm> response = mdmService.generateModelAlgorithm(generateModelAlgorithmOptions).execute();
    PutAlgorithm putAlgorithm = response.getResult();
    
    System.out.println(putAlgorithm);

Response

Response wrapper object for overwriting matching algorithm

Response wrapper object for overwriting matching algorithm.

Status Code

  • The algorithm has been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_id": "41017488",
      "algorithm": {}
    }
  • {
      "flow_state": "published",
      "flow_id": "41017488",
      "algorithm": {}
    }

Partially modify matching algorithm

  • This service partially modifies the matching algorithm for a given record type.
  • A matching algorithm defines how two records of a given type are compared.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
  • This service partially modifies the matching algorithm for a given record type.
  • A matching algorithm defines how two records of a given type are compared.
  • A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
PATCH /mdm/v1/algorithms/{record_type}
ServiceCall<PutAlgorithm> updateModelAlgorithm(UpdateModelAlgorithmOptions updateModelAlgorithmOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the UpdateModelAlgorithmOptions.Builder to create a UpdateModelAlgorithmOptions object that contains the parameter values for the updateModelAlgorithm method.

Path Parameters

  • The data type identifier of source records, ie. person, organization, contract

Query Parameters

  • The cloud resource name of the service.

The matching algorithm for a given record type (i.e. person)

The updateModelAlgorithm options.

  • curl -X PATCH --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/algorithm/person?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"standardizers":{"name_standardizer":{"label":"Person Name Standardizer","inputs":[{"fields":["last_name","full_name","given_name","middle_name","prefix","suffix","generation"],"attributes":["legal_name","previous_name"]}],"standardizer_recipe":[{"method":"Standardizer.UpperCase","label":"Uppercase","inputs":[1]},{"method":"Standardizer.MapCharacter","label":"Map equivalent Character","map_resource":"person_map_character_general","inputs":[1]},{"method":"Standardizer.Tokenizer","delimiters":[" ","-","/",",","."],"label":"Tokenization","inputs":[1]},{"method":"Standardizer.ParseToken","fields":["given_name","full_name","middle_name","last_name","prefix","suffix","generation"],"drop_unparsed_values":false,"label":"Parse Token","map_resource":"person_map_name_alignments","inputs":[1]},{"method":"Standardizer.Length","min_length":2,"max_length":100,"fields":["last_name"],"label":"Remove single characters from last name","inputs":[1]},{"method":"Standardizer.StopToken","fields":["last_name","given_name","middle_name","prefix","suffix","generation","full_name"],"label":"Stop anonymous token","set_resource":"person_set_name_aname","inputs":[1]},{"method":"Standardizer.PickToken","fields":["last_name","given_name","middle_name","prefix","suffix","generation","full_name"],"unique_tokens":true,"label":"Pick Token","inputs":[1]}]}}}" 
  • AlgorithmStandardizerStep algorithmStandardizerStepModel = new AlgorithmStandardizerStep.Builder()
      .label("testString")
      .method("testString")
      .build();
    AlgorithmInput algorithmInputModel = new AlgorithmInput.Builder()
      .attributes(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .fields(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .build();
    AlgorithmStandardizer algorithmStandardizerModel = new AlgorithmStandardizer.Builder()
      .label("testString")
      .standardizerRecipe(new java.util.ArrayList<AlgorithmStandardizerStep>(java.util.Arrays.asList(algorithmStandardizerStepModel)))
      .inputs(new java.util.ArrayList<AlgorithmInput>(java.util.Arrays.asList(algorithmInputModel)))
      .build();
    AlgorithmEncryption algorithmEncryptionModel = new AlgorithmEncryption.Builder()
      .subType("testString")
      .pubKey(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .enabled(true)
      .type("testString")
      .build();
    AlgorithmEntityType algorithmEntityTypeModel = new AlgorithmEntityType.Builder()
      .autoLinkThreshold(Float.valueOf("36.0"))
      .build();
    UpdateModelAlgorithmOptions updateModelAlgorithmOptions = new UpdateModelAlgorithmOptions.Builder()
      .recordType("testString")
      .standardizers(new java.util.HashMap<String, AlgorithmStandardizer>() { { put("foo", algorithmStandardizerModel); } })
      .encryption(algorithmEncryptionModel)
      .entityTypes(new java.util.HashMap<String, AlgorithmEntityType>() { { put("foo", algorithmEntityTypeModel); } })
      .locale("testString")
      .build();
    
    Response<PutAlgorithm> response = mdmService.updateModelAlgorithm(updateModelAlgorithmOptions).execute();
    PutAlgorithm putAlgorithm = response.getResult();
    
    System.out.println(putAlgorithm);

Response

Response wrapper object for overwriting matching algorithm

Response wrapper object for overwriting matching algorithm.

Status Code

  • The algorithm has been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_id": "135208",
      "algorithm": {}
    }
  • {
      "flow_state": "published",
      "flow_id": "135208",
      "algorithm": {}
    }

Retrieve a summary of all comparison parameters

  • This service retrieves the list of specification names for the existing comparison parameters.
  • This service retrieves the list of specification names for the existing comparison parameters.
GET /mdm/v1/compare_spec_resources
ServiceCall<CompareSpecResourceNames> listModelComparespecResoures(ListModelComparespecResouresOptions listModelComparespecResouresOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the ListModelComparespecResouresOptions.Builder to create a ListModelComparespecResouresOptions object that contains the parameter values for the listModelComparespecResoures method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/model/v1/compare_spec_resources?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListModelComparespecResouresOptions listModelComparespecResouresOptions = new ListModelComparespecResouresOptions();
    
    Response<CompareSpecResourceNames> response = mdmService.listModelComparespecResoures(listModelComparespecResouresOptions).execute();
    CompareSpecResourceNames compareSpecResourceNames = response.getResult();
    
    System.out.println(compareSpecResourceNames);

Response

Response wrapper object for all comparison resource names

Response wrapper object for all comparison resource names.

Status Code

  • The resources have been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "compare_spec_resource_names": [
        "person_compare_spec_email",
        "org_compare_spec_identifier",
        "person_compare_spec_non_phone",
        "org_compare_spec_phone",
        "org_compare_spec_name",
        "persongnm_compare_spec_name",
        "person_compare_spec_identifier",
        "person_compare_spec_date",
        "person_compare_spec_name",
        "org_compare_spec_address",
        "person_compare_spec_gender",
        "person_compare_spec_phone",
        "person_compare_spec_address"
      ]
    }
  • {
      "compare_spec_resource_names": [
        "person_compare_spec_email",
        "org_compare_spec_identifier",
        "person_compare_spec_non_phone",
        "org_compare_spec_phone",
        "org_compare_spec_name",
        "persongnm_compare_spec_name",
        "person_compare_spec_identifier",
        "person_compare_spec_date",
        "person_compare_spec_name",
        "org_compare_spec_address",
        "person_compare_spec_gender",
        "person_compare_spec_phone",
        "person_compare_spec_address"
      ]
    }

Retrieve details of comparison parameters

  • This service retrieves the comparison parameters for a given specification name.
  • Comparison parameters are maintained in a json document and is used for comparing attributes within an algorithm.
  • This service retrieves the comparison parameters for a given specification name.
  • Comparison parameters are maintained in a json document and is used for comparing attributes within an algorithm.
GET /mdm/v1/compare_spec_resources/{resource_name}
ServiceCall<CompareSpecResource> getModelComparespecResource(GetModelComparespecResourceOptions getModelComparespecResourceOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the GetModelComparespecResourceOptions.Builder to create a GetModelComparespecResourceOptions object that contains the parameter values for the getModelComparespecResource method.

Path Parameters

  • The unique identifier for the comparison parameters

Query Parameters

  • The cloud resource name of the service.

The getModelComparespecResource options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/compare_spec_resources/person_compare_spec_email?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetModelComparespecResourceOptions getModelComparespecResourceOptions = new GetModelComparespecResourceOptions.Builder()
      .resourceName("testString")
      .build();
    
    Response<CompareSpecResource> response = mdmService.getModelComparespecResource(getModelComparespecResourceOptions).execute();
    CompareSpecResource compareSpecResource = response.getResult();
    
    System.out.println(compareSpecResource);

Response

A single comparison resource used to customize comparison logic of a matching algorithm

A single comparison resource used to customize comparison logic of a matching algorithm.

Status Code

  • The resources have been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "typo_distance": 0.25,
      "similar_characters_distance": 0.5,
      "similar_characters_map_resource": "person_map_character_similar_character",
      "feature_categories": {
        "id": {
          "features": [
            "similarity"
          ],
          "fields": [
            "email_local_part"
          ]
        },
        "domain": {
          "features": [
            "similarity"
          ],
          "fields": [
            "email_domain"
          ]
        }
      },
      "feature_coefficients": {
        "id_similarity": 0.9,
        "domain_similarity": 0.1
      }
    }
  • {
      "typo_distance": 0.25,
      "similar_characters_distance": 0.5,
      "similar_characters_map_resource": "person_map_character_similar_character",
      "feature_categories": {
        "id": {
          "features": [
            "similarity"
          ],
          "fields": [
            "email_local_part"
          ]
        },
        "domain": {
          "features": [
            "similarity"
          ],
          "fields": [
            "email_domain"
          ]
        }
      },
      "feature_coefficients": {
        "id_similarity": 0.9,
        "domain_similarity": 0.1
      }
    }

Overwrite the comparison parameters

  • This service completely overwrites the comparison parameters for a given specification name.
  • Comparison parameters are maintained in a json document and is used for comparing attributes within an algorithm.
  • This service completely overwrites the comparison parameters for a given specification name.
  • Comparison parameters are maintained in a json document and is used for comparing attributes within an algorithm.
PUT /mdm/v1/compare_spec_resources/{resource_name}
ServiceCall<PutCompareSpecResources> replaceModelComparespecResource(ReplaceModelComparespecResourceOptions replaceModelComparespecResourceOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the ReplaceModelComparespecResourceOptions.Builder to create a ReplaceModelComparespecResourceOptions object that contains the parameter values for the replaceModelComparespecResource method.

Path Parameters

  • The unique identifier for the comparison parameters

Query Parameters

  • The cloud resource name of the service.

A single comparison resource used to customize comparison logic of a matching algorithm

The replaceModelComparespecResource options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/compare_spec_resources/person_compare_spec_email?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"typo_distance":0.25,"similar_characters_distance":0.5,"similar_characters_map_resource":"person_map_character_similar_character","feature_categories":{"id":{"features":["similarity"],"fields":["email_local_part"]},"domain":{"features":["similarity"],"fields":["email_domain"]}},"feature_coefficients":{"id_similarity":0.9,"domain_similarity":0.1}}" 
  • CompareSpecResourceFeatureCategory compareSpecResourceFeatureCategoryModel = new CompareSpecResourceFeatureCategory.Builder()
      .build();
    ReplaceModelComparespecResourceOptions replaceModelComparespecResourceOptions = new ReplaceModelComparespecResourceOptions.Builder()
      .resourceName("testString")
      .featureCategories(new java.util.HashMap<String, CompareSpecResourceFeatureCategory>() { { put("foo", compareSpecResourceFeatureCategoryModel); } })
      .typoDistance(Float.valueOf("36.0"))
      .featureCoefficients(new java.util.HashMap<String, Float>() { { put("foo", Float.valueOf("36.0")); } })
      .build();
    
    Response<PutCompareSpecResources> response = mdmService.replaceModelComparespecResource(replaceModelComparespecResourceOptions).execute();
    PutCompareSpecResources putCompareSpecResources = response.getResult();
    
    System.out.println(putCompareSpecResources);

Response

Response wrapper object for overwriting comparison resource

Response wrapper object for overwriting comparison resource.

Status Code

  • The resources have been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "compare_spec_resources": {}
    }
  • {
      "flow_state": "published",
      "compare_spec_resources": {}
    }

Retrieve the survivorship composite rules

  • Retrieve the survivorship composite rules applicable to entity types, as defined by matching algorithms
  • The ability to construct survived "picture" of the linked records relies on Composite Rule definition.
  • Composite Rule is a json document that contains survivorship criteria at global level or within a specific scope.
  • Retrieve the survivorship composite rules applicable to entity types, as defined by matching algorithms
  • The ability to construct survived "picture" of the linked records relies on Composite Rule definition.
  • Composite Rule is a json document that contains survivorship criteria at global level or within a specific scope.
GET /mdm/v1/composite_rules
ServiceCall<CompositeRules> getModelCompositeRules(GetModelCompositeRulesOptions getModelCompositeRulesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the GetModelCompositeRulesOptions.Builder to create a GetModelCompositeRulesOptions object that contains the parameter values for the getModelCompositeRules method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/composite_rules?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetModelCompositeRulesOptions getModelCompositeRulesOptions = new GetModelCompositeRulesOptions();
    
    Response<CompositeRules> response = mdmService.getModelCompositeRules(getModelCompositeRulesOptions).execute();
    CompositeRules compositeRules = response.getResult();
    
    System.out.println(compositeRules);

Response

The wrapper object of composite rules

The wrapper object of composite rules.

Status Code

  • The composite rules have been successfully modified.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "locale": "en_us",
      "rules": {
        "global": {
          "choices": [
            "mca",
            "mfa"
          ],
          "sources": []
        }
      }
    }
  • {
      "locale": "en_us",
      "rules": {
        "global": {
          "choices": [
            "mca",
            "mfa"
          ],
          "sources": []
        }
      }
    }

Overwrite the survivorship composite rules

  • Overwrite the survivorship composite rules applicable to entity types, as defined by matching algorithm
  • The ability to construct survived "picture" of the linked records relies on Composite Rule definition.
  • Composite Rule is a json document that contains survivorship criteria at global level or within a specific scope.
  • Overwrite the survivorship composite rules applicable to entity types, as defined by matching algorithm
  • The ability to construct survived "picture" of the linked records relies on Composite Rule definition.
  • Composite Rule is a json document that contains survivorship criteria at global level or within a specific scope.
PUT /mdm/v1/composite_rules
ServiceCall<PutCompositeRules> replaceModelCompositeRules(ReplaceModelCompositeRulesOptions replaceModelCompositeRulesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the ReplaceModelCompositeRulesOptions.Builder to create a ReplaceModelCompositeRulesOptions object that contains the parameter values for the replaceModelCompositeRules method.

Query Parameters

  • The cloud resource name of the service.

The wrapper object of composite rules

The replaceModelCompositeRules options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/composite_rules?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"locale":"en_us","rules":{"global":{"choices":["mca","source"],"sources":["src1","src5","src2"]}}}" 
  • CompositeRulesRule compositeRulesRuleModel = new CompositeRulesRule.Builder()
      .sources(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .choices(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .build();
    CompositeRulesRules compositeRulesRulesModel = new CompositeRulesRules.Builder()
      .global(compositeRulesRuleModel)
      .build();
    ReplaceModelCompositeRulesOptions replaceModelCompositeRulesOptions = new ReplaceModelCompositeRulesOptions.Builder()
      .rules(compositeRulesRulesModel)
      .locale("testString")
      .build();
    
    Response<PutCompositeRules> response = mdmService.replaceModelCompositeRules(replaceModelCompositeRulesOptions).execute();
    PutCompositeRules putCompositeRules = response.getResult();
    
    System.out.println(putCompositeRules);

Response

Response wrapper object for overwriting composite rules

Response wrapper object for overwriting composite rules.

Status Code

  • The composite rules have been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_id": "172056",
      "composite_rules": {}
    }
  • {
      "flow_state": "published",
      "flow_id": "172056",
      "composite_rules": {}
    }

Retrieve the data model

  • This service retrieves the data model for record types and relationship types.
  • Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
  • This service retrieves the data model for record types and relationship types.
  • Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
GET /mdm/v1/data_model
ServiceCall<DataModel> getModelDataModel(GetModelDataModelOptions getModelDataModelOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the GetModelDataModelOptions.Builder to create a GetModelDataModelOptions object that contains the parameter values for the getModelDataModel method.

Query Parameters

  • The cloud resource name of the service.

  • The identifier for a given state of the data model, ie. current, draft

    Default: current

The getModelDataModel options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/data_model?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&version=current" 
  • GetModelDataModelOptions getModelDataModelOptions = new GetModelDataModelOptions.Builder()
      .build();
    
    Response<DataModel> response = mdmService.getModelDataModel(getModelDataModelOptions).execute();
    DataModel dataModel = response.getResult();
    
    System.out.println(dataModel);

Response

Collection of record and relationship types definition

Collection of record and relationship types definition.

Status Code

  • The data model has been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "locale": "en_us",
      "system_properties": {},
      "record_types": {},
      "attribute_types": {},
      "relationship_types": {}
    }
  • {
      "locale": "en_us",
      "system_properties": {},
      "record_types": {},
      "attribute_types": {},
      "relationship_types": {}
    }

Overwrite the data model

  • This service completely overwrites the data model for record types and relationship types.
  • Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
  • This service completely overwrites the data model for record types and relationship types.
  • Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
PUT /mdm/v1/data_model
ServiceCall<PutDataModel> replaceModelDataModel(ReplaceModelDataModelOptions replaceModelDataModelOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the ReplaceModelDataModelOptions.Builder to create a ReplaceModelDataModelOptions object that contains the parameter values for the replaceModelDataModel method.

Query Parameters

  • The cloud resource name of the service.

Collection of record and relationship types definition

The replaceModelDataModel options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/data_model?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"locale":"en_us","system_properties":{"record_types":{"collection_id":{"label":"Collection ID","description":"Optional identifier for identifying a collection of records","data_type":"String","editable":true,"indexed":true},"record_source":{"label":"Record source","description":"A user provided record source.","data_type":"String","editable":true,"indexed":true},"record_id":{"label":"Record identifier","description":"User provided or autogenerated record identifier","data_type":"String","editable":true,"indexed":true},"record_number":{"label":"System record number","description":"System generated record number","data_type":"String","editable":false,"indexed":true},"record_last_updated":{"label":"Record last updated","description":"System generated record last updated","data_type":"Long","editable":false,"indexed":true}},"entity_types":{"entity_id":{"label":"Entity identifier","data_type":"String","editable":false,"indexed":true},"entity_last_updated":{"label":"Entity last updated time","data_type":"Long","editable":false,"indexed":false}},"attribute_types":{"attribute_last_updated":{"label":"Attribute last updated date","description":"Entity last updated time","data_type":"Long","editable":false,"indexed":false}},"relationship_types":{"relationship_last_updated":{"label":"Relationship last updated date","description":"Entity last updated time","data_type":"Long","editable":false,"indexed":false}}},"record_types":{"person":{"label":"Person","description":"The record type for person records.","entity_types":{"person_entity":{"label":"Person Entity","description":"The entity type for person records."}},"attributes":{"birth_date":{"label":"Birth Date","description":"The birth date associated with this person record.","attribute_type":"string","classification":"","cardinality":"LIST","indexed":true,"matching_type":"DATE"},"gender":{"label":"Gender","description":"The gender of the the person associated with this record.","attribute_type":"string","classification":"","cardinality":"LIST","indexed":true,"matching_type":"GENDER"},"primary_residence":{"label":"Primary Residence","description":"Indicates that this address is a primary residence.","attribute_type":"address","classification":"","cardinality":"LIST","indexed":true},"mailing_address":{"label":"Mailing Address","description":"Indicates that this address is a mailing address.","attribute_type":"address","classification":"","cardinality":"LIST","indexed":true},"home_telephone":{"label":"Home Telephone","description":"Indicates that this phone number is for a home telephone.","attribute_type":"telephone","classification":"","cardinality":"LIST","indexed":true},"mobile_telephone":{"label":"Mobile Telephone","description":"Indicates that this phone number is for a mobile telephone.","attribute_type":"telephone","classification":"","cardinality":"LIST","indexed":true},"personal_email":{"label":"Personal Email","description":"Indicates that this email address is a personal email address.","attribute_type":"email","classification":"","cardinality":"LIST","indexed":true},"twitter":{"label":"twitter","description":"Indicates that this social media type is Twitter.","attribute_type":"social_media","classification":"","cardinality":"LIST","indexed":true},"drivers_licence":{"label":"Driver''s Licence","description":"Indicates that this identifier is a driver's license.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"},"passport":{"label":"passport","description":"Indicates that this identifier is a passport.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"},"credit_card":{"label":"Credit Card","description":"Indicates that this identifier is a credit card.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"PAYMENTCARDNUMBER"},"social_insurance_number":{"label":"Social Insurance Number","description":"Indicates that this identifier is a social insurance number.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"},"legal_name":{"label":"Legal Name","description":"Indicates that this name is a legal name.","attribute_type":"person_name","classification":"","cardinality":"LIST","indexed":true},"previous_name":{"label":"Previous Name","description":"Indicates that this name is a previous name.","attribute_type":"person_name","classification":"","cardinality":"LIST","indexed":true}}},"organization":{"label":"Organization","description":"The record type for organization records.","entity_types":{},"attributes":{"business_name":{"label":"Business Name","description":"Indicates that this name is a business name.","attribute_type":"organization_name","classification":"","cardinality":"LIST","indexed":true},"doing_business_as":{"label":"Doing Business As","description":"Indicates that this name is a Doing Business As name.","attribute_type":"organization_name","classification":"","cardinality":"LIST","indexed":true},"abbreviated_name":{"label":"Abbreviated Name","description":"Indicates that this name is an abbreviated name.","attribute_type":"organization_name","classification":"","cardinality":"LIST","indexed":true},"business_address":{"label":"Business Address","description":"Indicates that this address is a business address.","attribute_type":"address","classification":"","cardinality":"LIST","indexed":true},"mailing_address":{"label":"Mailing Address","description":"Indicates that this address is a mailing address.","attribute_type":"address","classification":"","cardinality":"LIST","indexed":true},"business_telephone":{"label":"Business Telephone","description":"Indicates that this phone number is for a business telephone.","attribute_type":"telephone","classification":"","cardinality":"LIST","indexed":true},"business_email":{"label":"Business Email","description":"Indicates that this email address is a business email.","attribute_type":"email","classification":"","cardinality":"LIST","indexed":true},"business_tax_identification":{"label":"Business Tax Identification","description":"Indicates that this identifier is a business tax identification number.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"},"duns":{"label":"DUNS","description":"Indicates that this identifier is a D-U-N-S Number.","attribute_type":"identification","classification":"","cardinality":"LIST","indexed":true,"matching_type":"NATIONALIDENTIFIER"}}}},"attribute_types":{"address":{"label":"Party Address","description":"The address locations associated with a record. Only one address per usage value is allowed. For example, there can only be one mailing address for a contact.","classification":"","matching_types":["ADDRESS"],"fields":{"residence":{"label":"Residence Value","description":"The type of residence for this address, such as home, apartment, or suite.","classification":"","indexed":true},"address_line1":{"label":"Address Line 1","description":"The first line of this address.","classification":"","indexed":true},"address_line2":{"label":"Address Line 2","description":"The second line of this address.","classification":"","indexed":true},"address_line3":{"label":"Address Line 3","description":"The third line of this address.","classification":"","indexed":true},"city":{"label":"City","description":"The city of this address.","classification":"","indexed":true},"zip_postal_code":{"label":"Postal Code","description":"The postal code of this address.","classification":"","indexed":true},"residence_number":{"label":"Residence Number","description":"The residence number of this address.","classification":"","indexed":true},"province_state":{"label":"State/Province Value","description":"The state or province of this address.","classification":"","indexed":true},"county":{"label":"County","description":"The county of this address.","classification":"","indexed":true},"country":{"label":"Country Value","description":"The country of this address.","classification":"","indexed":true},"latitude_degrees":{"label":"Latitude Degrees","description":"The latitude of this address.","classification":"","indexed":true},"longitude_degrees":{"label":"Longitude Degrees","description":"The longitude of this address.","classification":"","indexed":true}}},"telephone":{"label":"Party Contact Method","description":"The ways that an entity can be reached. Some examples include email addresses, phone numbers, and social media. ","classification":"","matching_types":["PHONE"],"fields":{"phone_number":{"label":"Phone Number","description":"The text or number string provided for this contact method. For example, if the contact method type is telephone, then this column contains the digits for the phone number.","classification":"","indexed":true}}},"email":{"label":"Party Email","description":"The ways that an entity can be reached. Some examples include email addresses, phone numbers, and social media. ","classification":"","matching_types":["EMAIL"],"fields":{"email_id":{"label":"Email Id","description":"The text or number string provided for this contact method. For example, if the contact method type is telephone, then this column contains the digits for the phone number.","classification":"","indexed":true}}},"social_media":{"label":"Party Social Media","description":"The ways that an entity can be reached. Some examples include email addresses, phone numbers, and social media. ","classification":"","matching_types":["SOCIALMEDIA"],"fields":{"social_media_handle":{"label":"Social Media Handle","description":"The text or number string provided for this contact method. For example, if the contact method type is telephone, then this column contains the digits for the phone number.","classification":"","indexed":true}}},"identification":{"label":"identification","description":"A unique identifier that can be used to distinguish a party from others.","classification":"","matching_types":["NATIONALIDENTIFIER","PAYMENTCARDNUMBER","OTHERIDENTIFIER"],"fields":{"identification_number":{"label":"Identification Number","description":"The actual alphanumeric identifier. For example, if the identification type indicates a social security number, then this value contains the 9 characters of the social security number.","classification":"","indexed":true}}},"person_name":{"label":"Person Name","description":"Information about a name associated with a person record.","classification":"","matching_types":["PERSONNAME"],"fields":{"generation":{"label":"Generation Value","description":"Identifies familial generational information in the form of a generation type. Examples include The First, The Second, Junior or Senior.","classification":"","indexed":true},"prefix":{"label":"Prefix Value","description":"The name prefix, such as Mr, Mrs, Miss, Dr, and others.","classification":"","indexed":true},"given_name":{"label":"Given Name","description":"The first given name of a person. Commonly known as the first name.","classification":"","indexed":true},"middle_name":{"label":"Middle Name","description":"The second given name of a person. Commonly known as the middle name.","classification":"","indexed":true},"last_name":{"label":"Last Name","description":"The surname or family name of a person. Commonly known as the last name.","classification":"","indexed":true},"suffix":{"label":"suffix","description":"The name suffix, such as Jr, MD, Esq, PhD, and others.","classification":"","indexed":true},"full_name":{"label":"Full name","description":"","classification":"","indexed":true}}},"organization_name":{"label":"Organization Name","description":"Information about a name associated with an organization record.","classification":"","matching_types":["ORGNAME"],"fields":{"name":{"label":"name","description":"The organization name.","classification":"","indexed":true}}},"string":{"label":"Simple attribute","description":"A single field primitive attribute","classification":"","fields":{"value":{"label":"Value","description":"","classification":"","indexed":true}}}},"relationship_types":{"linkage":{"label":"Linkage","label_from_source":"Linked into","label_from_target":"Linked from","description":"This is the built in linkage relationship type the matching engine creates between records and their resolved entities","cardinality":"ONE2MANY","directional":true}}}" 
  • DataModelRelationshipType dataModelRelationshipTypeModel = new DataModelRelationshipType.Builder()
      .label("testString")
      .build();
    DataModelField dataModelFieldModel = new DataModelField.Builder()
      .label("testString")
      .build();
    DataModelAttributeType dataModelAttributeTypeModel = new DataModelAttributeType.Builder()
      .label("testString")
      .fields(new java.util.HashMap<String, DataModelField>() { { put("foo", dataModelFieldModel); } })
      .build();
    DataModelAttribute dataModelAttributeModel = new DataModelAttribute.Builder()
      .label("testString")
      .attributeType("testString")
      .build();
    DataModelRecordType dataModelRecordTypeModel = new DataModelRecordType.Builder()
      .label("testString")
      .attributes(new java.util.HashMap<String, DataModelAttribute>() { { put("foo", dataModelAttributeModel); } })
      .build();
    DataModelSystemProperty dataModelSystemPropertyModel = new DataModelSystemProperty.Builder()
      .label("testString")
      .dataType("testString")
      .build();
    DataModelRelationshipTypeSystemProperties dataModelRelationshipTypeSystemPropertiesModel = new DataModelRelationshipTypeSystemProperties.Builder()
      .relationshipLastUpdated(dataModelSystemPropertyModel)
      .build();
    DataModelAttributeTypeSystemProperties dataModelAttributeTypeSystemPropertiesModel = new DataModelAttributeTypeSystemProperties.Builder()
      .attributeLastUpdated(dataModelSystemPropertyModel)
      .build();
    DataModelRecordTypeSystemProperties dataModelRecordTypeSystemPropertiesModel = new DataModelRecordTypeSystemProperties.Builder()
      .recordId(dataModelSystemPropertyModel)
      .collectionId(dataModelSystemPropertyModel)
      .recordSource(dataModelSystemPropertyModel)
      .recordLastUpdated(dataModelSystemPropertyModel)
      .recordNumber(dataModelSystemPropertyModel)
      .build();
    DataModelEntityTypeSystemProperties dataModelEntityTypeSystemPropertiesModel = new DataModelEntityTypeSystemProperties.Builder()
      .entityId(dataModelSystemPropertyModel)
      .entityLastUpdated(dataModelSystemPropertyModel)
      .build();
    DataModelSystemProperties dataModelSystemPropertiesModel = new DataModelSystemProperties.Builder()
      .relationshipTypes(dataModelRelationshipTypeSystemPropertiesModel)
      .attributeTypes(dataModelAttributeTypeSystemPropertiesModel)
      .recordTypes(dataModelRecordTypeSystemPropertiesModel)
      .entityTypes(dataModelEntityTypeSystemPropertiesModel)
      .build();
    ReplaceModelDataModelOptions replaceModelDataModelOptions = new ReplaceModelDataModelOptions.Builder()
      .relationshipTypes(new java.util.HashMap<String, DataModelRelationshipType>() { { put("foo", dataModelRelationshipTypeModel); } })
      .attributeTypes(new java.util.HashMap<String, DataModelAttributeType>() { { put("foo", dataModelAttributeTypeModel); } })
      .recordTypes(new java.util.HashMap<String, DataModelRecordType>() { { put("foo", dataModelRecordTypeModel); } })
      .systemProperties(dataModelSystemPropertiesModel)
      .locale("testString")
      .build();
    
    Response<PutDataModel> response = mdmService.replaceModelDataModel(replaceModelDataModelOptions).execute();
    PutDataModel putDataModel = response.getResult();
    
    System.out.println(putDataModel);

Response

Response wrapper object for overwritting data model

Response wrapper object for overwritting data model.

Status Code

  • The data model has been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "draft",
      "flow_id": "41017488",
      "data_model": {
        "locale": "en_us",
        "system_properties": {},
        "record_types": {},
        "attribute_types": {},
        "relationship_types": {}
      }
    }
  • {
      "flow_state": "draft",
      "flow_id": "41017488",
      "data_model": {
        "locale": "en_us",
        "system_properties": {},
        "record_types": {},
        "attribute_types": {},
        "relationship_types": {}
      }
    }

Partially modify data model

  • This service partially modifies the data model for record types and relationship types.
  • Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
  • This service partially modifies the data model for record types and relationship types.
  • Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
PATCH /mdm/v1/data_model
ServiceCall<PutDataModel> updateModelDataModel(UpdateModelDataModelOptions updateModelDataModelOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the UpdateModelDataModelOptions.Builder to create a UpdateModelDataModelOptions object that contains the parameter values for the updateModelDataModel method.

Query Parameters

  • The cloud resource name of the service.

Collection of record and relationship types definition

The updateModelDataModel options.

  • curl -X PATCH --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/data_model?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"attribute_types":{"third_string":{"label":"Second complex attribute","description":"A single field complex attribute","classification":"","fields":{"value":{"label":"Value","description":"","classification":"","indexed":true}}}}}" 
  • DataModelRelationshipType dataModelRelationshipTypeModel = new DataModelRelationshipType.Builder()
      .label("testString")
      .build();
    DataModelField dataModelFieldModel = new DataModelField.Builder()
      .label("testString")
      .build();
    DataModelAttributeType dataModelAttributeTypeModel = new DataModelAttributeType.Builder()
      .label("testString")
      .fields(new java.util.HashMap<String, DataModelField>() { { put("foo", dataModelFieldModel); } })
      .build();
    DataModelAttribute dataModelAttributeModel = new DataModelAttribute.Builder()
      .label("testString")
      .attributeType("testString")
      .build();
    DataModelRecordType dataModelRecordTypeModel = new DataModelRecordType.Builder()
      .label("testString")
      .attributes(new java.util.HashMap<String, DataModelAttribute>() { { put("foo", dataModelAttributeModel); } })
      .build();
    DataModelSystemProperty dataModelSystemPropertyModel = new DataModelSystemProperty.Builder()
      .label("testString")
      .dataType("testString")
      .build();
    DataModelRelationshipTypeSystemProperties dataModelRelationshipTypeSystemPropertiesModel = new DataModelRelationshipTypeSystemProperties.Builder()
      .relationshipLastUpdated(dataModelSystemPropertyModel)
      .build();
    DataModelAttributeTypeSystemProperties dataModelAttributeTypeSystemPropertiesModel = new DataModelAttributeTypeSystemProperties.Builder()
      .attributeLastUpdated(dataModelSystemPropertyModel)
      .build();
    DataModelRecordTypeSystemProperties dataModelRecordTypeSystemPropertiesModel = new DataModelRecordTypeSystemProperties.Builder()
      .recordId(dataModelSystemPropertyModel)
      .collectionId(dataModelSystemPropertyModel)
      .recordSource(dataModelSystemPropertyModel)
      .recordLastUpdated(dataModelSystemPropertyModel)
      .recordNumber(dataModelSystemPropertyModel)
      .build();
    DataModelEntityTypeSystemProperties dataModelEntityTypeSystemPropertiesModel = new DataModelEntityTypeSystemProperties.Builder()
      .entityId(dataModelSystemPropertyModel)
      .entityLastUpdated(dataModelSystemPropertyModel)
      .build();
    DataModelSystemProperties dataModelSystemPropertiesModel = new DataModelSystemProperties.Builder()
      .relationshipTypes(dataModelRelationshipTypeSystemPropertiesModel)
      .attributeTypes(dataModelAttributeTypeSystemPropertiesModel)
      .recordTypes(dataModelRecordTypeSystemPropertiesModel)
      .entityTypes(dataModelEntityTypeSystemPropertiesModel)
      .build();
    UpdateModelDataModelOptions updateModelDataModelOptions = new UpdateModelDataModelOptions.Builder()
      .relationshipTypes(new java.util.HashMap<String, DataModelRelationshipType>() { { put("foo", dataModelRelationshipTypeModel); } })
      .attributeTypes(new java.util.HashMap<String, DataModelAttributeType>() { { put("foo", dataModelAttributeTypeModel); } })
      .recordTypes(new java.util.HashMap<String, DataModelRecordType>() { { put("foo", dataModelRecordTypeModel); } })
      .systemProperties(dataModelSystemPropertiesModel)
      .locale("testString")
      .build();
    
    Response<PutDataModel> response = mdmService.updateModelDataModel(updateModelDataModelOptions).execute();
    PutDataModel putDataModel = response.getResult();
    
    System.out.println(putDataModel);

Response

Response wrapper object for overwritting data model

Response wrapper object for overwritting data model.

Status Code

  • The data model has been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_id": "135208",
      "data_model": {}
    }
  • {
      "flow_state": "published",
      "flow_id": "135208",
      "data_model": {}
    }

Retrieve the latest workflow information

  • This service retrieves the latest workflow information of a previously requested change to data model.
  • An update to data model is only finalized when its corresponding workflow is approved by the authorized approvers.
  • This capability is primarily built for internal approval processes.
  • This service retrieves the latest workflow information of a previously requested change to data model.
  • An update to data model is only finalized when its corresponding workflow is approved by the authorized approvers.
  • This capability is primarily built for internal approval processes.
GET /mdm/v1/flows/{flow_id}
ServiceCall<Flow> getModelFlow(GetModelFlowOptions getModelFlowOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the GetModelFlowOptions.Builder to create a GetModelFlowOptions object that contains the parameter values for the getModelFlow method.

Path Parameters

  • The unique identifier of a workflow as assigned by the system

Query Parameters

  • The cloud resource name of the service.

The getModelFlow options.

  • GetModelFlowOptions getModelFlowOptions = new GetModelFlowOptions.Builder()
      .flowId("testString")
      .build();
    
    Response<Flow> response = mdmService.getModelFlow(getModelFlowOptions).execute();
    Flow flow = response.getResult();
    
    System.out.println(flow);

Response

Response wrapper object for retrieving a flow

Response wrapper object for retrieving a flow.

Status Code

  • The flow status has been successfully retrieved

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_type": "data_model",
      "rejections": [],
      "flow_id": "192696",
      "approvals": [],
      "active": false
    }
  • {
      "flow_state": "published",
      "flow_type": "data_model",
      "rejections": [],
      "flow_id": "192696",
      "approvals": [],
      "active": false
    }

Approve or Reject an active workflow

  • This service is used to approve or reject an active workflow specified by the supplied flow_id.
  • An update to data model is only finalized when its corresponding workflow is approved by the authorized approvers.
  • This capability is primarily built for internal approval processes.
  • This service is used to approve or reject an active workflow specified by the supplied flow_id.
  • An update to data model is only finalized when its corresponding workflow is approved by the authorized approvers.
  • This capability is primarily built for internal approval processes.
PATCH /mdm/v1/flows/{flow_id}
ServiceCall<Flow> updateModelFlow(UpdateModelFlowOptions updateModelFlowOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the UpdateModelFlowOptions.Builder to create a UpdateModelFlowOptions object that contains the parameter values for the updateModelFlow method.

Path Parameters

  • The unique identifier of a workflow as assigned by the system

Query Parameters

  • The cloud resource name of the service.

Request wrapper object for updating a flow

The updateModelFlow options.

  • UpdateModelFlowOptions updateModelFlowOptions = new UpdateModelFlowOptions.Builder()
      .flowId("testString")
      .approverName("testString")
      .action("testString")
      .build();
    
    Response<Flow> response = mdmService.updateModelFlow(updateModelFlowOptions).execute();
    Flow flow = response.getResult();
    
    System.out.println(flow);

Response

Response wrapper object for retrieving a flow

Response wrapper object for retrieving a flow.

Status Code

  • The flow has been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_type": "data_model",
      "rejections": [],
      "flow_id": "192696",
      "approvals": [],
      "active": false
    }
  • {
      "flow_state": "published",
      "flow_type": "data_model",
      "rejections": [],
      "flow_id": "192696",
      "approvals": [],
      "active": false
    }

Retrieve the configured metadata

  • This service retrieves the configured metadata for a provisioned instance of system.
  • The onboarding process of a new subscriber to Master Data Management On Cloud depends on capturing and maintaining certain configured metadata for their provisioned instance.
  • Instance Metadata is a json document that primarily contains the catalog and project information in Watson Knowledge Catalog and the details of Cloud Object Storage if provided by the user.
  • This service retrieves the configured metadata for a provisioned instance of system.
  • The onboarding process of a new subscriber to Master Data Management On Cloud depends on capturing and maintaining certain configured metadata for their provisioned instance.
  • Instance Metadata is a json document that primarily contains the catalog and project information in Watson Knowledge Catalog and the details of Cloud Object Storage if provided by the user.
GET /mdm/v1/instance_metadata
ServiceCall<InstanceMetadataResponse> getModelInstanceMetadata(GetModelInstanceMetadataOptions getModelInstanceMetadataOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the GetModelInstanceMetadataOptions.Builder to create a GetModelInstanceMetadataOptions object that contains the parameter values for the getModelInstanceMetadata method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/instance_metadata?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetModelInstanceMetadataOptions getModelInstanceMetadataOptions = new GetModelInstanceMetadataOptions();
    
    Response<InstanceMetadataResponse> response = mdmService.getModelInstanceMetadata(getModelInstanceMetadataOptions).execute();
    InstanceMetadataResponse instanceMetadataResponse = response.getResult();
    
    System.out.println(instanceMetadataResponse);

Response

Wrapper object for instance metadata response

Wrapper object for instance metadata response.

Status Code

  • The instance metadata has been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "label": "test instance",
      "catalogs": [
        {
          "catalog_instance": "wkc instance",
          "catalog_id": "123_catalog"
        }
      ],
      "projects": [
        {
          "project_id": "123_project",
          "project_name": "test project",
          "asset_id": "123_asset"
        }
      ],
      "job_project_id": "123"
    }
  • {
      "label": "test instance",
      "catalogs": [
        {
          "catalog_instance": "wkc instance",
          "catalog_id": "123_catalog"
        }
      ],
      "projects": [
        {
          "project_id": "123_project",
          "project_name": "test project",
          "asset_id": "123_asset"
        }
      ],
      "job_project_id": "123"
    }

Overwrite the configured metadata

  • This service overwrites the configured metadata for a provisioned instance of system.
  • The onboarding process of a new subscriber to Master Data Management On Cloud depends on capturing and maintaining certain configured metadata for their provisioned instance.
  • Instance Metadata is a json document that primarily contains the catalog and project information in Watson Knowledge Catalog and the details of Cloud Object Storage if provided by the user.
  • This service overwrites the configured metadata for a provisioned instance of system.
  • The onboarding process of a new subscriber to Master Data Management On Cloud depends on capturing and maintaining certain configured metadata for their provisioned instance.
  • Instance Metadata is a json document that primarily contains the catalog and project information in Watson Knowledge Catalog and the details of Cloud Object Storage if provided by the user.
PUT /mdm/v1/instance_metadata
ServiceCall<InstanceMetadataResponse> replaceModelInstanceMetadata(ReplaceModelInstanceMetadataOptions replaceModelInstanceMetadataOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.manage

Request

Use the ReplaceModelInstanceMetadataOptions.Builder to create a ReplaceModelInstanceMetadataOptions object that contains the parameter values for the replaceModelInstanceMetadata method.

Query Parameters

  • The cloud resource name of the service.

Wrapper object for instance metadata

The replaceModelInstanceMetadata options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/instance_metadata?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"label":"test instance","catalogs":[{"catalog_instance":"wkc instance","catalog_id":"123_catalog"}],"projects":[{"project_id":"123_project","project_name":"test project","asset_id":"123_asset"}]}" 
  • ReplaceModelInstanceMetadataOptions replaceModelInstanceMetadataOptions = new ReplaceModelInstanceMetadataOptions.Builder()
      .build();
    
    Response<InstanceMetadataResponse> response = mdmService.replaceModelInstanceMetadata(replaceModelInstanceMetadataOptions).execute();
    InstanceMetadataResponse instanceMetadataResponse = response.getResult();
    
    System.out.println(instanceMetadataResponse);

Response

Wrapper object for instance metadata response

Wrapper object for instance metadata response.

Status Code

  • The instance metadata has been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "label": "test instance",
      "catalogs": [
        {
          "catalog_instance": "wkc instance",
          "catalog_id": "123_catalog"
        }
      ],
      "projects": [
        {
          "project_id": "123_project",
          "project_name": "test project",
          "asset_id": "123_asset"
        }
      ],
      "job_project_id": "123"
    }
  • {
      "label": "test instance",
      "catalogs": [
        {
          "catalog_instance": "wkc instance",
          "catalog_id": "123_catalog"
        }
      ],
      "projects": [
        {
          "project_id": "123_project",
          "project_name": "test project",
          "asset_id": "123_asset"
        }
      ],
      "job_project_id": "123"
    }

Retrieve a summary of all equivalency criteria

  • This service retrieves the list of resource names of all existing equivalency criteria.
  • A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
  • A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
  • This service retrieves the list of resource names of all existing equivalency criteria.
  • A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
  • A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
GET /mdm/v1/map_resources
ServiceCall<MapResourceNames> listModelMapResources(ListModelMapResourcesOptions listModelMapResourcesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the ListModelMapResourcesOptions.Builder to create a ListModelMapResourcesOptions object that contains the parameter values for the listModelMapResources method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/map_resources?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListModelMapResourcesOptions listModelMapResourcesOptions = new ListModelMapResourcesOptions();
    
    Response<MapResourceNames> response = mdmService.listModelMapResources(listModelMapResourcesOptions).execute();
    MapResourceNames mapResourceNames = response.getResult();
    
    System.out.println(mapResourceNames);

Response

Response wrapper object for all map resource names

Response wrapper object for all map resource names.

Status Code

  • The resources have been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "map_resource_names": [
        "person_map_address_address_line_equivalents",
        "person_map_address_country_equivalents",
        "org_map_address_province_equivalents",
        "org_map_character_phone",
        "person_map_address_tokens_city",
        "org_map_address_province_state",
        "person_map_address_tokens_latitude",
        "org_map_address_sub_division_equivalents",
        "person_map_address_tokens_province",
        "person_map_address_tokens_street_number_name_direction_type",
        "org_map_address_tokens_longtitude"
      ]
    }
  • {
      "map_resource_names": [
        "person_map_address_address_line_equivalents",
        "person_map_address_country_equivalents",
        "org_map_address_province_equivalents",
        "org_map_character_phone",
        "person_map_address_tokens_city",
        "org_map_address_province_state",
        "person_map_address_tokens_latitude",
        "org_map_address_sub_division_equivalents",
        "person_map_address_tokens_province",
        "person_map_address_tokens_street_number_name_direction_type",
        "org_map_address_tokens_longtitude"
      ]
    }

Retrieve details of equivalency criteria

  • This service retrieves all existing equivalency criteria for a given resource name.
  • A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
  • A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
  • This service retrieves all existing equivalency criteria for a given resource name.
  • A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
  • A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
GET /mdm/v1/map_resources/{resource_name}
ServiceCall<Map<String, List<MapResourceEntry>>> getModelMapResource(GetModelMapResourceOptions getModelMapResourceOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the GetModelMapResourceOptions.Builder to create a GetModelMapResourceOptions object that contains the parameter values for the getModelMapResource method.

Path Parameters

  • The unique identifier for the configuration for the equivalent words

Query Parameters

  • The cloud resource name of the service.

The getModelMapResource options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/map_resources/person_map_address_country?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetModelMapResourceOptions getModelMapResourceOptions = new GetModelMapResourceOptions.Builder()
      .resourceName("testString")
      .build();
    
    Response<Map<String, List<MapResourceEntry>>> response = mdmService.getModelMapResource(getModelMapResourceOptions).execute();
    Map<String, List<MapResourceEntry>> mapStringListMapResourceEntry = response.getResult();
    
    System.out.println(mapStringListMapResourceEntry);

Response

Response type: Map<String, List<MapResourceEntry>>

A single map resource used for matching algorithm like for handling equivalent values. Map resource key must be lower snake case (i.e. nickname)

Status Code

  • The resources have been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The resources requested do not exist.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "country": [
        {
          "category": "",
          "key": "USA",
          "values": [
            "UNITED STATES",
            "UNITED STATES OF AMERICA",
            "US"
          ],
          "regex": []
        },
        {
          "category": "",
          "key": "UK",
          "values": [
            "GREAT BRITAIN",
            "UNITED KINGDOM"
          ],
          "regex": []
        }
      ]
    }
  • {
      "country": [
        {
          "category": "",
          "key": "USA",
          "values": [
            "UNITED STATES",
            "UNITED STATES OF AMERICA",
            "US"
          ],
          "regex": []
        },
        {
          "category": "",
          "key": "UK",
          "values": [
            "GREAT BRITAIN",
            "UNITED KINGDOM"
          ],
          "regex": []
        }
      ]
    }

Overwrite equivalency criteria

  • This service completely overwrites equivalency criteria for a given resource name.
  • A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
  • A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
  • This service completely overwrites equivalency criteria for a given resource name.
  • A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
  • A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
PUT /mdm/v1/map_resources/{resource_name}
ServiceCall<PutMapResources> replaceModelMapResource(ReplaceModelMapResourceOptions replaceModelMapResourceOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the ReplaceModelMapResourceOptions.Builder to create a ReplaceModelMapResourceOptions object that contains the parameter values for the replaceModelMapResource method.

Path Parameters

  • The unique identifier for the configuration for the equivalent words

Query Parameters

  • The cloud resource name of the service.

A single map resource used for matching algorithm like for handling equivalent values. Map resource key must be lower snake case (i.e. nickname)

The replaceModelMapResource options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/map_resources/person_map_address_country?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" --data "{"country":[{"category":"","key":"USA","values":["UNITED STATES","UNITED STATES OF AMERICA","US"],"regex":[]},{"category":"","key":"UK","values":["GREAT BRITAIN","UNITED KINGDOM"],"regex":[]}]}" 
  • MapResourceEntry mapResourceEntryModel = new MapResourceEntry.Builder()
      .regex(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .values(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .build();
    ReplaceModelMapResourceOptions replaceModelMapResourceOptions = new ReplaceModelMapResourceOptions.Builder()
      .resourceName("testString")
      .requestBody(new java.util.HashMap<String, List<MapResourceEntry>>() { { put("foo", new java.util.ArrayList<MapResourceEntry>(java.util.Arrays.asList(mapResourceEntryModel))); } })
      .build();
    
    Response<PutMapResources> response = mdmService.replaceModelMapResource(replaceModelMapResourceOptions).execute();
    PutMapResources putMapResources = response.getResult();
    
    System.out.println(putMapResources);

Response

Response wrapper object for overwriting map resource

Response wrapper object for overwriting map resource.

Status Code

  • The resources have been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_id": "172056",
      "map_resources": {}
    }
  • {
      "flow_state": "published",
      "flow_id": "172056",
      "map_resources": {}
    }

Retrieve details of anonymous words

  • This service retrieves the details of all anonymous words for a given resource name.
  • A Set Resource is a json document that generally contains grouped list of values of interest.
  • A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
  • This service retrieves the details of all anonymous words for a given resource name.
  • A Set Resource is a json document that generally contains grouped list of values of interest.
  • A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
GET /mdm/v1/set_resources/{resource_name}
ServiceCall<Map<String, SetResourceEntry>> getModelSetResource(GetModelSetResourceOptions getModelSetResourceOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the GetModelSetResourceOptions.Builder to create a GetModelSetResourceOptions object that contains the parameter values for the getModelSetResource method.

Path Parameters

  • he unique identifier for the configuration for the anonymous set of words

Query Parameters

  • The cloud resource name of the service.

The getModelSetResource options.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/set_resources/person_set_character_date?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • GetModelSetResourceOptions getModelSetResourceOptions = new GetModelSetResourceOptions.Builder()
      .resourceName("testString")
      .build();
    
    Response<Map<String, SetResourceEntry>> response = mdmService.getModelSetResource(getModelSetResourceOptions).execute();
    Map<String, SetResourceEntry> mapStringSetResourceEntry = response.getResult();
    
    System.out.println(mapStringSetResourceEntry);

Response

Response type: Map<String, SetResourceEntry>

A single set resource used for matching algorithm like for handling anonymous values. Set resource key must be lower snake case (i.e. anonymous)

Status Code

  • The resources have been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "date": {
        "values": [
          "-"
        ],
        "regex": []
      }
    }
  • {
      "date": {
        "values": [
          "-"
        ],
        "regex": []
      }
    }

Overwrite anonymous words

  • This service completely overwrites the anonymous words for a given resource name.
  • A Set Resource is a json document that generally contains grouped list of values of interest.
  • A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
  • This service completely overwrites the anonymous words for a given resource name.
  • A Set Resource is a json document that generally contains grouped list of values of interest.
  • A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
PUT /mdm/v1/set_resources/{resource_name}
ServiceCall<PutSetResources> replaceModelSetResource(ReplaceModelSetResourceOptions replaceModelSetResourceOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.write

Request

Use the ReplaceModelSetResourceOptions.Builder to create a ReplaceModelSetResourceOptions object that contains the parameter values for the replaceModelSetResource method.

Path Parameters

  • he unique identifier for the configuration for the anonymous set of words

Query Parameters

  • The cloud resource name of the service.

A single set resource used for matching algorithm like for handling anonymous values. Set resource key must be lower snake case (i.e. anonymous)

The replaceModelSetResource options.

  • curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/set_resources/person_set_character_date?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::&resource_name=test" --data "{"date":{"values":["-"],"regex":[]}}" 
  • SetResourceEntry setResourceEntryModel = new SetResourceEntry.Builder()
      .regex(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .values(new java.util.ArrayList<String>(java.util.Arrays.asList("testString")))
      .build();
    ReplaceModelSetResourceOptions replaceModelSetResourceOptions = new ReplaceModelSetResourceOptions.Builder()
      .resourceName("testString")
      .requestBody(new java.util.HashMap<String, SetResourceEntry>() { { put("foo", setResourceEntryModel); } })
      .build();
    
    Response<PutSetResources> response = mdmService.replaceModelSetResource(replaceModelSetResourceOptions).execute();
    PutSetResources putSetResources = response.getResult();
    
    System.out.println(putSetResources);

Response

Response wrapper object for overwriting set resource

Response wrapper object for overwriting set resource.

Status Code

  • The resources have been successfully modified.

  • The request cannot be processed due to user error.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "flow_state": "published",
      "flow_id": "172056",
      "set_resources": {
        "date": {
          "regex": [],
          "values": [
            "-"
          ]
        }
      }
    }
  • {
      "flow_state": "published",
      "flow_id": "172056",
      "set_resources": {
        "date": {
          "regex": [],
          "values": [
            "-"
          ]
        }
      }
    }

Retrieve a summary of all anonymous words

  • This service retrieves a summary of resource names for all anonymous words.
  • A Set Resource is a json document that generally contains grouped list of values of interest.
  • A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
  • This service retrieves a summary of resource names for all anonymous words.
  • A Set Resource is a json document that generally contains grouped list of values of interest.
  • A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
GET /mdm/v1/set_resources
ServiceCall<SetResourceNames> listModelSetResources(ListModelSetResourcesOptions listModelSetResourcesOptions)

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action. You can check your access by going to Users > User > Access.

  • mdm-oc.model.read

Request

Use the ListModelSetResourcesOptions.Builder to create a ListModelSetResourcesOptions object that contains the parameter values for the listModelSetResources method.

Query Parameters

  • The cloud resource name of the service.

  • curl -X GET --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/v1/set_resources?crn=crn:v1:bluemix:public:mdm-oc:us-south:a/122c69f0e8296804c9eebf4dbd4530e4:f4d408e3-25ec-4d48-87fe-ac82018c3b32::" 
  • ListModelSetResourcesOptions listModelSetResourcesOptions = new ListModelSetResourcesOptions();
    
    Response<SetResourceNames> response = mdmService.listModelSetResources(listModelSetResourcesOptions).execute();
    SetResourceNames setResourceNames = response.getResult();
    
    System.out.println(setResourceNames);

Response

Response object wrapper for all set resource names

Response object wrapper for all set resource names.

Status Code

  • The resources have been successfully retrieved.

  • The request cannot be processed due to authentication error.

  • The request cannot be processed due to insufficient permission error.

  • The request cannot be processed due to resource not found.

  • The request cannot be processed due to an unexpected system error.

Example responses
  • {
      "set_resource_names": [
        "org_set_phone_anon_phone",
        "person_set_address_postal_code",
        "person_set_identifier_corp_taxid",
        "person_set_character_date",
        "org_set_character_date",
        "person_set_phone_anon_phone",
        "org_set_identifier_anonymous",
        "org_set_name_bkt_anon",
        "person_set_identifier_anonymous",
        "person_set_identifier_duns_num",
        "person_set_name_digits",
        "person_set_name_acname",
        "person_set_character_cstop_pxnm"
      ]
    }
  • {
      "set_resource_names": [
        "org_set_phone_anon_phone",
        "person_set_address_postal_code",
        "person_set_identifier_corp_taxid",
        "person_set_character_date",
        "org_set_character_date",
        "person_set_phone_anon_phone",
        "org_set_identifier_anonymous",
        "org_set_name_bkt_anon",
        "person_set_identifier_anonymous",
        "person_set_identifier_duns_num",
        "person_set_name_digits",
        "person_set_name_acname",
        "person_set_character_cstop_pxnm"
      ]
    }