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":"