Introduction

IBM Match 360 with Watson (Beta) provides APIs that enable you to connect the IBM Match 360 with Watson service's powerful master data matching capabilities to your systems and processes. IBM Match 360 with Watson (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 with Watson 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 with Watson 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>0.0.8</version>
</dependency>

Gradle

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

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 with Watson 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 with Watson 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 with Watson 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 with Watson 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 with Watson 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.

Gets the data model present in configuration space.

Gets the data model present in configuration space.

Gets the data model present in configuration space.

GET /mdm/v1/config_data_model
(mdm *MdmV1) GetConfiguratorConfigDataModel(getConfiguratorConfigDataModelOptions *GetConfiguratorConfigDataModelOptions) (result *ConfigDataModel, response *core.DetailedResponse, err error)
(mdm *MdmV1) GetConfiguratorConfigDataModelWithContext(ctx context.Context, getConfiguratorConfigDataModelOptions *GetConfiguratorConfigDataModelOptions) (result *ConfigDataModel, response *core.DetailedResponse, err error)
ServiceCall<ConfigDataModel> getConfiguratorConfigDataModel(GetConfiguratorConfigDataModelOptions getConfiguratorConfigDataModelOptions)
getConfiguratorConfigDataModel(params)
get_configurator_config_data_model(self,
        **kwargs
    ) -> DetailedResponse

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 > name > Access policies.

  • mdm-oc.configurator.read

Request

Instantiate the GetConfiguratorConfigDataModelOptions struct and set the fields to provide parameter values for the GetConfiguratorConfigDataModel method.

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.

WithContext method only

parameters

    parameters

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

      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.

      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.

      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.

      Replaces the config data model present in configuration space.

      Replaces the config data model present in configuration space.

      Replaces the config data model present in configuration space.

      PUT /mdm/v1/config_data_model
      (mdm *MdmV1) ReplaceConfiguratorConfigDataModel(replaceConfiguratorConfigDataModelOptions *ReplaceConfiguratorConfigDataModelOptions) (result *ConfigDataModel, response *core.DetailedResponse, err error)
      (mdm *MdmV1) ReplaceConfiguratorConfigDataModelWithContext(ctx context.Context, replaceConfiguratorConfigDataModelOptions *ReplaceConfiguratorConfigDataModelOptions) (result *ConfigDataModel, response *core.DetailedResponse, err error)
      ServiceCall<ConfigDataModel> replaceConfiguratorConfigDataModel(ReplaceConfiguratorConfigDataModelOptions replaceConfiguratorConfigDataModelOptions)
      replaceConfiguratorConfigDataModel(params)
      replace_configurator_config_data_model(self,
              *,
              relationship_types: dict = None,
              attribute_types: dict = None,
              record_types: dict = None,
              locale: str = None,
              system_properties: dict = None,
              **kwargs
          ) -> DetailedResponse

      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 > name > Access policies.

      • mdm-oc.configurator.manage

      Request

      Instantiate the ReplaceConfiguratorConfigDataModelOptions struct and set the fields to provide parameter values for the ReplaceConfiguratorConfigDataModel method.

      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

      WithContext method only

      The ReplaceConfiguratorConfigDataModel options.

      The replaceConfiguratorConfigDataModel options.

      parameters

      • The collection of data relationship types.

      • Collection of data attribute types.

      • Collection of record data types.

        Examples:
        value
        _source
        _lines
        _html
      • The locale of the data model.

      • Collection of system properties.

      parameters

      • The collection of data relationship types.

      • Collection of data attribute types.

      • Collection of record data types.

        Examples:
        value
        _source
        _lines
        _html
      • The locale of the data model.

      • Collection of system properties.

      • 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}}}" 

      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.

      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.

      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.

      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.

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

      GET /mdm/v1/config_data_model/attributes
      (mdm *MdmV1) GetConfiguratorConfigDataModelAttributes(getConfiguratorConfigDataModelAttributesOptions *GetConfiguratorConfigDataModelAttributesOptions) (result *ConfigDataModelAttributes, response *core.DetailedResponse, err error)
      (mdm *MdmV1) GetConfiguratorConfigDataModelAttributesWithContext(ctx context.Context, getConfiguratorConfigDataModelAttributesOptions *GetConfiguratorConfigDataModelAttributesOptions) (result *ConfigDataModelAttributes, response *core.DetailedResponse, err error)
      ServiceCall<ConfigDataModelAttributes> getConfiguratorConfigDataModelAttributes(GetConfiguratorConfigDataModelAttributesOptions getConfiguratorConfigDataModelAttributesOptions)
      getConfiguratorConfigDataModelAttributes(params)
      get_configurator_config_data_model_attributes(self,
              type_category: str,
              type_name: str,
              **kwargs
          ) -> DetailedResponse

      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 > name > Access policies.

      • mdm-oc.configurator.read

      Request

      Instantiate the GetConfiguratorConfigDataModelAttributesOptions struct and set the fields to provide parameter values for the GetConfiguratorConfigDataModelAttributes method.

      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

      WithContext method only

      The GetConfiguratorConfigDataModelAttributes options.

      The getConfiguratorConfigDataModelAttributes options.

      parameters

      • The type category of the data model attributes.

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

      parameters

      • The type category of the data model attributes.

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

      • 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.

      The Config Data Model attributes for a record type.

      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.

      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.

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

      GET /mdm/v1/match_statistics
      (mdm *MdmV1) GetConfiguratorMatchingStatistics(getConfiguratorMatchingStatisticsOptions *GetConfiguratorMatchingStatisticsOptions) (result *MatchStatistics, response *core.DetailedResponse, err error)
      (mdm *MdmV1) GetConfiguratorMatchingStatisticsWithContext(ctx context.Context, getConfiguratorMatchingStatisticsOptions *GetConfiguratorMatchingStatisticsOptions) (result *MatchStatistics, response *core.DetailedResponse, err error)
      ServiceCall<MatchStatistics> getConfiguratorMatchingStatistics(GetConfiguratorMatchingStatisticsOptions getConfiguratorMatchingStatisticsOptions)
      getConfiguratorMatchingStatistics(params)
      get_configurator_matching_statistics(self,
              record_type: str,
              entity_type: str,
              **kwargs
          ) -> DetailedResponse

      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 > name > Access policies.

      • mdm-oc.configurator.read

      Request

      Instantiate the GetConfiguratorMatchingStatisticsOptions struct and set the fields to provide parameter values for the GetConfiguratorMatchingStatistics method.

      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

      WithContext method only

      The GetConfiguratorMatchingStatistics options.

      The getConfiguratorMatchingStatistics options.

      parameters

      • Record type of match statistics.

        Examples:
        value
        _source
        _lines
        _html
      • Entity type of match statistics.

        Examples:
        value
        _source
        _lines
        _html

      parameters

      • Record type of match statistics.

        Examples:
        value
        _source
        _lines
        _html
      • Entity type of match statistics.

        Examples:
        value
        _source
        _lines
        _html
      • 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::" 

      Response

      The Statistics of the match process results.

      The Statistics of the match process results.

      The Statistics of the match process results.

      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
          }
        }

      Get configurator process

      Gets the process details for the specified process name.

      Gets the process details for the specified process name.

      Gets the process details for the specified process name.

      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}
      (mdm *MdmV1) GetConfiguratorProcess(getConfiguratorProcessOptions *GetConfiguratorProcessOptions) (result *ProcessModelStatus, response *core.DetailedResponse, err error)
      (mdm *MdmV1) GetConfiguratorProcessWithContext(ctx context.Context, getConfiguratorProcessOptions *GetConfiguratorProcessOptions) (result *ProcessModelStatus, response *core.DetailedResponse, err error)
      ServiceCall<ProcessModelStatus> getConfiguratorProcess(GetConfiguratorProcessOptions getConfiguratorProcessOptions)
      getConfiguratorProcess(params)
      get_configurator_process(self,
              process_name: str,
              *,
              record_type: str = None,
              entity_type: str = None,
              **kwargs
          ) -> DetailedResponse

      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 > name > Access policies.

      • mdm-oc.configurator.manage

      Request

      Instantiate the GetConfiguratorProcessOptions struct and set the fields to provide parameter values for the GetConfiguratorProcess method.

      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

      WithContext method only

      The GetConfiguratorProcess options.

      The getConfiguratorProcess options.

      parameters

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

      • Unique record type associated with the process.

        Examples:
        value
        _source
        _lines
        _html
      • Unique entity type associated with the process.

        Examples:
        value
        _source
        _lines
        _html

      parameters

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

      • Unique record type associated with the process.

        Examples:
        value
        _source
        _lines
        _html
      • Unique entity type associated with the process.

        Examples:
        value
        _source
        _lines
        _html
      • 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::" 

      Response

      Details of the Process.

      Details of the Process.

      Details of the Process.

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

      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.

      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.

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

      GET /mdm/v1/configuration_metadata/processes
      (mdm *MdmV1) ListConfiguratorProcesses(listConfiguratorProcessesOptions *ListConfiguratorProcessesOptions) (result *ProcessList, response *core.DetailedResponse, err error)
      (mdm *MdmV1) ListConfiguratorProcessesWithContext(ctx context.Context, listConfiguratorProcessesOptions *ListConfiguratorProcessesOptions) (result *ProcessList, response *core.DetailedResponse, err error)
      ServiceCall<ProcessList> listConfiguratorProcesses(ListConfiguratorProcessesOptions listConfiguratorProcessesOptions)
      listConfiguratorProcesses(params)
      list_configurator_processes(self,
              *,
              status: str = None,
              **kwargs
          ) -> DetailedResponse

      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 > name > Access policies.

      • mdm-oc.configurator.manage

      Request

      Instantiate the ListConfiguratorProcessesOptions struct and set the fields to provide parameter values for the ListConfiguratorProcesses method.

      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

      WithContext method only

      The ListConfiguratorProcesses options.

      The listConfiguratorProcesses options.

      parameters

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

        Examples:
        value
        _source
        _lines
        _html

      parameters

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

        Examples:
        value
        _source
        _lines
        _html
      • 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::" 

      Response

      Response wrapper with the list of Processes.

      Response wrapper with the list of Processes.

      Response wrapper with the list of Processes.

      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.

      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.

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

      POST /mdm/v1/configuration_metadata/processes
      (mdm *MdmV1) CreateConfiguratorProcess(createConfiguratorProcessOptions *CreateConfiguratorProcessOptions) (result *ProcessStatus, response *core.DetailedResponse, err error)
      (mdm *MdmV1) CreateConfiguratorProcessWithContext(ctx context.Context, createConfiguratorProcessOptions *CreateConfiguratorProcessOptions) (result *ProcessStatus, response *core.DetailedResponse, err error)
      ServiceCall<ProcessStatus> createConfiguratorProcess(CreateConfiguratorProcessOptions createConfiguratorProcessOptions)
      createConfiguratorProcess(params)
      create_configurator_process(self,
              process_name: str,
              *,
              record_type: str = None,
              do_force_matching: bool = None,
              asset_ids: str = None,
              initiator: str = None,
              do_derive: bool = None,
              asset_source_details: 'ProcessRequestAssetSourceDetails' = None,
              entity_type: str = None,
              **kwargs
          ) -> DetailedResponse

      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 > name > Access policies.

      • mdm-oc.configurator.manage

      Request

      Instantiate the CreateConfiguratorProcessOptions struct and set the fields to provide parameter values for the CreateConfiguratorProcess method.

      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

      WithContext method only

      The CreateConfiguratorProcess options.

      The createConfiguratorProcess options.

      parameters

      • The name of the Process to be created.

        Examples:
        value
        _source
        _lines
        _html
      • The record type which needs to be processed for match and publish_data processes.

      • Flag to enable/disable force derive/match operations.

      • Comma separated asset ids of assets to be processed by delete_assets and publish_data processes.

      • User identifier of the initiator of processes. This identifier will be available in the headers of the messaging queue events generated by the initiated process.

        Examples:
        value
        _source
        _lines
        _html
      • Flag to enable/disable derive operation for match process.

      • The asset source details for the data asset to be published for publish_data process.

      • The entity type which needs to be processed for match process.

      parameters

      • The name of the Process to be created.

        Examples:
        value
        _source
        _lines
        _html
      • The record type which needs to be processed for match and publish_data processes.

      • Flag to enable/disable force derive/match operations.

      • Comma separated asset ids of assets to be processed by delete_assets and publish_data processes.

      • User identifier of the initiator of processes. This identifier will be available in the headers of the messaging queue events generated by the initiated process.

        Examples:
        value
        _source
        _lines
        _html
      • Flag to enable/disable derive operation for match process.

      • The asset source details for the data asset to be published for publish_data process.

      • The entity type which needs to be processed for match process.

      • 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" }" 

      Response

      Process Status.