<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://izara.io/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Seagame</id>
	<title>Izara Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://izara.io/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Seagame"/>
	<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php/Special:Contributions/Seagame"/>
	<updated>2026-08-25T05:48:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4621</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4621"/>
		<updated>2026-08-25T02:44:14Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* ObjectSchema | ObjectFieldSchema.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;|&amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;,&lt;br /&gt;
          billalble:true // true || false , required&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;|&amp;quot;none&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;|&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;|&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  [&lt;br /&gt;
    {&lt;br /&gt;
      flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
      initiateBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;&lt;br /&gt;
      handleObj: &amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
      statusType: &amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
      triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
      triggerFlowTypes: [&lt;br /&gt;
        //... triggerFlowType&lt;br /&gt;
      ],&lt;br /&gt;
&lt;br /&gt;
      // statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
      objType: {},&lt;br /&gt;
&lt;br /&gt;
      event: [&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
      bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
      createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
      schedules: [&lt;br /&gt;
        {&lt;br /&gt;
          name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
          description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
          rate: [&amp;quot;rate(1 minute)&amp;quot;,],&lt;br /&gt;
          input: {}&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
&lt;br /&gt;
      outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
      flowSteps: {&lt;br /&gt;
        inTag: { // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
          properties: [], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
          messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
          plugInHooks: [&lt;br /&gt;
            {&lt;br /&gt;
              plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
              objType: {}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          returnValues: {&lt;br /&gt;
            properties: [], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
          },&lt;br /&gt;
&lt;br /&gt;
        },&lt;br /&gt;
        // another flow steps&lt;br /&gt;
        flowStep1: { // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
          properties: [], // reference to stepProperties key&lt;br /&gt;
          messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
          event: [&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
          // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
          // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
          previousSteps: [&lt;br /&gt;
            {&lt;br /&gt;
              sourceType:&amp;quot;ownTopic&amp;quot;, // if from own flow&lt;br /&gt;
              stepName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              sourceType: &amp;quot;extTopic&amp;quot;, // triggered by output from external service&lt;br /&gt;
              serviceTag: &amp;quot;InventoryService&amp;quot;,&lt;br /&gt;
              topic: &amp;quot;ReserveStock_In&amp;quot;,&lt;br /&gt;
              fromStepNames: [&amp;quot;xx&amp;quot;] // which step in this flow sent request to external flow, used to find awaitingStep prefix&lt;br /&gt;
            }            &lt;br /&gt;
          ],&lt;br /&gt;
          nextSteps: [&lt;br /&gt;
            {&lt;br /&gt;
              targetType:&amp;quot;ownTopic&amp;quot;, // if from own flow&lt;br /&gt;
              stepName: &amp;quot;yyy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              targetType: &amp;quot;extTopic&amp;quot;,&lt;br /&gt;
              serviceTag: &amp;quot;InventoryService&amp;quot;,&lt;br /&gt;
              topic: &amp;quot;ReserveStock_In&amp;quot;,&lt;br /&gt;
              toStepNames: [&amp;quot;xx&amp;quot;] // which step in this flow sent request to external flow, used to find awaitingStep prefix&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
&lt;br /&gt;
          plugInHooks: [&lt;br /&gt;
            {&lt;br /&gt;
              plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
              objType: {}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          returnValues: { // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties: [], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
          },&lt;br /&gt;
&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
      stepProperties: { // normalized all stepProperties&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          type: &amp;quot;object&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          childProperties: [&amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid2&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid3&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid4&amp;quot;: {&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          objectField: {&lt;br /&gt;
            objType: {},&lt;br /&gt;
            fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          overwritePropertyName: &amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      stepMessageAttributes: { // normalized all stepMessageAttributes&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid2&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4620</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4620"/>
		<updated>2026-08-24T02:41:27Z</updated>

		<summary type="html">&lt;p&gt;Seagame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;|&amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;,&lt;br /&gt;
          billalble:true // default:true&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;|&amp;quot;none&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;|&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;|&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  [&lt;br /&gt;
    {&lt;br /&gt;
      flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
      initiateBy: &amp;quot;xx&amp;quot;, // &amp;quot;user&amp;quot;|&amp;quot;systemNoUserId&amp;quot;|&amp;quot;systemWithUserId&amp;quot;&lt;br /&gt;
      handleObj: &amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
      statusType: &amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
      triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
      triggerFlowTypes: [&lt;br /&gt;
        //... triggerFlowType&lt;br /&gt;
      ],&lt;br /&gt;
&lt;br /&gt;
      // statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
      objType: {},&lt;br /&gt;
&lt;br /&gt;
      event: [&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
      bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
      createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
      schedules: [&lt;br /&gt;
        {&lt;br /&gt;
          name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
          description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
          rate: [&amp;quot;rate(1 minute)&amp;quot;,],&lt;br /&gt;
          input: {}&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
&lt;br /&gt;
      outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
      flowSteps: {&lt;br /&gt;
        inTag: { // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
          properties: [], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
          messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
          plugInHooks: [&lt;br /&gt;
            {&lt;br /&gt;
              plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
              objType: {}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          returnValues: {&lt;br /&gt;
            properties: [], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
          },&lt;br /&gt;
&lt;br /&gt;
        },&lt;br /&gt;
        // another flow steps&lt;br /&gt;
        flowStep1: { // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
          properties: [], // reference to stepProperties key&lt;br /&gt;
          messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
          event: [&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
          // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
          // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
          previousSteps: [&lt;br /&gt;
            {&lt;br /&gt;
              sourceType:&amp;quot;ownTopic&amp;quot;, // if from own flow&lt;br /&gt;
              stepName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              sourceType: &amp;quot;extTopic&amp;quot;, // triggered by output from external service&lt;br /&gt;
              serviceTag: &amp;quot;InventoryService&amp;quot;,&lt;br /&gt;
              topic: &amp;quot;ReserveStock_In&amp;quot;,&lt;br /&gt;
              fromStepNames: [&amp;quot;xx&amp;quot;] // which step in this flow sent request to external flow, used to find awaitingStep prefix&lt;br /&gt;
            }            &lt;br /&gt;
          ],&lt;br /&gt;
          nextSteps: [&lt;br /&gt;
            {&lt;br /&gt;
              targetType:&amp;quot;ownTopic&amp;quot;, // if from own flow&lt;br /&gt;
              stepName: &amp;quot;yyy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              targetType: &amp;quot;extTopic&amp;quot;,&lt;br /&gt;
              serviceTag: &amp;quot;InventoryService&amp;quot;,&lt;br /&gt;
              topic: &amp;quot;ReserveStock_In&amp;quot;,&lt;br /&gt;
              toStepNames: [&amp;quot;xx&amp;quot;] // which step in this flow sent request to external flow, used to find awaitingStep prefix&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
&lt;br /&gt;
          plugInHooks: [&lt;br /&gt;
            {&lt;br /&gt;
              plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
              objType: {}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          returnValues: { // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties: [], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
          },&lt;br /&gt;
&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
      stepProperties: { // normalized all stepProperties&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          type: &amp;quot;object&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          childProperties: [&amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid2&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid3&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid4&amp;quot;: {&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          objectField: {&lt;br /&gt;
            objType: {},&lt;br /&gt;
            fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          overwritePropertyName: &amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      stepMessageAttributes: { // normalized all stepMessageAttributes&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid2&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4608</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4608"/>
		<updated>2026-08-19T07:11:54Z</updated>

		<summary type="html">&lt;p&gt;Seagame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;systemNoUserId&amp;quot; || &amp;quot;systemWithUserId&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;systemNoUserId&amp;quot; || &amp;quot;systemWithUserId&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  [&lt;br /&gt;
    {&lt;br /&gt;
      flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
      initiateBy: &amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
      handleObj: &amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
      statusType: &amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
      triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
      triggerFlowTypes: [&lt;br /&gt;
        //... triggerFlowType&lt;br /&gt;
      ],&lt;br /&gt;
&lt;br /&gt;
      // statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
      objType: {},&lt;br /&gt;
&lt;br /&gt;
      event: [&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
      bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
      createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
      schedules: [&lt;br /&gt;
        {&lt;br /&gt;
          name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
          description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
          rate: [&amp;quot;rate(1 minute)&amp;quot;,],&lt;br /&gt;
          input: {}&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
&lt;br /&gt;
      outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
      flowSteps: {&lt;br /&gt;
        inTag: { // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
          properties: [], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
          messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
          plugInHooks: [&lt;br /&gt;
            {&lt;br /&gt;
              plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
              objType: {}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          returnValues: {&lt;br /&gt;
            properties: [], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
          },&lt;br /&gt;
&lt;br /&gt;
        },&lt;br /&gt;
        // another flow steps&lt;br /&gt;
        flowStep1: { // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
          properties: [], // reference to stepProperties key&lt;br /&gt;
          messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
          event: [&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
          // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
          // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
          previousSteps: [&lt;br /&gt;
            {&lt;br /&gt;
              sourceType:&amp;quot;ownTopic&amp;quot;, // if from own flow&lt;br /&gt;
              stepName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              sourceType: &amp;quot;extTopic&amp;quot;, // triggered by output from external service&lt;br /&gt;
              serviceTag: &amp;quot;InventoryService&amp;quot;,&lt;br /&gt;
              topic: &amp;quot;ReserveStock_In&amp;quot;,&lt;br /&gt;
              fromStepNames: [&amp;quot;xx&amp;quot;] // which step in this flow sent request to external flow, used to find awaitingStep prefix&lt;br /&gt;
            }            &lt;br /&gt;
          ],&lt;br /&gt;
          nextSteps: [&lt;br /&gt;
            {&lt;br /&gt;
              targetType:&amp;quot;ownTopic&amp;quot;, // if from own flow&lt;br /&gt;
              stepName: &amp;quot;yyy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              targetType: &amp;quot;extTopic&amp;quot;,&lt;br /&gt;
              serviceTag: &amp;quot;InventoryService&amp;quot;,&lt;br /&gt;
              topic: &amp;quot;ReserveStock_In&amp;quot;,&lt;br /&gt;
              toStepNames: [&amp;quot;xx&amp;quot;] // which step in this flow sent request to external flow, used to find awaitingStep prefix&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
&lt;br /&gt;
          plugInHooks: [&lt;br /&gt;
            {&lt;br /&gt;
              plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
              objType: {}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          returnValues: { // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties: [], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
          },&lt;br /&gt;
&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
      stepProperties: { // normalized all stepProperties&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          type: &amp;quot;object&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          childProperties: [&amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid2&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid3&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid4&amp;quot;: {&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          objectField: {&lt;br /&gt;
            objType: {},&lt;br /&gt;
            fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          overwritePropertyName: &amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      stepMessageAttributes: { // normalized all stepMessageAttributes&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid2&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2026-08-18_-_Backend_User_and_RBAC_Data&amp;diff=4607</id>
		<title>2026-08-18 - Backend User and RBAC Data</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2026-08-18_-_Backend_User_and_RBAC_Data&amp;diff=4607"/>
		<updated>2026-08-19T02:23:57Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* updated idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User Data Handling]]&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
How to pass around userId and targetIdentifiers for permissions/account limits/resource use, and for creating automatic data such as createdBy and belongTo relationships in graph database.&lt;br /&gt;
&lt;br /&gt;
= updated idea =&lt;br /&gt;
&lt;br /&gt;
* baseUserId can stay in _izContext because it should not change during processing&lt;br /&gt;
* maybe change baseUserId to submittedByUserId to be more clear, but see baseUserId reason for name below&lt;br /&gt;
* however consider if future flows will handle many submittedByUserIds, eg automated tasks that handle many submitted tasks, if that is common it might be better to allow generated code to pass the submittedByUserId as a flow input param&lt;br /&gt;
* targetId change to identifer object {fieldname: fieldValue} named targetIdentifiers&lt;br /&gt;
* generated code can where possible add this automatically when initializing flows, and can check received valid identifiers according to flowSchema&lt;br /&gt;
&lt;br /&gt;
== RBAC ==&lt;br /&gt;
&lt;br /&gt;
* RBAC actions are basically list of flows, with target coming from the flows base objType (using either that objTypes rbac additional addOnDataStructure or if that objType has belongTo following that)&lt;br /&gt;
* generated code automatically validates submittedByUserId and targetIdentifiers, sends to permissionHandler/RBAC&lt;br /&gt;
&lt;br /&gt;
== Account Limits ==&lt;br /&gt;
&lt;br /&gt;
* standardize checking of accountLimits so generated code can check per flow&lt;br /&gt;
* probably allow for additional developer added accountLimits to be checked anywhere in code&lt;br /&gt;
&lt;br /&gt;
== Resource use ==&lt;br /&gt;
&lt;br /&gt;
* ? connected to target user if belongTo = user, but if not connect to submittedByUserId&lt;br /&gt;
&lt;br /&gt;
= old attempts =&lt;br /&gt;
&lt;br /&gt;
== First design ==&lt;br /&gt;
&lt;br /&gt;
* url paths sent from frontend had the service/resource/action and targetId in the url path, extracted by API Gateway&lt;br /&gt;
* submittedBy userId was extracted/confirmed from the Cognito token/sub&lt;br /&gt;
* RBAC was handled by a Lambda authorizer that used the above extracted variables&lt;br /&gt;
* submittedBy and targetIds were saved into iz_Context and automatically passed to proceeding logic&lt;br /&gt;
&lt;br /&gt;
=== limitations ===&lt;br /&gt;
&lt;br /&gt;
* requests must pass API Gateway to extract values&lt;br /&gt;
* Lambda authorizers can have limitations that complicated processing&lt;br /&gt;
&lt;br /&gt;
== Second design ==&lt;br /&gt;
&lt;br /&gt;
* using schemas and generated code&lt;br /&gt;
* RBAC moved out of authorizers and implemented inside handler lambdas&lt;br /&gt;
* still in _izContext&lt;br /&gt;
* variable name is baseUserId, because accountLimits/resourceUse are connected to target userId if belong to User, but baseUserId if not&lt;br /&gt;
&lt;br /&gt;
=== limitations ===&lt;br /&gt;
&lt;br /&gt;
* targetId is a concat string for composite identifiers, want all handling of identifiers to be an object, only change to concat when required (eg save to database that requires single string)&lt;br /&gt;
* some flows might need to adjust target according to steps, eg importBatch submission belongTo user but each pending element may have different belongTo objType/instances, this complicates targetId management in _izContext&lt;br /&gt;
&lt;br /&gt;
[[Category:Working_documents - User Data Handling| 2026-08-18]]&lt;br /&gt;
[[Category:Working documents| 2026-08-18]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2026-08-18_-_Backend_User_and_RBAC_Data&amp;diff=4606</id>
		<title>2026-08-18 - Backend User and RBAC Data</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2026-08-18_-_Backend_User_and_RBAC_Data&amp;diff=4606"/>
		<updated>2026-08-19T02:23:42Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Second design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User Data Handling]]&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
How to pass around userId and targetIdentifiers for permissions/account limits/resource use, and for creating automatic data such as createdBy and belongTo relationships in graph database.&lt;br /&gt;
&lt;br /&gt;
= updated idea =&lt;br /&gt;
&lt;br /&gt;
* baseUserId can stay in iz_Context because it should not change during processing&lt;br /&gt;
* maybe change baseUserId to submittedByUserId to be more clear, but see baseUserId reason for name below&lt;br /&gt;
* however consider if future flows will handle many submittedByUserIds, eg automated tasks that handle many submitted tasks, if that is common it might be better to allow generated code to pass the submittedByUserId as a flow input param&lt;br /&gt;
* targetId change to identifer object {fieldname: fieldValue} named targetIdentifiers&lt;br /&gt;
* generated code can where possible add this automatically when initializing flows, and can check received valid identifiers according to flowSchema&lt;br /&gt;
&lt;br /&gt;
== RBAC ==&lt;br /&gt;
&lt;br /&gt;
* RBAC actions are basically list of flows, with target coming from the flows base objType (using either that objTypes rbac additional addOnDataStructure or if that objType has belongTo following that)&lt;br /&gt;
* generated code automatically validates submittedByUserId and targetIdentifiers, sends to permissionHandler/RBAC&lt;br /&gt;
&lt;br /&gt;
== Account Limits ==&lt;br /&gt;
&lt;br /&gt;
* standardize checking of accountLimits so generated code can check per flow&lt;br /&gt;
* probably allow for additional developer added accountLimits to be checked anywhere in code&lt;br /&gt;
&lt;br /&gt;
== Resource use ==&lt;br /&gt;
&lt;br /&gt;
* ? connected to target user if belongTo = user, but if not connect to submittedByUserId&lt;br /&gt;
&lt;br /&gt;
= old attempts =&lt;br /&gt;
&lt;br /&gt;
== First design ==&lt;br /&gt;
&lt;br /&gt;
* url paths sent from frontend had the service/resource/action and targetId in the url path, extracted by API Gateway&lt;br /&gt;
* submittedBy userId was extracted/confirmed from the Cognito token/sub&lt;br /&gt;
* RBAC was handled by a Lambda authorizer that used the above extracted variables&lt;br /&gt;
* submittedBy and targetIds were saved into iz_Context and automatically passed to proceeding logic&lt;br /&gt;
&lt;br /&gt;
=== limitations ===&lt;br /&gt;
&lt;br /&gt;
* requests must pass API Gateway to extract values&lt;br /&gt;
* Lambda authorizers can have limitations that complicated processing&lt;br /&gt;
&lt;br /&gt;
== Second design ==&lt;br /&gt;
&lt;br /&gt;
* using schemas and generated code&lt;br /&gt;
* RBAC moved out of authorizers and implemented inside handler lambdas&lt;br /&gt;
* still in _izContext&lt;br /&gt;
* variable name is baseUserId, because accountLimits/resourceUse are connected to target userId if belong to User, but baseUserId if not&lt;br /&gt;
&lt;br /&gt;
=== limitations ===&lt;br /&gt;
&lt;br /&gt;
* targetId is a concat string for composite identifiers, want all handling of identifiers to be an object, only change to concat when required (eg save to database that requires single string)&lt;br /&gt;
* some flows might need to adjust target according to steps, eg importBatch submission belongTo user but each pending element may have different belongTo objType/instances, this complicates targetId management in _izContext&lt;br /&gt;
&lt;br /&gt;
[[Category:Working_documents - User Data Handling| 2026-08-18]]&lt;br /&gt;
[[Category:Working documents| 2026-08-18]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4578</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4578"/>
		<updated>2026-08-12T02:28:51Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Flow Schema | FlowSchemas.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  [&lt;br /&gt;
    {&lt;br /&gt;
      flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
      initiateBy: &amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
      handleObj: &amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
      statusType: &amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
      triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
      triggerFlowTypes: [&lt;br /&gt;
        //... triggerFlowType&lt;br /&gt;
      ],&lt;br /&gt;
&lt;br /&gt;
      // statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
      objType: {},&lt;br /&gt;
&lt;br /&gt;
      event: [&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
      bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
      createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
      schedules: [&lt;br /&gt;
        {&lt;br /&gt;
          name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
          description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
          rate: [&amp;quot;rate(1 minute)&amp;quot;,],&lt;br /&gt;
          input: {}&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
&lt;br /&gt;
      // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
      generatedCodeConfig: {&lt;br /&gt;
        generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
        codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
        // maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
        invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
        // .. other settings depending on generated code&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
      outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      flowSteps: {&lt;br /&gt;
        inTag: { // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
          properties: [], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
          messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
          plugInHooks: [&lt;br /&gt;
            {&lt;br /&gt;
              plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
              objType: {}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          returnValues: {&lt;br /&gt;
            properties: [], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
          },&lt;br /&gt;
&lt;br /&gt;
        },&lt;br /&gt;
        // another flow steps&lt;br /&gt;
        flowStep1: { // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
          properties: [], // reference to stepProperties key&lt;br /&gt;
          messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
          event: [&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
          // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
          // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
          previousSteps: [&lt;br /&gt;
            {&lt;br /&gt;
              sourceType:&amp;quot;ownTopic&amp;quot;, // if from own flow&lt;br /&gt;
              stepName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              sourceType: &amp;quot;extTopic&amp;quot;, // triggered by output from external service&lt;br /&gt;
              serviceTag: &amp;quot;InventoryService&amp;quot;,&lt;br /&gt;
              topic: &amp;quot;ReserveStock_In&amp;quot;,&lt;br /&gt;
              fromStepNames: [&amp;quot;xx&amp;quot;] // which step in this flow sent request to external flow, used to find awaitingStep prefix&lt;br /&gt;
            }            &lt;br /&gt;
          ],&lt;br /&gt;
          nextSteps: [&lt;br /&gt;
            {&lt;br /&gt;
              targetType:&amp;quot;ownTopic&amp;quot;, // if from own flow&lt;br /&gt;
              stepName: &amp;quot;yyy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              targetType: &amp;quot;extTopic&amp;quot;,&lt;br /&gt;
              serviceTag: &amp;quot;InventoryService&amp;quot;,&lt;br /&gt;
              topic: &amp;quot;ReserveStock_In&amp;quot;,&lt;br /&gt;
              toStepNames: [&amp;quot;xx&amp;quot;] // which step in this flow sent request to external flow, used to find awaitingStep prefix&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
&lt;br /&gt;
          plugInHooks: [&lt;br /&gt;
            {&lt;br /&gt;
              plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
              objType: {}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          returnValues: { // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties: [], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
          },&lt;br /&gt;
&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
      stepProperties: { // normalized all stepProperties&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          type: &amp;quot;object&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          childProperties: [&amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid2&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid3&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid4&amp;quot;: {&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          objectField: {&lt;br /&gt;
            objType: {},&lt;br /&gt;
            fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          overwritePropertyName: &amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      stepMessageAttributes: { // normalized all stepMessageAttributes&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uuid2&amp;quot;: {&lt;br /&gt;
          propertyName: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
          required: false,  // true | false default=false &lt;br /&gt;
          type: &amp;quot;string&amp;quot;,&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2026-03-19_Deploy_and_Setting_EC2_instances&amp;diff=4525</id>
		<title>2026-03-19 Deploy and Setting EC2 instances</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2026-03-19_Deploy_and_Setting_EC2_instances&amp;diff=4525"/>
		<updated>2026-08-08T03:42:57Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Download AMI from aws account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Deploy EC2 Instance =&lt;br /&gt;
* EC2 instance types are purpose-built configurations of virtual servers, designed with different resource combinations to help your applications perform at their best.&lt;br /&gt;
== Setting Ec2 on AWS == &lt;br /&gt;
&lt;br /&gt;
=== Create Key pairs ===&lt;br /&gt;
[[File:CreateKeyPairs.png |1000px ]]&lt;br /&gt;
* Enter key pair name you want &lt;br /&gt;
* select key pair type to RSA &lt;br /&gt;
* select Private key file format to .pem &lt;br /&gt;
* When you created new key pair it will auto download file it will be used later&lt;br /&gt;
&lt;br /&gt;
=== Create VPC ===&lt;br /&gt;
Sign in to aws account that want to create instance -&amp;gt; VPC -&amp;gt; Virtual private cloud -&amp;gt; your VPC&lt;br /&gt;
* &#039;&#039;&#039;Create VPC if not exist &#039;&#039;&#039;&lt;br /&gt;
[[File:CreateVPCIfNotExist.png |1000px ]]&lt;br /&gt;
&lt;br /&gt;
* Required: IPv4 CIDR  // ex : 172.16.0.0/16&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; VCP exist &#039;&#039;&#039;&lt;br /&gt;
[[File:CreateVPCifExist.png |1000px ]]&lt;br /&gt;
*&#039;&#039;&#039;Note&#039;&#039;&#039; : can shared VPC for create another instance in same account &lt;br /&gt;
[[File:Screenshot from 2026-03-18 14-28-11.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Create Subnet ===&lt;br /&gt;
[[File:CreateSubNet.png |1000px ]]&lt;br /&gt;
* Select VPC&lt;br /&gt;
[[File:Screenshot from 2026-03-18 14-55-26.png |1000px ]]&lt;br /&gt;
* enter subnet name and select Availability Zone then enter IPv4 subnet CIDR block when you finish first subnet click add new subnet and then repeat 3 subnet process&lt;br /&gt;
* Availability Zone&lt;br /&gt;
** Stage : Ohio &amp;gt;&amp;gt; (us-east-2a),(us-east-2b),(us-east-2c)&lt;br /&gt;
* IPv4 subnet CIDR block&lt;br /&gt;
** us-east-2a : 172.16.10.0/24&lt;br /&gt;
** us-east-2b : 172.16.20.0/24&lt;br /&gt;
** us-east-2c : 172.16.30.0/24&lt;br /&gt;
&lt;br /&gt;
=== Create Internet Gateway ===&lt;br /&gt;
* When you finish create internet gateway then back to internet gateways page&lt;br /&gt;
* Attach with your VPC:  select your internet gateway -&amp;gt; action -&amp;gt; Attach to VPC and then select your VPC&lt;br /&gt;
&lt;br /&gt;
=== Create Route Table ===&lt;br /&gt;
[[File:CreateRouteTable.png |1000px ]]&lt;br /&gt;
* Select you VPC and then create route table &lt;br /&gt;
* Select your route table -&amp;gt; action -&amp;gt; edit subnet associate and then select your subnet &lt;br /&gt;
[[File:SubnetAssociations.png |1000px]]&lt;br /&gt;
* Connect internet gateway for protect config  : Select your route table &amp;gt;&amp;gt; edit route&lt;br /&gt;
[[File:EditRoute.png |1000px ]]&lt;br /&gt;
* Add route &lt;br /&gt;
* Destination : 0.0.0.0/0&lt;br /&gt;
* Target : Internet Gateway&amp;gt;&amp;gt; select your Igw from created&lt;br /&gt;
&lt;br /&gt;
=== Create VPC Endpoint ===&lt;br /&gt;
[[File:Screenshot from 2026-03-18 15-32-04.png|1000px]]&lt;br /&gt;
* &#039;&#039;&#039;Select Service:&#039;&#039;&#039; &lt;br /&gt;
** com.amazonaws.us-east-2.s3 &lt;br /&gt;
** com.amazonaws.us-east-2.dynamodb&lt;br /&gt;
Select Type: Gateway &amp;gt;&amp;gt; VPC &amp;gt;&amp;gt; route table&lt;br /&gt;
** com.amazonaws.us-east-2.sns&lt;br /&gt;
** com.amazonaws.us-east-2.sqs &lt;br /&gt;
** com.amazonaws.us-east-2.lambda &lt;br /&gt;
Select Type : Interface &amp;gt;&amp;gt;  VPC &amp;gt;&amp;gt; route table &amp;gt;&amp;gt; subnet  &amp;gt;&amp;gt; Security groups&lt;br /&gt;
* &#039;&#039;&#039;Subnet settings&#039;&#039;&#039;&lt;br /&gt;
[[File:AddSubNet.png |1000px]]&lt;br /&gt;
* &#039;&#039;&#039;Security groups &#039;&#039;&#039;&lt;br /&gt;
[[File:AddSequrityGroup.png |1000px]]&lt;br /&gt;
* &#039;&#039;&#039;Note&#039;&#039;&#039; : Endpoint Type : Interface , can create those endpoint after created Security groups from deploy Resource EC2 finished&lt;br /&gt;
&lt;br /&gt;
== Resource Ec2 settings ==&lt;br /&gt;
* &#039;&#039;&#039;in ResourceEC2/ ec2.yml&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;YAML&amp;quot;&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
  ExistingVpcId:&lt;br /&gt;
    Type: AWS::EC2::VPC::Id&lt;br /&gt;
    Description: Use existing VPC&lt;br /&gt;
    Default: vpc-0ce9f21b10cb179f9&lt;br /&gt;
&lt;br /&gt;
  SshKeyPairNeo4j:&lt;br /&gt;
    Description: SSH Keypair to login to the instance&lt;br /&gt;
    Type: AWS::EC2::KeyPair::KeyName&lt;br /&gt;
    Default: ${self:custom.iz_DefaultKeyPairName} # name to config same imageId&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
&lt;br /&gt;
  Neo4jSecurityGroup:&lt;br /&gt;
    Type: AWS::EC2::SecurityGroup&lt;br /&gt;
    Properties:&lt;br /&gt;
      GroupDescription: Neo4j Security Group shared&lt;br /&gt;
      GroupName: share-neo4j-shared&lt;br /&gt;
      SecurityGroupIngress:&lt;br /&gt;
        # - CidrIp: 0.0.0.0/0 # set to all traffic for send msg to sns&lt;br /&gt;
        #   IpProtocol: &amp;quot;-1&amp;quot;&lt;br /&gt;
        - IpProtocol: tcp&lt;br /&gt;
          FromPort: 22 # SSH&lt;br /&gt;
          ToPort: 22&lt;br /&gt;
          CidrIp: 0.0.0.0/0&lt;br /&gt;
        - IpProtocol: tcp&lt;br /&gt;
          FromPort: 7687 # private neo4j port&lt;br /&gt;
          ToPort: 7687&lt;br /&gt;
          CidrIp: 0.0.0.0/0&lt;br /&gt;
        - IpProtocol: tcp&lt;br /&gt;
          FromPort: 7474 #  public neo4j port: neo4j&lt;br /&gt;
          ToPort: 7474&lt;br /&gt;
          CidrIp: 0.0.0.0/0&lt;br /&gt;
        - IpProtocol: tcp&lt;br /&gt;
          FromPort: 7473 # #  public neo4j port: Bolt&lt;br /&gt;
          ToPort: 7473&lt;br /&gt;
          CidrIp: 0.0.0.0/0&lt;br /&gt;
      SecurityGroupEgress:&lt;br /&gt;
        - CidrIp: 0.0.0.0/0 # set all traffic&lt;br /&gt;
          IpProtocol: &amp;quot;-1&amp;quot;&lt;br /&gt;
      # VpcId: !Ref VPC&lt;br /&gt;
      VpcId: !Ref ExistingVpcId&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # create neo4j instance&lt;br /&gt;
  Neo4jShared:&lt;br /&gt;
    Type: AWS::EC2::Instance&lt;br /&gt;
    Properties:&lt;br /&gt;
      ImageId: ${self:custom.iz_ImageId}&lt;br /&gt;
      # InstanceInitiatedShutdownBehavior: stop # default&lt;br /&gt;
      InstanceType: t2.medium&lt;br /&gt;
      SecurityGroupIds:&lt;br /&gt;
        - !Ref Neo4jSecurityGroup&lt;br /&gt;
      KeyName: !Ref &#039;SshKeyPairNeo4j&#039; # NOTE: require existing keypair, please make sure have private key in local.&lt;br /&gt;
      SubnetId: ${self:custom.iz_subnetIds1a}&lt;br /&gt;
&lt;br /&gt;
  ## Elastic IP: neo4j instance public IP address will not chabge everytime we stop/start instance(NOT security)&lt;br /&gt;
  EIP:&lt;br /&gt;
    Type: AWS::EC2::EIP&lt;br /&gt;
    Properties:&lt;br /&gt;
      InstanceId: !Ref Neo4jShared&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Security Group section after deploy if has config between lambda endpoint  not send message out… should add setting inbound rules:&lt;br /&gt;
* Type:HTTPS&amp;gt;&amp;gt;TPC&amp;gt;&amp;gt;443&amp;gt;&amp;gt;172.16.0.0/16&lt;br /&gt;
[[File:AddSettingSequrityGroup.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
= Install Neo4j in terminal =&lt;br /&gt;
After EC2 instance was created: ** must have ec2 instance existing **&lt;br /&gt;
== Install neo4j using .tar ==&lt;br /&gt;
* &#039;&#039;&#039;ssh EC2 instance: in Terminal&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# set permission of key&lt;br /&gt;
chmod 400 &amp;lt;your keys pairs&amp;gt; // ex. GraphHandler-ver-05.pem&lt;br /&gt;
&lt;br /&gt;
# connect ec2 instance by SSH command&lt;br /&gt;
ssh -i &amp;quot;your-key.pem&amp;quot; ec2-user@&amp;lt;public-ip&amp;gt; -L 7687:&amp;lt;private-ip&amp;gt;:7687&lt;br /&gt;
&lt;br /&gt;
# Install java: &lt;br /&gt;
sudo yum install java-17-amazon-corretto -y  // neo4j version-5 use java version more than version 11&lt;br /&gt;
&lt;br /&gt;
# Download and extract neo4j&lt;br /&gt;
wget https://neo4j.com/artifact.php?name=neo4j-community-5.20.0-unix.tar.gz&lt;br /&gt;
&lt;br /&gt;
tar -xzf neo4j.tar.gz&lt;br /&gt;
&lt;br /&gt;
mv neo4j-community-* neo4j&lt;br /&gt;
&lt;br /&gt;
cd neo4j&lt;br /&gt;
&lt;br /&gt;
# Configure Neo4j bash&lt;br /&gt;
nano conf/neo4j.conf&lt;br /&gt;
&lt;br /&gt;
Then Add this into file:&lt;br /&gt;
&lt;br /&gt;
server.default_listen_address=0.0.0.0&lt;br /&gt;
server.default_advertised_address=&amp;lt;your-ec2-private-ip or public-ip&amp;gt;&lt;br /&gt;
server.bolt.listen_address=:7687&lt;br /&gt;
server.http.listen_address=:7474&lt;br /&gt;
&lt;br /&gt;
#Setting start on reboot bash &lt;br /&gt;
bin/neo4j stop&lt;br /&gt;
&lt;br /&gt;
sudo nano /etc/systemd/system/neo4j.service&lt;br /&gt;
&lt;br /&gt;
Add this code in file: &lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Neo4j Graph Database&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=forking&lt;br /&gt;
User=ec2-user&lt;br /&gt;
WorkingDirectory=/home/ec2-user/neo4j&lt;br /&gt;
ExecStart=/home/ec2-user/neo4j/bin/neo4j start&lt;br /&gt;
ExecStop=/home/ec2-user/neo4j/bin/neo4j stop&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
RemainAfterExit=true&lt;br /&gt;
Environment=NEO4J_HOME=/home/ec2-user/neo4j&lt;br /&gt;
Environment=JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
# set neo4j password&lt;br /&gt;
bin/neo4j-admin dbms set-initial-password NewPassword123 // &amp;lt; your password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Then&lt;br /&gt;
bin/neo4j start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;  If use AMIs exist from another account neo4j browser/backend database will be use old password from that AMIs&lt;br /&gt;
* If want to change password with new EC2 instance after install neo4j package &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
#bash: &lt;br /&gt;
sudo systemctl stop neo4j&lt;br /&gt;
rm -rf data/dbms/*&lt;br /&gt;
rm -rf data/databases/system&lt;br /&gt;
rm -rf data/transactions/system&lt;br /&gt;
bin/neo4j-admin dbms set-initial-password neo4jComAcc&lt;br /&gt;
sudo systemctl start neo4j&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect Neo4j Browser == &lt;br /&gt;
* run EC2 Instance that connect to neo4j on AWS &amp;gt; Instance state &amp;gt; Start instance : running status&lt;br /&gt;
* Example browser : http://16.59.197.49:7474/browser/ &lt;br /&gt;
* Connect URL:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 neo4j:// public -ip:7687&lt;br /&gt;
 Username: neo4j&lt;br /&gt;
 Password : xxxxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Stop and start EC2 instances automatically =&lt;br /&gt;
== Schedules Instance using AWS EventBridge ==&lt;br /&gt;
*&#039;&#039;&#039;Step1: Specify schedule detail&#039;&#039;&#039;&lt;br /&gt;
* Go to Amazon EventBridge &amp;gt;&amp;gt; Schedules → Create Schedules&lt;br /&gt;
[[File:Step1CreateSpecifyTagEvenBridge.png |1000px]]&lt;br /&gt;
* &#039;&#039;&#039;Schedule pattern:&#039;&#039;&#039;&lt;br /&gt;
* Occurrence → Recurring schedule&lt;br /&gt;
* Time zone: → asia/Bangkok&lt;br /&gt;
* Schedule type → Cron-based schedule&lt;br /&gt;
[[File:CronExpression.png |1000px]]&lt;br /&gt;
* &#039;&#039;&#039;Note:&#039;&#039;&#039; monday to saturday stop instance on 18:00 / 6:00PM&lt;br /&gt;
* Flexible time window : off  → next page &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Step2 : Select target &#039;&#039;&#039;&lt;br /&gt;
[[File:EventBridgeTargetDetial.png|1000px]]&lt;br /&gt;
* Amazon EC2 → StopInstances then push Instance Id into JSON format → next page&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Step3 : Settings &#039;&#039;&#039;&lt;br /&gt;
* Schedule state : enable &lt;br /&gt;
* Action after schedule completion : NONE&lt;br /&gt;
* Retry policy and dead-letter queue (DLQ) : NONE&lt;br /&gt;
* Set Permissions: → Go to IAM console to create role permission then select an existing role after created finished&lt;br /&gt;
* IAM → Roles → Create roles &lt;br /&gt;
** Custom trust policy: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,&lt;br /&gt;
   &amp;quot;Statement&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
           &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
           &amp;quot;Principal&amp;quot;: {&lt;br /&gt;
               &amp;quot;Service&amp;quot;: &amp;quot;scheduler.amazonaws.com&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;Action&amp;quot;: &amp;quot;sts:AssumeRole&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add Permission : if permission for stop Instance not exist , have to create before or skip this step then add those permission later&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,&lt;br /&gt;
   &amp;quot;Statement&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
           &amp;quot;Sid&amp;quot;: &amp;quot;VisualEditor0&amp;quot;,&lt;br /&gt;
           &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
           &amp;quot;Action&amp;quot;: &amp;quot;ec2:StopInstances&amp;quot;,&lt;br /&gt;
           &amp;quot;Resource&amp;quot;: &amp;quot;arn:aws:ec2:us-east-2:418867772665:instance/i-0569d4b408c5a75db&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;  &amp;quot;Resource&amp;quot;: &amp;quot;arn:aws:ec2:us-east-2:&amp;lt;Account-Id&amp;gt;:instance/&amp;lt;instanceIds&amp;gt;&amp;quot;&lt;br /&gt;
* Name, review, and create : create roles name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Step4 : Review and create schedule &#039;&#039;&#039;&lt;br /&gt;
* Check detail the create schedule&lt;br /&gt;
// wait for image&lt;br /&gt;
&lt;br /&gt;
== Idea:  Stop and start Instance using Systems Manager ==&lt;br /&gt;
* Go to AWS  → Systems Manager&lt;br /&gt;
* In the left menu click  → Quick Setup&lt;br /&gt;
* Get started with Quick Setup → Get started&lt;br /&gt;
* Choose Configuration Type&lt;br /&gt;
* 👉 Resource Scheduler (Powered by AWS Solutions)  →  Create&lt;br /&gt;
&lt;br /&gt;
* Specify instance tag :&lt;br /&gt;
** Key : Value  &amp;gt;&amp;gt; should set key &amp;amp; value  like those instance want to set Auto Scheduler&lt;br /&gt;
** go to EC2 Console → Instances&lt;br /&gt;
** Select your specific instance&lt;br /&gt;
** Click Tags → Manage tags → Add tag&lt;br /&gt;
&lt;br /&gt;
* Target&lt;br /&gt;
** Choose : current account and current region &lt;br /&gt;
** Local deployment roles : Use new IAM local deployment roles&lt;br /&gt;
&lt;br /&gt;
= Download and Upload AMIs on EC2 =&lt;br /&gt;
== Download AMI from aws account == &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create vmimport Role&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,&lt;br /&gt;
 &amp;quot;Statement&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
     &amp;quot;Principal&amp;quot;: {&lt;br /&gt;
       &amp;quot;Service&amp;quot;: &amp;quot;vmie.amazonaws.com&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;Action&amp;quot;: &amp;quot;sts:AssumeRole&amp;quot;,&lt;br /&gt;
     &amp;quot;Condition&amp;quot;: {}&lt;br /&gt;
   }&lt;br /&gt;
 ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Permissions in vmImportPolicy&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,&lt;br /&gt;
 &amp;quot;Statement&amp;quot;: [&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
     &amp;quot;Action&amp;quot;: [&lt;br /&gt;
       &amp;quot;s3:GetBucketLocation&amp;quot;,&lt;br /&gt;
       &amp;quot;s3:GetObject&amp;quot;,&lt;br /&gt;
       &amp;quot;s3:ListBucket&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;Resource&amp;quot;: [&lt;br /&gt;
       &amp;quot;arn:aws:s3:::object-schema&amp;quot;, &lt;br /&gt;
       &amp;quot;arn:aws:s3:::object-schema/*&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   },&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
     &amp;quot;Action&amp;quot;: [&lt;br /&gt;
       &amp;quot;s3:PutObject&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;Resource&amp;quot;: &amp;quot;arn:aws:s3:::object-schema/*&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   {&lt;br /&gt;
     &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
     &amp;quot;Action&amp;quot;: [&lt;br /&gt;
       &amp;quot;ec2:ModifySnapshotAttribute&amp;quot;,&lt;br /&gt;
       &amp;quot;ec2:CopySnapshot&amp;quot;,&lt;br /&gt;
       &amp;quot;ec2:RegisterImage&amp;quot;,&lt;br /&gt;
       &amp;quot;ec2:Describe*&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Create Role Permission&#039;&#039;&#039;&lt;br /&gt;
** can create from EC2 instance that want to export AMIs &amp;gt;&amp;gt;Action &amp;gt; security &amp;gt; Modify IAM role name:&amp;quot;instanceExportAMIsPolicy&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,&lt;br /&gt;
   &amp;quot;Statement&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
           &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
           &amp;quot;Action&amp;quot;: [&lt;br /&gt;
               &amp;quot;ec2:ExportImage&amp;quot;,&lt;br /&gt;
               &amp;quot;ec2:DescribeImages&amp;quot;,&lt;br /&gt;
               &amp;quot;ec2:DescribeExportImageTasks&amp;quot;&lt;br /&gt;
           ],&lt;br /&gt;
           &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       {&lt;br /&gt;
           &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
           &amp;quot;Action&amp;quot;: [&lt;br /&gt;
               &amp;quot;s3:GetObject&amp;quot;,&lt;br /&gt;
               &amp;quot;s3:ListBucket&amp;quot;,&lt;br /&gt;
               &amp;quot;s3:PutObject&amp;quot;,&lt;br /&gt;
               &amp;quot;s3:GetBucketLocation&amp;quot;&lt;br /&gt;
           ],&lt;br /&gt;
           &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Set AWS config&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
AWS Access Key ID [****************SVVH]: xxxxxxxxx&lt;br /&gt;
AWS Secret Access Key [****************XESH]:  yyyyyyyyy&lt;br /&gt;
Default region name [us-east-2]: us-east-2&lt;br /&gt;
Default output format [json]: json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*  Start export task&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
aws ec2 export-image \&lt;br /&gt;
  --region us-east-2  \&lt;br /&gt;
  --image-id &amp;lt;ami-01547ffae334d2ca4&amp;gt; \ &lt;br /&gt;
  --disk-image-format VMDK \&lt;br /&gt;
  --s3-export-location S3Bucket=object-schema,S3Prefix=exports/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* How to check progress&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
aws ec2 describe-export-image-tasks \&lt;br /&gt;
  --export-image-task-ids &amp;lt;export-ami-69b4fce2df0ce647t&amp;gt; \&lt;br /&gt;
  --region us-east-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download AMIs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
aws s3 cp s3://schema-accounting/exports/&amp;lt;export-ami-69b4fce2df0ce647t.vmdk&amp;gt; .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Upload AMI to aws account == &lt;br /&gt;
** If ami download exist in s3 / aws account  can run: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; containers.json &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[{&lt;br /&gt;
  &amp;quot;Description&amp;quot;: &amp;quot;neo4j-ami-accounting&amp;quot;,&lt;br /&gt;
 &amp;quot;Format&amp;quot;: &amp;quot;vmdk&amp;quot;,&lt;br /&gt;
 &amp;quot;UserBucket&amp;quot;: {&lt;br /&gt;
   &amp;quot;S3Bucket&amp;quot;: &amp;quot;schema-accounting&amp;quot;,&lt;br /&gt;
   &amp;quot;S3Key&amp;quot;: &amp;quot;exports/export-ami-69b4fce2df0ce647t.vmdk&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
}]&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
** If file export-ami-xxx in local terminal | that download from another account, then want to upload into s3 / other aws account run before:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
aws s3 cp ~/JangProgramer/export-ami-819afd57ae1eb750t.vmdk \&lt;br /&gt;
         s3://schema-accounting/exports/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
aws ec2 import-image \&lt;br /&gt;
 --description &amp;quot;Neo4j AMI Import&amp;quot; \&lt;br /&gt;
 --disk-containers file://containers.json \&lt;br /&gt;
 --region us-east-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
* check status&lt;br /&gt;
aws ec2 describe-export-image-tasks // check status&lt;br /&gt;
aws ec2 describe-import-image-tasks //&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2026-03-19]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4494</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4494"/>
		<updated>2026-07-30T02:08:27Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Flow Schema | FlowSchemas.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
 { &lt;br /&gt;
    flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
    initiateBy:&amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
    handleObj:&amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
    statusType:&amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
    triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
    triggerFlowTypes:[&lt;br /&gt;
      //... triggerFlowType&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
	// statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
    objType:{},&lt;br /&gt;
&lt;br /&gt;
    event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
    bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
    createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
    schedules:[&lt;br /&gt;
      {&lt;br /&gt;
        name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
        description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
        rate: [&amp;quot;rate(1 minute)&amp;quot;, ],&lt;br /&gt;
        input:{}&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
	generatedCodeConfig:{&lt;br /&gt;
		generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
		codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
		// maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
		invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
		// .. other settings depending on generated code&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    flowSteps:[&lt;br /&gt;
      inTag:{ // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
        properties:[], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
        messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: {&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
      // another flow steps&lt;br /&gt;
      flowStep1:{ // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
        event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot; | &amp;quot;dsq&amp;quot;&lt;br /&gt;
        // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
        // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: { // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    stepProperties:{ // normalized all stepProperties&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;object&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        childProperties:[&amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;]&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid3&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid4&amp;quot;:{&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        objectField:{ &lt;br /&gt;
          objType:{},&lt;br /&gt;
          fieldName:&amp;quot;xx&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        overwritePropertyName:&amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    stepMessageAttributes:{ // normalized all stepMessageAttributes&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;yyy&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4493</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4493"/>
		<updated>2026-07-29T07:05:47Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Flow Schema | FlowSchemas.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
 { &lt;br /&gt;
    flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
    initiateBy:&amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
    handleObj:&amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
    statusType:&amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
    triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
    triggerFlowTypes:[&lt;br /&gt;
      //... triggerFlowType&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
	// statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
    objType:{},&lt;br /&gt;
&lt;br /&gt;
    event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
    bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
    createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
    schedules:[&lt;br /&gt;
      {&lt;br /&gt;
        name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
        description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
        rate: [&amp;quot;rate(1 minute)&amp;quot;, ],&lt;br /&gt;
        input:{}&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
	generatedCodeConfig:{&lt;br /&gt;
		generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
		codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
		// maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
		invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
		// .. other settings depending on generated code&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    flowSteps:[&lt;br /&gt;
      inTag:{ // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
        properties:[], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
        messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: {&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
      // another flow steps&lt;br /&gt;
      flowStep1:{ // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
        event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
        // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
        // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: { // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    stepProperties:{ // normalized all stepProperties&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;object&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        childProperties:[&amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;]&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid3&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid4&amp;quot;:{&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        objectField:{ &lt;br /&gt;
          objType:{},&lt;br /&gt;
          fieldName:&amp;quot;xx&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        overwritePropertyName:&amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    stepMessageAttributes:{ // normalized all stepMessageAttributes&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;yyy&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4492</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4492"/>
		<updated>2026-07-29T05:24:00Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Flow Schema | FlowSchemas.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
 { &lt;br /&gt;
    flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
    initiateBy:&amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
    handleObj:&amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
    statusType:&amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
    triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
    triggerFlowTypes:[&lt;br /&gt;
      //... triggerFlowType&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
	// statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
    objType:{},&lt;br /&gt;
&lt;br /&gt;
    event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
    bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
    createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
    schedules:[&lt;br /&gt;
      {&lt;br /&gt;
        name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
        description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
        rate: [&amp;quot;rate(1 minute)&amp;quot;, ],&lt;br /&gt;
        input:{}&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
	generatedCodeConfig:{&lt;br /&gt;
		generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
		codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
		// maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
		invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
		// .. other settings depending on generated code&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    flowSteps:[&lt;br /&gt;
      inTag:{ // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
        properties:[], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
        messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: [&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
      // another flow steps&lt;br /&gt;
      flowStep1:{ // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
        event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
        // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
        // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: [ // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    stepProperties:{ // normalized all stepProperties&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;object&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        childProperties:[&amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;]&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid3&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid4&amp;quot;:{&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        objectField:{ &lt;br /&gt;
          objType:{},&lt;br /&gt;
          fieldName:&amp;quot;xx&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        overwritePropertyName:&amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    stepMessageAttributes:{ // normalized all stepMessageAttributes&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;yyy&amp;quot;,&lt;br /&gt;
        required:false,  // true | false default=false &lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4481</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4481"/>
		<updated>2026-07-14T07:08:45Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Flow Schema | FlowSchemas.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
 { &lt;br /&gt;
    flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
    initiateBy:&amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
    handleObj:&amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
    statusType:&amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
    triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
    triggerFlowTypes:[&lt;br /&gt;
      //... triggerFlowType&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
	// statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
    objType:{},&lt;br /&gt;
&lt;br /&gt;
    event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
    bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
    createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
    schedules:[&lt;br /&gt;
      {&lt;br /&gt;
        name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
        description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
        rate: [&amp;quot;rate(1 minute)&amp;quot;, ],&lt;br /&gt;
        input:{}&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
	generatedCodeConfig:{&lt;br /&gt;
		generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
		codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
		// maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
		invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
		// .. other settings depending on generated code&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    flowSteps:[&lt;br /&gt;
      inTag:{ // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
        properties:[], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
        messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: [&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
      // another flow steps&lt;br /&gt;
      flowStep1:{ // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
        event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
        // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
        // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: [ // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    stepProperties:{ // normalized all stepProperties&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;object&amp;quot;,&lt;br /&gt;
        childProperties:[&amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;]&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid3&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid4&amp;quot;:{&lt;br /&gt;
        objectField:{ &lt;br /&gt;
          objType:{},&lt;br /&gt;
          fieldName:&amp;quot;xx&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        overwritePropertyName:&amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    stepMessageAttributes:{ // normalized all stepMessageAttributes&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;yyy&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4480</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4480"/>
		<updated>2026-07-08T01:27:34Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Relationships Schema | ObjectRelationships.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          //   moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
          // belongTo:true&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;none&amp;quot;, // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
            belongTo:true, // false&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
 { &lt;br /&gt;
    flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
    initiateBy:&amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
    handleObj:&amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
    statusType:&amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
    triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
    triggerFlowTypes:[&lt;br /&gt;
      //... triggerFlowType&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
	// statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
    objType:{},&lt;br /&gt;
&lt;br /&gt;
    event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
    bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
    createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
    schedules:[&lt;br /&gt;
      {&lt;br /&gt;
        name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
        description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
        rate: [&amp;quot;rate(1 minute)&amp;quot;, ],&lt;br /&gt;
        input:{}&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
	generatedCodeConfig:{&lt;br /&gt;
		generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
		codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
		// maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
		invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
		// .. other settings depending on generated code&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    flowSteps:[&lt;br /&gt;
      inTag:{ // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
        properties:[], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
        messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: [&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
      // another flow steps&lt;br /&gt;
      flowStep1:{ // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
        event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
        // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
        // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: [ // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    stepProperties:{ // normalized all stepProperties&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        objectField:{ &lt;br /&gt;
          objType:{},&lt;br /&gt;
          fieldName:&amp;quot;xx&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        overwritePropertyName:&amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    stepMessageAttributes:{ // normalized all stepMessageAttributes&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;yyy&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4479</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4479"/>
		<updated>2026-07-08T01:06:11Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Relationships Schema | ObjectRelationships.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
			// comes from requiredOnCreate relationships&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				// or&lt;br /&gt;
				belongToObjType: true, // if set to true use the belongTo relationship to belongTo objType&lt;br /&gt;
&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
             // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	        moveBy: &amp;quot;none&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
 { &lt;br /&gt;
    flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
    initiateBy:&amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
    handleObj:&amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
    statusType:&amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
    triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
    triggerFlowTypes:[&lt;br /&gt;
      //... triggerFlowType&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
	// statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
    objType:{},&lt;br /&gt;
&lt;br /&gt;
    event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
    bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
    createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
    schedules:[&lt;br /&gt;
      {&lt;br /&gt;
        name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
        description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
        rate: [&amp;quot;rate(1 minute)&amp;quot;, ],&lt;br /&gt;
        input:{}&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
	generatedCodeConfig:{&lt;br /&gt;
		generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
		codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
		// maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
		invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
		// .. other settings depending on generated code&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    outputTopic: boolean,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    flowSteps:[&lt;br /&gt;
      inTag:{ // will generate Topic serviceTag_stage_yyy_inTag&lt;br /&gt;
        properties:[], // reference to stepProperties key, the first lambda&#039;s input properties and messageAttributes are the flow&#039;s input properties and messageAttributes&lt;br /&gt;
        messageAttributes: [], // reference to stepProperties key&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: [&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
      // another flow steps&lt;br /&gt;
      flowStep1:{ // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
        event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
        // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
        // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ],&lt;br /&gt;
        returnValues: [ // the last lambda function returnValues are the flow&#039;s returnValues&lt;br /&gt;
            properties:[], // reference to stepProperties key&lt;br /&gt;
            messageAttributes: [], // reference to stepProperties key, only for outputTopic=true&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
      },&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    stepProperties:{ // normalized all stepProperties&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        objectField:{ &lt;br /&gt;
          objType:{},&lt;br /&gt;
          fieldName:&amp;quot;xx&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        overwritePropertyName:&amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    stepMessageAttributes:{ // normalized all stepMessageAttributes&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;yyy&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4473</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4473"/>
		<updated>2026-06-11T08:11:59Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;createOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: false, || true// default = false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   },&lt;br /&gt;
  parentFlowId: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requird: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;parentFlowIf&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional // default {}&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requied: true&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{},&lt;br /&gt;
   &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;// required&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
     parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4472</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4472"/>
		<updated>2026-06-11T07:42:44Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* MoveNodeProperties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   },&lt;br /&gt;
  parentFlowId: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requird: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;parentFlowIf&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional // default {}&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requied: true&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{},&lt;br /&gt;
   &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;// required&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
     parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4471</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4471"/>
		<updated>2026-06-11T07:40:57Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* MoveRelationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   },&lt;br /&gt;
  parentFlowId: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requird: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;parentFlowIf&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional // default {}&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requied: true&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{},&lt;br /&gt;
   &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4470</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4470"/>
		<updated>2026-06-11T07:38:17Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* MoveRelationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   },&lt;br /&gt;
  parentFlowId: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requird: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;parentFlowIf&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional // default {}&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requied: true&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{},&lt;br /&gt;
   &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4469</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4469"/>
		<updated>2026-06-11T07:34:43Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* DeleteRelationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   },&lt;br /&gt;
  parentFlowId: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Requird: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;parentFlowIf&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4468</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4468"/>
		<updated>2026-06-11T07:31:07Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* ChangeRelationshipType */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   },&lt;br /&gt;
  parentFlowId: &amp;quot;&amp;quot; // required&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4467</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4467"/>
		<updated>2026-06-11T07:26:48Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4466</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4466"/>
		<updated>2026-06-11T07:25:47Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* GetRelationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
     &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4465</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4465"/>
		<updated>2026-06-11T07:24:04Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* GetNodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required,&lt;br /&gt;
   &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
     &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4464</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4464"/>
		<updated>2026-06-11T06:39:35Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* GetNode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required,&lt;br /&gt;
   &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
     &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4459</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4459"/>
		<updated>2026-06-08T07:02:50Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required,&lt;br /&gt;
   &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
     &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Service_-_Unit_Type&amp;diff=4458</id>
		<title>Service - Unit Type</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Service_-_Unit_Type&amp;diff=4458"/>
		<updated>2026-06-08T04:15:01Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* relationshipSchemas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each unitStandard is connected to a unitType which defines unitTrackedPropertys and how to handle them. unitPacking probably also uses the unitType structure.&lt;br /&gt;
&lt;br /&gt;
= Repository =&lt;br /&gt;
&lt;br /&gt;
https://bitbucket.org/izara-supply-units/izara-supply-units-unit-type&lt;br /&gt;
&lt;br /&gt;
= Unit Type configuration =&lt;br /&gt;
&lt;br /&gt;
unitType settings cannot be changed once created, so if want to adjust them would need to create a new unitType, this is because too much logic and data for unitStandard instances rely on unitType settings, data could break if settings changed.&lt;br /&gt;
&lt;br /&gt;
= objectSchemas = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;SupplyNetwork&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;supplyNetwork&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [ &lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
	],&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		unitTypeId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
            randomOnCreate: true&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			fieldName: &amp;quot;unitTypeId&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
	]&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;unitTypeTrackedProperty&amp;quot;,&lt;br /&gt;
    belongTo: { // maybe in future when add RBAC to unitType&lt;br /&gt;
		serviceTag:&amp;quot;SupplyNetwork&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;supplyNetwork&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		unitTypeTrackedPropertyId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
            randomOnCreate: true&lt;br /&gt;
		},&lt;br /&gt;
		precision: { // sets whether decimals are allowed and precision level&lt;br /&gt;
			type: &amp;quot;integer&amp;quot; ,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},	&lt;br /&gt;
		canNegative: { // default false, sets whether only zero and positive values are allowed&lt;br /&gt;
			type: &amp;quot;boolean&amp;quot; ,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},&lt;br /&gt;
		inactiveIfZero: { // default false, if value of this property goes to zero automatically removes activeUnit relationship and adds inactiveUnit relationship&lt;br /&gt;
			type: &amp;quot;boolean&amp;quot; ,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},		&lt;br /&gt;
		isCurrency: { // default false, sets whether unitTrackedProperty value is a currency amount&lt;br /&gt;
			type: &amp;quot;boolean&amp;quot; ,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			fieldName: &amp;quot;unitTypeTrackedPropertyId&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
	]&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* currency is handled special because conversions can be performed&lt;br /&gt;
* multiple unitType instances can link to the same unitTypeTrackedProperty&lt;br /&gt;
* examples: yards, weight, cost (see calculatedProperties in [[Service - Transform Units]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;unitTrackedProperty&amp;quot;,&lt;br /&gt;
    belongTo: { // in future add RBAC to eg Units&lt;br /&gt;
		serviceTag:&amp;quot;SupplyNetwork&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;supplyNetwork&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		unitTrackedPropertyId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
            randomOnCreate: true&lt;br /&gt;
		},&lt;br /&gt;
		propertyValue: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // so can adjust any type of property, will need cast type in logic&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
			canUpdate: true,&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			fieldName: &amp;quot;unitTrackedPropertyId&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
	]&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* each unit instance has unitTrackedProperty&#039;s for each of it&#039;s unitType&#039;s unitTypeTrackedPropertys&lt;br /&gt;
* unitTrackedProperty holds the value for eacn unitTypeTrackedProperty for a unit&lt;br /&gt;
&lt;br /&gt;
= relationshipSchemas = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;isUnitType&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: false,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitManager&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unit&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitType&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;one&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;hasUnitTypeTrackedProperty&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
		},&lt;br /&gt;
		fieldNames: {&lt;br /&gt;
			&amp;quot;defaultValue&amp;quot;: {&lt;br /&gt;
			  type: &amp;quot;string&amp;quot;,&lt;br /&gt;
			  requiredOnCreate: true,&lt;br /&gt;
			}&lt;br /&gt;
		},   &lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: false,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitType&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTypeTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sets which unitTypeTrackedProperty unitType has&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;isUnitTypeTrackedProperty&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: false,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTypeTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* links each unitTrackedProperty to it&#039;s matching unitTypeTrackedProperty&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;hasUnitTrackedProperty&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: true,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitManager&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unit&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;one&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Units current unitTrackedProperty for each unitTypeTrackedProperty&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;oldUnitTrackedProperty&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
			&amp;quot;fromTimestamp&amp;quot;: {&lt;br /&gt;
			  type: &amp;quot;timestamp&amp;quot;,&lt;br /&gt;
			  requiredOnCreate: true,&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;toTimestamp&amp;quot;: {&lt;br /&gt;
			  type: &amp;quot;timestamp&amp;quot;,&lt;br /&gt;
			  requiredOnCreate: true,&lt;br /&gt;
			}&lt;br /&gt;
		},   &lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: true,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitManager&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unit&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;one&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* old unitTrackedProperties for a unit, maintains a history of unitTrackedProperty propertyValue changes&lt;br /&gt;
* when a change is made to a unitTrackedProperty propertyValue a new unitTrackedProperty is created and hasUnitTrackedProperty links to unitStandard, while old hasUnitTrackedProperty relationship is removed and replaced with a oldUnitTrackedProperty&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Unit Type|Unit Type]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Backend services| Unit Type]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Service_-_Unit_Type&amp;diff=4457</id>
		<title>Service - Unit Type</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Service_-_Unit_Type&amp;diff=4457"/>
		<updated>2026-06-08T04:09:33Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* relationshipSchemas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each unitStandard is connected to a unitType which defines unitTrackedPropertys and how to handle them. unitPacking probably also uses the unitType structure.&lt;br /&gt;
&lt;br /&gt;
= Repository =&lt;br /&gt;
&lt;br /&gt;
https://bitbucket.org/izara-supply-units/izara-supply-units-unit-type&lt;br /&gt;
&lt;br /&gt;
= Unit Type configuration =&lt;br /&gt;
&lt;br /&gt;
unitType settings cannot be changed once created, so if want to adjust them would need to create a new unitType, this is because too much logic and data for unitStandard instances rely on unitType settings, data could break if settings changed.&lt;br /&gt;
&lt;br /&gt;
= objectSchemas = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;SupplyNetwork&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;supplyNetwork&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [ &lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
	],&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		unitTypeId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
            randomOnCreate: true&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			fieldName: &amp;quot;unitTypeId&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
	]&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;unitTypeTrackedProperty&amp;quot;,&lt;br /&gt;
    belongTo: { // maybe in future when add RBAC to unitType&lt;br /&gt;
		serviceTag:&amp;quot;SupplyNetwork&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;supplyNetwork&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		unitTypeTrackedPropertyId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
            randomOnCreate: true&lt;br /&gt;
		},&lt;br /&gt;
		precision: { // sets whether decimals are allowed and precision level&lt;br /&gt;
			type: &amp;quot;integer&amp;quot; ,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},	&lt;br /&gt;
		canNegative: { // default false, sets whether only zero and positive values are allowed&lt;br /&gt;
			type: &amp;quot;boolean&amp;quot; ,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},&lt;br /&gt;
		inactiveIfZero: { // default false, if value of this property goes to zero automatically removes activeUnit relationship and adds inactiveUnit relationship&lt;br /&gt;
			type: &amp;quot;boolean&amp;quot; ,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},		&lt;br /&gt;
		isCurrency: { // default false, sets whether unitTrackedProperty value is a currency amount&lt;br /&gt;
			type: &amp;quot;boolean&amp;quot; ,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			fieldName: &amp;quot;unitTypeTrackedPropertyId&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
	]&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* currency is handled special because conversions can be performed&lt;br /&gt;
* multiple unitType instances can link to the same unitTypeTrackedProperty&lt;br /&gt;
* examples: yards, weight, cost (see calculatedProperties in [[Service - Transform Units]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;unitTrackedProperty&amp;quot;,&lt;br /&gt;
    belongTo: { // in future add RBAC to eg Units&lt;br /&gt;
		serviceTag:&amp;quot;SupplyNetwork&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;supplyNetwork&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		unitTrackedPropertyId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
            randomOnCreate: true&lt;br /&gt;
		},&lt;br /&gt;
		propertyValue: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // so can adjust any type of property, will need cast type in logic&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
			canUpdate: true,&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			fieldName: &amp;quot;unitTrackedPropertyId&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
	]&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* each unit instance has unitTrackedProperty&#039;s for each of it&#039;s unitType&#039;s unitTypeTrackedPropertys&lt;br /&gt;
* unitTrackedProperty holds the value for eacn unitTypeTrackedProperty for a unit&lt;br /&gt;
&lt;br /&gt;
= relationshipSchemas = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;isUnitType&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: false,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitManager&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unit&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitType&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;one&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;hasUnitTypeTrackedProperty&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
		},&lt;br /&gt;
		fieldNames: {&lt;br /&gt;
			&amp;quot;defaultValue&amp;quot;: {&lt;br /&gt;
			  type: &amp;quot;string&amp;quot;,&lt;br /&gt;
			  requiredOnCreate: true,&lt;br /&gt;
			}&lt;br /&gt;
		},   &lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: false,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitType&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTypeTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;one&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sets which unitTypeTrackedProperty unitType has&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;isUnitTypeTrackedProperty&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: false,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTypeTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* links each unitTrackedProperty to it&#039;s matching unitTypeTrackedProperty&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;hasUnitTrackedProperty&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: true,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitManager&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unit&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;one&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Units current unitTrackedProperty for each unitTypeTrackedProperty&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;oldUnitTrackedProperty&amp;quot;: {&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
			&amp;quot;fromTimestamp&amp;quot;: {&lt;br /&gt;
			  type: &amp;quot;timestamp&amp;quot;,&lt;br /&gt;
			  requiredOnCreate: true,&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;toTimestamp&amp;quot;: {&lt;br /&gt;
			  type: &amp;quot;timestamp&amp;quot;,&lt;br /&gt;
			  requiredOnCreate: true,&lt;br /&gt;
			}&lt;br /&gt;
		},   &lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],&lt;br /&gt;
          canDelete: true,&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitManager&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unit&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;one&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;unitType&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;unitTrackedProperty&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* old unitTrackedProperties for a unit, maintains a history of unitTrackedProperty propertyValue changes&lt;br /&gt;
* when a change is made to a unitTrackedProperty propertyValue a new unitTrackedProperty is created and hasUnitTrackedProperty links to unitStandard, while old hasUnitTrackedProperty relationship is removed and replaced with a oldUnitTrackedProperty&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Unit Type|Unit Type]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Backend services| Unit Type]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4455</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4455"/>
		<updated>2026-06-03T06:23:05Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required,&lt;br /&gt;
   &amp;quot;parentFlow&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
     &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4454</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4454"/>
		<updated>2026-06-03T06:21:53Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* UpdateRelationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required,&lt;br /&gt;
   &amp;quot;parentFlow&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  },&lt;br /&gt;
  parentFlowId:&amp;quot;&amp;quot;,&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4453</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4453"/>
		<updated>2026-06-03T06:18:52Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required,&lt;br /&gt;
   &amp;quot;parentFlow&amp;quot;: &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4452</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4452"/>
		<updated>2026-06-03T06:15:31Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* additionalRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using deepPathConditional for check relationship if not exist , can check on firstNode and seconNode or additionalRelationships&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4451</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4451"/>
		<updated>2026-06-03T06:10:46Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string ,// “from” , “to” &lt;br /&gt;
        &amp;quot;deepPathConditional&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [ // default []&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4450</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4450"/>
		<updated>2026-06-03T06:07:28Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* CreateRelationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;additionalRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;deepPathConditional&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       condition: &#039;notExist&#039;,&lt;br /&gt;
        conditionCheck: {&lt;br /&gt;
         nodeStructure: {&lt;br /&gt;
          objType: {&lt;br /&gt;
            &lt;br /&gt;
          },&lt;br /&gt;
          fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
           relationshipStructure: {&lt;br /&gt;
            relType: {&lt;br /&gt;
             &lt;br /&gt;
            },&lt;br /&gt;
            relationshipDirection: &#039;&#039;&lt;br /&gt;
          },&lt;br /&gt;
           nodeStructure: {&lt;br /&gt;
            objType: {&lt;br /&gt;
          &lt;br /&gt;
            },&lt;br /&gt;
            fields: { }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ]&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;reateOnConditionalFail&amp;quot;: false // true default = false&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId: &amp;quot;&amp;quot;,&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4449</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4449"/>
		<updated>2026-06-03T05:57:54Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Return Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     },&lt;br /&gt;
     parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4448</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4448"/>
		<updated>2026-06-03T05:57:21Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4447</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4447"/>
		<updated>2026-06-03T05:56:35Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;// required&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4446</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4446"/>
		<updated>2026-06-03T05:55:31Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot; :&amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4444</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4444"/>
		<updated>2026-06-03T05:22:40Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;, // required&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4443</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4443"/>
		<updated>2026-06-03T05:22:16Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;parentFlowId&amp;quot; : &amp;quot;&amp;quot; // optional&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4442</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4442"/>
		<updated>2026-06-03T05:21:13Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4441</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4441"/>
		<updated>2026-06-03T05:19:52Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Return Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    parentFlowId:&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4440</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4440"/>
		<updated>2026-06-03T05:18:59Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;parentFlowId&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4439</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4439"/>
		<updated>2026-06-03T05:18:13Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Request Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* parentFlowId&lt;br /&gt;
** type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4426</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4426"/>
		<updated>2026-05-28T03:56:03Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Not extendObjType */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			// or&lt;br /&gt;
			fromRequiredOnCreate: { &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;aa&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;bb&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == xxx if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	  moveBy: &amp;quot;none&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
 { &lt;br /&gt;
    flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
    initiateBy:&amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
    handleObj:&amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
    statusType:&amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
    triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
    triggerFlowTypes:[&lt;br /&gt;
      //... triggerFlowType&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
	// statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
    objType:{},&lt;br /&gt;
&lt;br /&gt;
    event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
    bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
    createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
    schedules:[&lt;br /&gt;
      {&lt;br /&gt;
        name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
        description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
        rate: [&amp;quot;rate(1 minute)&amp;quot;, ],&lt;br /&gt;
        input:{}&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
	generatedCodeConfig:{&lt;br /&gt;
		generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
		codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
		// maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
		invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
		// .. other settings depending on generated code&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    outputTopic: boolean, &lt;br /&gt;
&lt;br /&gt;
    flowSteps:[&lt;br /&gt;
      In:{ // will generate Topic serviceTag_stage_yyy_In&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
      },&lt;br /&gt;
      // another flow steps&lt;br /&gt;
      flowStep1:{ // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
        event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
        // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
        // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      Out:{ // will generate Topic serviceTag_stage_yyy_Out&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
      },&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    stepProperties:{&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        objectField:{ &lt;br /&gt;
          objType:{},&lt;br /&gt;
          fieldName:&amp;quot;xx&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        overwritePropertyName:&amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Service_-_Currency_Table_Standard&amp;diff=4425</id>
		<title>Service - Currency Table Standard</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Service_-_Currency_Table_Standard&amp;diff=4425"/>
		<updated>2026-05-28T03:51:03Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* currencyTableRate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Handler service for standard currencyTables that include historical changes.&lt;br /&gt;
&lt;br /&gt;
= Repository =&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
= Schemas =&lt;br /&gt;
&lt;br /&gt;
==ObjectSchemas==&lt;br /&gt;
&lt;br /&gt;
=== currencyTableStandard ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;objectType&amp;quot;: &amp;quot;currencyTableStandard&amp;quot;,&lt;br /&gt;
	&amp;quot;extendObjType&amp;quot;: {&lt;br /&gt;
		&amp;quot;serviceTag&amp;quot;: &amp;quot;CurrencyTableManager&amp;quot;,&lt;br /&gt;
		&amp;quot;objectType&amp;quot;: &amp;quot;currencyTable&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;storageResources&amp;quot;: {},&lt;br /&gt;
	&amp;quot;addOnDataStructure&amp;quot;: [],&lt;br /&gt;
	&amp;quot;fieldNames&amp;quot;: {&lt;br /&gt;
		&amp;quot;baseCurrencyId&amp;quot;:{&lt;br /&gt;
			type: &amp;quot;currency&amp;quot;,&lt;br /&gt;
			requiredOnCreate: true,&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;generatedBy&amp;quot;: &amp;quot;userGenerated&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== currencyTableRate ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;objectType&amp;quot;: &amp;quot;currencyTableRate&amp;quot;,&lt;br /&gt;
	&amp;quot;storageResources&amp;quot;: {&lt;br /&gt;
		graph: {&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;GraphHandler&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;addOnDataStructure&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;currencyTableRateValue&amp;quot;,&lt;br /&gt;
			storageResourceTag : &amp;quot;graph&amp;quot;,&lt;br /&gt;
			fieldNames: {&lt;br /&gt;
				&amp;quot;exchangeRate&amp;quot;:{&lt;br /&gt;
					type: &amp;quot;number&amp;quot;,&lt;br /&gt;
					requiredOnCreate: true,&lt;br /&gt;
					validation: {},&lt;br /&gt;
				},&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;fieldNames&amp;quot;: {&lt;br /&gt;
         // none, identifier comes from hash or concat of currencyTableID and currencyId&lt;br /&gt;
		currencyId: {&lt;br /&gt;
			fromRequiredOnCreate: { // will use data from requiredOnCreateLink that have same relType to use this value, and then &lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;CurrencyTableStandard&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;isCurrency&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default=same field name eg: now default == currencyId if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		currencyTableId: {&lt;br /&gt;
			fromRequiredOnCreate: {&lt;br /&gt;
				relType: {&lt;br /&gt;
					serviceTag:&amp;quot;CurrencyTableStandard&amp;quot;,&lt;br /&gt;
					relationshipTag:&amp;quot;hasCurrencyRate&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				fieldName:&amp;quot;&amp;quot; // optional default= same field name eg: now default == currencyTableId if not defined(use fieldname of object inside link when create)&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
			fieldNames: [&amp;quot;currencyId&amp;quot;,&amp;quot;currencyTableId&amp;quot;], // from required on create object identifiers&lt;br /&gt;
			name: &amp;quot;currencyTableRateId&amp;quot;, // name of field in database&lt;br /&gt;
		},&lt;br /&gt;
	]&lt;br /&gt;
	&amp;quot;generatedBy&amp;quot;: &amp;quot;userGenerated&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RelationshipSchemas ==&lt;br /&gt;
&lt;br /&gt;
=== baseCurrency ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;relationshipServiceTag&amp;quot;: &amp;quot;CurrencyTableStandard&amp;quot;,&lt;br /&gt;
  &amp;quot;fieldNames&amp;quot;: {},&lt;br /&gt;
  &amp;quot;storageResources&amp;quot;: {&lt;br /&gt;
    &amp;quot;graph&amp;quot;: {&lt;br /&gt;
      &amp;quot;storageType&amp;quot;: &amp;quot;graph&amp;quot;,&lt;br /&gt;
      &amp;quot;graphServerTag&amp;quot;: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;links&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;storageResourceTags&amp;quot;: [&lt;br /&gt;
        &amp;quot;graph&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;from&amp;quot;: {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;: &amp;quot;CurrencyTableStandard&amp;quot;,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;: &amp;quot;currencyTableStandard&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;linkType&amp;quot;: &amp;quot;many&amp;quot;,&lt;br /&gt;
        &amp;quot;handler&amp;quot;: true,&lt;br /&gt;
        &amp;quot;requiredOnCreate&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;to&amp;quot;: {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;: &amp;quot;Currency&amp;quot;,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;: &amp;quot;currency&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;linkType&amp;quot;: &amp;quot;one&amp;quot;,&lt;br /&gt;
        &amp;quot;requiredOnCreate&amp;quot;: false,&lt;br /&gt;
        &amp;quot;handler&amp;quot;: true,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;canDelete&amp;quot;: false&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;canMove&amp;quot;: false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== isCurrency ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;relationshipServiceTag&amp;quot;: &amp;quot;CurrencyTableStandard&amp;quot;,&lt;br /&gt;
  &amp;quot;fieldNames&amp;quot;: {},&lt;br /&gt;
  &amp;quot;storageResources&amp;quot;: {&lt;br /&gt;
    &amp;quot;graph&amp;quot;: {&lt;br /&gt;
      &amp;quot;storageType&amp;quot;: &amp;quot;graph&amp;quot;,&lt;br /&gt;
      &amp;quot;graphServerTag&amp;quot;: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;links&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;storageResourceTags&amp;quot;: [&lt;br /&gt;
        &amp;quot;graph&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;from&amp;quot;: {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;: &amp;quot;CurrencyTableRate&amp;quot;,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;: &amp;quot;currencyTableRate&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;linkType&amp;quot;: &amp;quot;many&amp;quot;,&lt;br /&gt;
        &amp;quot;handler&amp;quot;: true,&lt;br /&gt;
        &amp;quot;requiredOnCreate&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;to&amp;quot;: {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;: &amp;quot;Currency&amp;quot;,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;: &amp;quot;currency&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;linkType&amp;quot;: &amp;quot;one&amp;quot;,&lt;br /&gt;
        &amp;quot;requiredOnCreate&amp;quot;: false,&lt;br /&gt;
        &amp;quot;handler&amp;quot;: true,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;canDelete&amp;quot;: false&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;canMove&amp;quot;: false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hasCurrencyRate ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;relationshipServiceTag&amp;quot;: &amp;quot;CurrencyTableStandard&amp;quot;,&lt;br /&gt;
  &amp;quot;fieldNames&amp;quot;: {},&lt;br /&gt;
  &amp;quot;storageResources&amp;quot;: {&lt;br /&gt;
    &amp;quot;graph&amp;quot;: {&lt;br /&gt;
      &amp;quot;storageType&amp;quot;: &amp;quot;graph&amp;quot;,&lt;br /&gt;
      &amp;quot;graphServerTag&amp;quot;: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;links&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;storageResourceTags&amp;quot;: [&lt;br /&gt;
        &amp;quot;graph&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;from&amp;quot;: {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;: &amp;quot;CurrencyTableStandard&amp;quot;,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;: &amp;quot;currencyTableStandard&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;linkType&amp;quot;: &amp;quot;one&amp;quot;,&lt;br /&gt;
        &amp;quot;handler&amp;quot;: true,&lt;br /&gt;
        &amp;quot;requiredOnCreate&amp;quot;: false&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;to&amp;quot;: {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;: &amp;quot;CurrencyTableStandard&amp;quot;,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;: &amp;quot;currencyTableRate&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;linkType&amp;quot;: &amp;quot;many&amp;quot;,&lt;br /&gt;
        &amp;quot;requiredOnCreate&amp;quot;: true,&lt;br /&gt;
        &amp;quot;handler&amp;quot;: true,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;canDelete&amp;quot;: false&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;canMove&amp;quot;: false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Currency Table Standard| Currency Table Standard]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Backend services| Currency Table Standard]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4423</id>
		<title>Per Service Schemas</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Per_Service_Schemas&amp;diff=4423"/>
		<updated>2026-05-26T00:06:32Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Not extendObjType */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Each service manages a schema of object/resources that it is responsible for, this schema is available to other services and frontends. The schema includes a list of fields available for each object.&lt;br /&gt;
&lt;br /&gt;
= File Structure =&lt;br /&gt;
&lt;br /&gt;
* see [[Repository structure#schemas|Repository structure]]&lt;br /&gt;
&lt;br /&gt;
= ObjectSchema | ObjectFieldSchema.js =&lt;br /&gt;
&lt;br /&gt;
== Not extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;,&lt;br /&gt;
	shortNameObjectType:&amp;quot;x&amp;quot;, // optional, use when generate code create lambda role with long name&lt;br /&gt;
	canDelete: false, // whether any fields can be deleted // default = false&lt;br /&gt;
	    belongTo: { &lt;br /&gt;
		serviceTag:&amp;quot;iii&amp;quot;,&lt;br /&gt;
		objectType:&amp;quot;jjj&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
    // how is the object created&lt;br /&gt;
    // userGenerated there will be generated endpoints for api or sqs (used in importBatchMain) to create object&lt;br /&gt;
    // systemGenerated must be created by flow/s&lt;br /&gt;
    // searchResultGenerated see separate notes below&lt;br /&gt;
    generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; || &amp;quot;searchResultGenerated&amp;quot; // required&lt;br /&gt;
    searchResultGeneratedFlowType: {}, // for generatedBy = searchResultGenerated&lt;br /&gt;
	addOnDataStructure: [ // optional, add for additional setting to objectType&lt;br /&gt;
		{&lt;br /&gt;
			// all fields that a user can edit must be in versionedData, and all fields in versionedData must be editable by user&lt;br /&gt;
			type:&amp;quot;versionedData&amp;quot;,&lt;br /&gt;
			versionedDataLabel: &amp;quot;xx&amp;quot;, // versionedData label name&lt;br /&gt;
			storageResourceTag : &amp;quot;xx&amp;quot;, // ref to storegeResourceTag&lt;br /&gt;
			fieldNames: { // fieldName in versionedData cannot have in in main objectSchema.fieldNames&lt;br /&gt;
				&amp;quot;aaa&amp;quot;:{ // fieldName&lt;br /&gt;
					type: &amp;quot;xx&amp;quot;, // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
					requiredOnCreate: false, // default = false&lt;br /&gt;
					optionalOnCreate: false, // default = false,&lt;br /&gt;
					validation: {&lt;br /&gt;
                      itemValidation:{} // for validate item in array&lt;br /&gt;
                    },&lt;br /&gt;
                    // probably impossible to have fromObjType, because data can be changed by user here&lt;br /&gt;
					fromObjType:{&lt;br /&gt;
						serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
						objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
					},&lt;br /&gt;
				},&lt;br /&gt;
				// ...&lt;br /&gt;
			}&lt;br /&gt;
        },&lt;br /&gt;
        { // can have multiple addOn of type attributeTree&lt;br /&gt;
          type:&amp;quot;attributeTree&amp;quot;,           &lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;translation&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;propertyValue&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;mediaLink&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          type:&amp;quot;rbac&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
		// ...&lt;br /&gt;
	],&lt;br /&gt;
	plugInTags: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], // plugIns that can be connected to this objType&lt;br /&gt;
	storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // graph			&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;, // setting for storageType graph&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]]  // will make graph index with specific fieldName &lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;zzz&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB&lt;br /&gt;
			// setting for storageType dynamoDB&lt;br /&gt;
			tableName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			groupByPartitionKeyField: &amp;quot;xx&amp;quot;, // use groupByPartitionKeyField as partition key and not have sort key in dynamoDB, if have multiple identifiers will concat it. And use it as partitionKey.&lt;br /&gt;
            serviceTag:&amp;quot;zz&amp;quot;// default own service.&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		xxx: { // fieldName&lt;br /&gt;
			type: &amp;quot;xx&amp;quot;,  // string|integer|number|timestamp|currency|currencyValue|float|special|object|boolean|arrayMixed|arrayNumeric|arrayString&lt;br /&gt;
            randomOnCreate: false,   // default = false , can set true in fieldName that part of identifiers and identifiers have single identifierFieldname&lt;br /&gt;
			requiredOnCreate: false, // default = false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			canUpdate: true, // default = true (only system/flows can edit, no history of changes unless flow manually adds)&lt;br /&gt;
			validation: {&lt;br /&gt;
			  itemValidation:{}  // for validate item in array&lt;br /&gt;
            }, // maybe ajv syntax&lt;br /&gt;
			storageResourceTags: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // reference to storageResources property&lt;br /&gt;
		    fromObjType:{&lt;br /&gt;
			  serviceTag: &amp;quot;xxx&amp;quot;, &lt;br /&gt;
			  objectType: &amp;quot;xxx&amp;quot; &lt;br /&gt;
			},&lt;br /&gt;
            hashOnCreate: [&amp;quot;xx&amp;quot;, &amp;quot;yy&amp;quot;], // reference to other fieldName, &lt;br /&gt;
            statusField: true, // use for objectSchema inside flowSchema, identify which field is statusField &lt;br /&gt;
		},&lt;br /&gt;
		// ...&lt;br /&gt;
	},&lt;br /&gt;
    compositeKeyDeliminator: &amp;quot;xx&amp;quot;, // join partitionKey and sortKey&lt;br /&gt;
	identifiers: [&lt;br /&gt;
    // for dynamoDB storageType &lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // composite partition keys in DynamoDB&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		name: &amp;quot;zz&amp;quot;, // name of field in database&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	},&lt;br /&gt;
   &lt;br /&gt;
    // for graph storageType&lt;br /&gt;
	{&lt;br /&gt;
		type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
		fieldNames: [&amp;quot;xx&amp;quot;,&amp;quot;yy&amp;quot;], // identifier field in graph or composite partition keys in DynamoDB&lt;br /&gt;
        name: &amp;quot;zzz&amp;quot;              // use when save in dynamoDB partitionKey&lt;br /&gt;
		deliminator: &amp;quot;xx&amp;quot;,  // optional, defaults to &amp;quot;_&amp;quot;&lt;br /&gt;
		// or&lt;br /&gt;
		fieldName: &amp;quot;xx&amp;quot;	&lt;br /&gt;
	},&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extendObjType ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// for objects stored in graph this will add another node label&lt;br /&gt;
	objectType: &amp;quot;xx&amp;quot;, // new label to add&lt;br /&gt;
	extendObjType: { // core object that this object extends&lt;br /&gt;
		serviceTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;xxx&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	addOnDataStructure: [],&lt;br /&gt;
	storageResources:{ // these are the storageResources that carry the extended objects settings, &lt;br /&gt;
		// (see above)&lt;br /&gt;
	},&lt;br /&gt;
	fieldNames: {&lt;br /&gt;
		// (see above) &lt;br /&gt;
	},&lt;br /&gt;
	// canDelete/identifiers come from the core object&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== searchResultGenerated ==&lt;br /&gt;
&lt;br /&gt;
* must be created by flow&lt;br /&gt;
* eg: variantProduct&lt;br /&gt;
* not have any storageResources&lt;br /&gt;
* identifiers are automatically searchResultData identifiers&lt;br /&gt;
* a searchResult request for this object will enter the searchResultGeneratedFlowType flow which creates searchResultData that can then be queried/sorted&lt;br /&gt;
* all relationships must be storageType = lambda, eg translate from variantProduct to variant uses a translateId flow to query the variantProduct identifier (searchResultData) to find the variantId in it&#039;s requiredData results&lt;br /&gt;
* searchResultGeneratedFlowType takes over after creating searchResultMain record until processRequiredData&lt;br /&gt;
* if objectSchema defines any fieldnames, then they are found using a flow, maybe as hooks in per service findData&lt;br /&gt;
* when finding direct fieldname, will need to check if requireData already exists, if not enter flow/findData to create&lt;br /&gt;
* no fields can be edited, so can show in forms but no updates performed&lt;br /&gt;
&lt;br /&gt;
= Relationships Schema | ObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
* stored in top level schemas folder&lt;br /&gt;
* parent/child determines relationship direction for graph relationships&lt;br /&gt;
* have one service that contains information of each relationship &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// relationship schema in responsible service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;xxx&amp;quot;: { // relationshipTag - name of relationship type stored in graph&lt;br /&gt;
      generatedBy: &amp;quot;userGenerated&amp;quot; || &amp;quot;systemGenerated&amp;quot; // default=&amp;quot;userGenerated&amp;quot;&lt;br /&gt;
      canChangeToRelTypes: [&lt;br /&gt;
		{&lt;br /&gt;
			relType: { // relType that this relType can change to &lt;br /&gt;
			  serviceTag:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
			  relationshipTag: &amp;quot;yyy&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			changeBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
        // another relType&lt;br /&gt;
      ],&lt;br /&gt;
      // moveBy allows the relationship to be moved between 2 instances of the same objType only&lt;br /&gt;
	  moveBy: &amp;quot;none&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;none&amp;quot;&lt;br /&gt;
      storageResources:{&lt;br /&gt;
		&amp;quot;xxx&amp;quot;:{ // storageResourceTag&lt;br /&gt;
			storageType: &amp;quot;xx&amp;quot;, // dynamoDB | graph | lambda&lt;br /&gt;
		    // if storageType=&amp;quot;dynamoDB&amp;quot;  will not specify tableName in relationship schema&lt;br /&gt;
&lt;br /&gt;
			// setting for storageType graph&lt;br /&gt;
			graphServerTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
            additionalGraphIndexes:[[&#039;fieldName1&#039;, &#039;fieldName2&#039;, ...], [...]],  // will make graph index with specific fieldName &lt;br /&gt;
&lt;br /&gt;
			// setting for storageType lambda&lt;br /&gt;
			serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
			functionName: &amp;quot;xx&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
      },&lt;br /&gt;
      fieldNames: {&lt;br /&gt;
		&amp;quot;xxx&amp;quot;: { // relationship property name&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // &amp;quot;string&amp;quot; | &amp;quot;number&amp;quot; ...&lt;br /&gt;
			requiredOnCreate: false, // default=false&lt;br /&gt;
			optionalOnCreate: false, // default = false&lt;br /&gt;
			updateBy: &amp;quot;user&amp;quot; // &amp;quot;systemNoUserId&amp;quot; | &amp;quot;systemWithUserId&amp;quot; | &amp;quot;user&amp;quot; | &amp;quot;none&amp;quot;, default=&amp;quot;user&amp;quot;&lt;br /&gt;
			validation: {} // ajv syntax&lt;br /&gt;
		},&lt;br /&gt;
		//...other relationship properties&lt;br /&gt;
      },&lt;br /&gt;
      links: [&lt;br /&gt;
        {&lt;br /&gt;
          storageResourceTags: [&amp;quot;xxx&amp;quot;],   // reference from storageResources property&lt;br /&gt;
          canDelete: false                // default = false, if set true will allow delete relationship between 2 objType&lt;br /&gt;
          from: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;xx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;xx&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            requiredOnCreate: true, // if set true will create relationshipTag when create objType data, if both &amp;quot;from&amp;quot; and &amp;quot;to&amp;quot; linkType=&amp;quot;many&amp;quot; should not have requiredOnCreate, exists in &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; only&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          },&lt;br /&gt;
          to: {&lt;br /&gt;
            objType: {&lt;br /&gt;
              serviceTag: &amp;quot;yy&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yy&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            linkType: &amp;quot;&amp;quot;,   // one | many&lt;br /&gt;
          },&lt;br /&gt;
          requestProperties: {&lt;br /&gt;
            // if storageType is Lambda and translateIds/linkPath requires properties set them here (eg sellOffer&amp;gt;orderPrice)&lt;br /&gt;
            tag_deliverTo: {&lt;br /&gt;
              requestPropertyType: &amp;quot;objectIdentifier&amp;quot;,&lt;br /&gt;
              objType: {&lt;br /&gt;
                serviceTag: &amp;quot;Locations&amp;quot;,&lt;br /&gt;
                objectType: &amp;quot;locationNode&amp;quot; // deliversToLocationNode&lt;br /&gt;
              },&lt;br /&gt;
              identifiersFieldName: &amp;quot;locationNodeId&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            // ... other request properties&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        // ...other link&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reference Relationships Schema | RefObjectRelationships.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// reference to relationshipTag in external service&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    objectType: &amp;quot;zz&amp;quot;,              // objectType in local service&lt;br /&gt;
    relationshipTag: &amp;quot;xxx&amp;quot;,        // name of relationshiptag of objType&lt;br /&gt;
    relationshipServiceTag: &amp;quot;xx&amp;quot;   // point to service tag that contain data of relationshipTag of objType&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flow Schema | FlowSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
 { &lt;br /&gt;
    flowTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
    initiateBy:&amp;quot;user&amp;quot;,         // &amp;quot;user&amp;quot; | &amp;quot;system&amp;quot; -- if receive plugin should be user &lt;br /&gt;
    handleObj:&amp;quot;one&amp;quot;,           // &amp;quot;one&amp;quot; | &amp;quot;multi&amp;quot;&lt;br /&gt;
    statusType:&amp;quot;statusField&amp;quot;,  // &amp;quot;statusField&amp;quot; | &amp;quot;storedCache&amp;quot; | &amp;quot;none&amp;quot; | &amp;quot;triggerCache&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // statusType=&amp;quot;triggerCache&amp;quot; setting &lt;br /&gt;
    triggerType: &amp;quot;storedCache&amp;quot;, // &amp;quot;storedCache&amp;quot; | &amp;quot;switch&amp;quot;&lt;br /&gt;
    triggerFlowTypes:[&lt;br /&gt;
      //... triggerFlowType&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
	// statusType=&amp;quot;statusField&amp;quot; | &amp;quot;triggerCache&amp;quot; | &amp;quot;storedCache&amp;quot; setting:&lt;br /&gt;
    objType:{},&lt;br /&gt;
&lt;br /&gt;
    event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;s3&amp;quot; setting&lt;br /&gt;
    bucketName: &amp;quot;xxx&amp;quot;, // bucket for s3 event&lt;br /&gt;
    createBucket: boolean, // if true will generate new bucket with bucketName if false will point to old bucket that already have &lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;eventBridge&amp;quot; setting&lt;br /&gt;
    schedules:[&lt;br /&gt;
      {&lt;br /&gt;
        name: &#039;your-scheduled-rate-event-name&#039;,&lt;br /&gt;
        description: &#039;your scheduled rate event description&#039;,&lt;br /&gt;
        rate: [&amp;quot;rate(1 minute)&amp;quot;, ],&lt;br /&gt;
        input:{}&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
&lt;br /&gt;
    // event=&amp;quot;generatedCode&amp;quot; setting&lt;br /&gt;
	generatedCodeConfig:{&lt;br /&gt;
		generatedCodeTag: &amp;quot;create&amp;quot;, // tag for generated code, eg &amp;quot;create&amp;quot; | &amp;quot;update&amp;quot; | &amp;quot;delete&amp;quot;&lt;br /&gt;
		codeHookTag: &amp;quot;xx&amp;quot;, // which codeHook to initiate flow from&lt;br /&gt;
		// maybe validate: invocationType must exist in &amp;quot;event&amp;quot; array, so don&#039;t need to check 2 places when eg creating sns topic&lt;br /&gt;
		invocationType: &amp;quot;ownTopic&amp;quot;, // &amp;quot;ownTopic&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		objType: {}, // which cases in the generated code trigger the flow&lt;br /&gt;
		// .. other settings depending on generated code&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    outputTopic: boolean, &lt;br /&gt;
&lt;br /&gt;
    flowSteps:[&lt;br /&gt;
      In:{ // will generate Topic serviceTag_stage_yyy_In&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
      },&lt;br /&gt;
      // another flow steps&lt;br /&gt;
      flowStep1:{ // will generate Topic serviceTag_stage_yyy_Flow1&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
        event:[&amp;quot;ownTopic&amp;quot;],  // &amp;quot;ownTopic&amp;quot; | &amp;quot;extTopic&amp;quot; | &amp;quot;s3&amp;quot; | &amp;quot;eventBridge&amp;quot; | &amp;quot;lambdaSyncInv&amp;quot; | &amp;quot;lambdaSyncApi&amp;quot; | &amp;quot;generatedCode&amp;quot;&lt;br /&gt;
        // handle splitting logic into awaitingStep/awaitingMultipleSteps&lt;br /&gt;
        // handle splitting logic into paginated lambda&lt;br /&gt;
&lt;br /&gt;
        plugInHooks: [&lt;br /&gt;
			{&lt;br /&gt;
				plugInHookTag: &amp;quot;&amp;quot;,&lt;br /&gt;
				objType:{}, // used to query connection dynamo for an object instance in current flow&lt;br /&gt;
			},&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      Out:{ // will generate Topic serviceTag_stage_yyy_Out&lt;br /&gt;
        properties:[], // reference to stepProperties key&lt;br /&gt;
        messageAttributes: [] // reference to stepProperties key&lt;br /&gt;
      },&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    stepProperties:{&lt;br /&gt;
      &amp;quot;uuid&amp;quot;:{&lt;br /&gt;
        propertyName:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
        type:&amp;quot;string&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
        objectField:{ &lt;br /&gt;
          objType:{},&lt;br /&gt;
          fieldName:&amp;quot;xx&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        overwritePropertyName:&amp;quot;xx&amp;quot; // optional, if have objectField and have overwritePropertyName will overwrite fieldName &lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System Text Schema | SystemTextSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		namespace: &amp;quot;xxx&amp;quot;, // groups files downloaded by frontend&lt;br /&gt;
		systemTextTag: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto generated systemText and namespaces ==&lt;br /&gt;
&lt;br /&gt;
=== systemNotification names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;sysNotification_{notificationGrouping}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{notificationTag}&amp;quot;&lt;br /&gt;
* eg shown on notification settings page&lt;br /&gt;
&lt;br /&gt;
=== objType names ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objTypes&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg pulldown list of object types&lt;br /&gt;
&lt;br /&gt;
=== objType field name descriptions ===&lt;br /&gt;
&lt;br /&gt;
* namespace: &amp;quot;objType_fielddesc_{serviceTag}_{objectType}&amp;quot;&lt;br /&gt;
* systemTextTag: &amp;quot;{fieldname}&amp;quot;&lt;br /&gt;
* eg shown on config pages, eg info box for each field name&lt;br /&gt;
&lt;br /&gt;
= System Notification Schema | SystemNotificationSchemas.js =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
	{&lt;br /&gt;
		notificationTag: &amp;quot;xxx&amp;quot;,&lt;br /&gt;
		notificationGrouping: &amp;quot;yyy&amp;quot;,&lt;br /&gt;
		weight: &amp;quot;##&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generated S3 files =&lt;br /&gt;
&lt;br /&gt;
* generate multiple files for different uses, eg:&lt;br /&gt;
*# list of saved fieldNames for Create&lt;br /&gt;
*# list of saved+calculated for Update/Info pages&lt;br /&gt;
*# graphSchemas&lt;br /&gt;
*# relationships (used by Search/Sort Results)&lt;br /&gt;
&lt;br /&gt;
= Use Cases =&lt;br /&gt;
&lt;br /&gt;
== Find Deployed Service Name ==&lt;br /&gt;
&lt;br /&gt;
* other services can use fixed serviceTag to get deployed serviceName from serviceSchema on S3&lt;br /&gt;
* used to build resource names for external services&lt;br /&gt;
* eg when one service needs to send a message into an SNS belonging to a different service&lt;br /&gt;
&lt;br /&gt;
== Standard Create, Update, List, Delete pages ==&lt;br /&gt;
&lt;br /&gt;
* List and Delete are maybe not required, use table data system instead.&lt;br /&gt;
* object schema can add validation information that can be used on the frontend to check before sending to backend, and by the backend to validate the data before handling&lt;br /&gt;
&lt;br /&gt;
=== Create Object ===&lt;br /&gt;
&lt;br /&gt;
* can configure what fields are shown&lt;br /&gt;
* requiredOnCreate fields must be shown &lt;br /&gt;
&lt;br /&gt;
=== Edit Object ===&lt;br /&gt;
&lt;br /&gt;
* users setup any number of pages for object types with configurable fields shown&lt;br /&gt;
* fields can be either display only or edit&lt;br /&gt;
* each field can adjust it&#039;s display properties (perhaps via cssStyles)&lt;br /&gt;
&lt;br /&gt;
== Menu Config ==&lt;br /&gt;
&lt;br /&gt;
When adding menu items can add links to create, update, list, delete objects, user chooses the service then from that service&#039;s list of objects and what action is being performed. For update/delete perhaps links to a standard page that asks for the identifier before presenting the page.&lt;br /&gt;
&lt;br /&gt;
== Tabled Data ==&lt;br /&gt;
&lt;br /&gt;
When viewing tabled data the frontend pulls the tableId&#039;s config from backend, then when requesting the data also requests the serviceTag &amp;gt; objectType schema for use when displaying the data.&lt;br /&gt;
&lt;br /&gt;
== Code Standardization ==&lt;br /&gt;
&lt;br /&gt;
Code such as middleware validation schema and saving data to databases can be standardized.&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
&lt;br /&gt;
Endpoints per object for actions such as Create/Delete/Update can be automatically generated from objectSchema.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation Structure ===&lt;br /&gt;
&lt;br /&gt;
* npm for generic code generation, can be used in any project, includes functions for generating Source files from templates and developer files&lt;br /&gt;
* npm for per project specific files, eg templates for the project (Create/Update/.. code)&lt;br /&gt;
* Empty Service Template has GenerateCode.js script file in root dir that is run to generate code, it invokes a generation function from generic npm with param that points to per project npm&#039;s templates&lt;br /&gt;
* generated Source retains hook tags (and any developer added code), so if developer wants to update developer&#039;s file with updated template code they can generate code and simply copy generated Source to src folder&lt;br /&gt;
&lt;br /&gt;
= Graph Server Config =&lt;br /&gt;
&lt;br /&gt;
* S3 has a list of graphServerTag&#039;s linking to the GraphHandler serviceTag responsible for the graph&lt;br /&gt;
* multiple graphServerTags can point to one GraphHandler, combining graphs into one server&lt;br /&gt;
* when creating each GraphHandler&#039;s graph schemas, for each field split out the fields into each GraphHandler using the graphServerTag, if multiple graphServerTags for a field point to the same GraphHandler combine the fields to create GraphHandler&#039;s graph schema&lt;br /&gt;
* every GraphHandler an object is saved into will require it&#039;s identifiers&lt;br /&gt;
* when eg updating fields for an object separate the fields per GraphHandler before sending the request to update each graph&lt;br /&gt;
&lt;br /&gt;
= Extended Object Types =&lt;br /&gt;
&lt;br /&gt;
* Allows for one graph node to have multiple labels&lt;br /&gt;
* graph schema is created for both the core object and the extended object&lt;br /&gt;
* eg Media Manager&#039;s has a node schema for &amp;quot;media&amp;quot; object type, and Image service has a node schema for &amp;quot;image&amp;quot; object type&lt;br /&gt;
* the extended object builds it&#039;s schema by combining core + extended settings&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Per Service Schemas|Per Service Schemas]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-27_Graph_Use_Case/CreateNode&amp;diff=4377</id>
		<title>2025-03-27 Graph Use Case/CreateNode</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-27_Graph_Use_Case/CreateNode&amp;diff=4377"/>
		<updated>2026-05-11T08:30:12Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* CreateNode with setFieldConditionals and deepPathConditional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
= Use Case =&lt;br /&gt;
== CreateNode with identifiers ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;,&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
       &amp;quot;xxxx&amp;quot; : &amp;quot;yyyy&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
      // &amp;quot;optional&amp;quot;&lt;br /&gt;
      &amp;quot;xxxx&amp;quot; : &amp;quot;yyyy&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
&amp;quot;relationships&amp;quot;:[],&lt;br /&gt;
 &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
 &amp;quot;settings&amp;quot;:{&lt;br /&gt;
    &amp;quot;updatePropertiesOnMatch&amp;quot;: false &lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
        },&lt;br /&gt;
        properties: { //properties }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // if has userNode send to createNode&lt;br /&gt;
          objType: { serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; },&lt;br /&gt;
          properties: { userId: &#039;xxxx&#039; }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with versionedData ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
     &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
     &amp;quot;can send all fields of versionedData&amp;quot;,&lt;br /&gt;
     &amp;quot;if send any fields of versionedData will be hook properties then return all &amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;Relationship&amp;quot;: [],&lt;br /&gt;
 &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
 &amp;quot;callingFlow&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Exmaple Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //identifiers&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            // fields of main node&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            userId: &amp;quot;xxxx&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: []&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot;,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with targetNode ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;: {&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
     &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
       &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;fields&amp;quot;: {&lt;br /&gt;
       &amp;quot;//fields&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relType&amp;quot;: {&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        &amp;quot;// optional&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;: &amp;quot;from&amp;quot; &lt;br /&gt;
       &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
         &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;: {&lt;br /&gt;
     &amp;quot;updatePropertiesOnMatch&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Exmaple Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //identifiers&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            // fields of npde&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            userId: &amp;quot;xxxx&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
      graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with setFieldConditionals and deepPathConditional ==&lt;br /&gt;
* setFieldConditionals is check field in data before set field by conditional &lt;br /&gt;
* deepPathConditional is check requiredOncreate node and Relationship exist , before created&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;fields&amp;quot;:{&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;setFieldConditionals&amp;quot;:[ &amp;quot;// optional default array [ ]&amp;quot;&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;indexValue&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;fieldName&amp;quot;:&amp;quot;&amp;quot;, &amp;quot;// fieldName want to set&amp;quot;&lt;br /&gt;
         &amp;quot;passValue&amp;quot;:false, &amp;quot;//optional&amp;quot;&lt;br /&gt;
         &amp;quot;notPassValue&amp;quot;:true, &amp;quot;// optional&amp;quot;&lt;br /&gt;
         &amp;quot;conditionals&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
               &amp;quot;fieldName&amp;quot;:&amp;quot;&amp;quot;, &amp;quot;// field value for check&amp;quot;&lt;br /&gt;
               &amp;quot;value&amp;quot;:&amp;quot;&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
         ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        // if have multiple check&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;relationships&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;relType&amp;quot;:{ },&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;:&amp;quot;&amp;quot;,&lt;br /&gt;
         &amp;quot;targetObjType&amp;quot;:{},&lt;br /&gt;
         &amp;quot;targetIdentifiers&amp;quot;:{ }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;deepPathConditional&amp;quot;:[ &amp;quot;// optional default array [ ]&amp;quot; &lt;br /&gt;
      { &lt;br /&gt;
      { &lt;br /&gt;
         &amp;quot;condition&amp;quot;:&amp;quot;notExist&amp;quot;,&amp;quot;// if true can check || &#039;exist&#039; equal is false&amp;quot; &lt;br /&gt;
         &amp;quot;conditionCheck&amp;quot;:{ &amp;quot;// param it&#039;s seems like traversal of getDeepPathSearch&amp;quot;&lt;br /&gt;
            &amp;quot;nodeStructure&amp;quot;:{&lt;br /&gt;
               &amp;quot;objType&amp;quot;:{ },&lt;br /&gt;
               &amp;quot;fields&amp;quot;:{ }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;nextPath&amp;quot;:{&lt;br /&gt;
               &amp;quot;relationshipStructure&amp;quot;:{&lt;br /&gt;
                  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
                     &lt;br /&gt;
                  },&lt;br /&gt;
                  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               &amp;quot;nodeStructure&amp;quot;:{&lt;br /&gt;
       &lt;br /&gt;
               }, &lt;br /&gt;
               &amp;quot;nextPath&amp;quot;: {} &amp;quot;// if have multiple check&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
      &amp;quot;updatePropertiesOnMatch&amp;quot;:false&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;: Date.now() &amp;quot;// number&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with belongTo ==&lt;br /&gt;
* Params like create basicNode &amp;amp; versionedData but in objectSchema optional has belongTo If in objectSchema have belongTo will create query and return dataStructure of belongTo&lt;br /&gt;
* Must send : x-correlation-base-user-id : xxxx AND x-correlation-target-id : yyyy ( identifiers of  that node)&lt;br /&gt;
&lt;br /&gt;
== CreateNode with extendObjtype ==&lt;br /&gt;
* create objectSchema that have objectType for create main node eg. objectType: objectA then upload To S3&lt;br /&gt;
* create objectSchemathat have extendObjtype for existParentNode eg. objectType: objectB then upload To S3&lt;br /&gt;
* Send parameter with identifiers’s objectType of extendObjtype for create Node&lt;br /&gt;
&lt;br /&gt;
== CreateNode with extendObjtype and targetNode ==&lt;br /&gt;
* create objectSchema that have objectType for create main node eg. objectType: objectA &lt;br /&gt;
* createNode extend with relationship that have relationshipSchema : requiredOnCreate = true to targetNode&lt;br /&gt;
&lt;br /&gt;
== CreateNode With systemGenerated ==&lt;br /&gt;
* not send userNode or userId when createNode&lt;br /&gt;
&lt;br /&gt;
[[Category:Working documents| 2025-03-27]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-27_Graph_Use_Case/CreateNode&amp;diff=4376</id>
		<title>2025-03-27 Graph Use Case/CreateNode</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-27_Graph_Use_Case/CreateNode&amp;diff=4376"/>
		<updated>2026-05-11T08:27:47Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* CreateNode with setFieldConditionals and deepPathConditional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
= Use Case =&lt;br /&gt;
== CreateNode with identifiers ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;,&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
       &amp;quot;xxxx&amp;quot; : &amp;quot;yyyy&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
      // &amp;quot;optional&amp;quot;&lt;br /&gt;
      &amp;quot;xxxx&amp;quot; : &amp;quot;yyyy&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
&amp;quot;relationships&amp;quot;:[],&lt;br /&gt;
 &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
 &amp;quot;settings&amp;quot;:{&lt;br /&gt;
    &amp;quot;updatePropertiesOnMatch&amp;quot;: false &lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
        },&lt;br /&gt;
        properties: { //properties }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // if has userNode send to createNode&lt;br /&gt;
          objType: { serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; },&lt;br /&gt;
          properties: { userId: &#039;xxxx&#039; }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with versionedData ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
     &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
     &amp;quot;can send all fields of versionedData&amp;quot;,&lt;br /&gt;
     &amp;quot;if send any fields of versionedData will be hook properties then return all &amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;Relationship&amp;quot;: [],&lt;br /&gt;
 &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
 &amp;quot;callingFlow&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Exmaple Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //identifiers&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            // fields of main node&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            userId: &amp;quot;xxxx&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: []&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot;,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with targetNode ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;: {&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
     &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
       &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;fields&amp;quot;: {&lt;br /&gt;
       &amp;quot;//fields&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relType&amp;quot;: {&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        &amp;quot;// optional&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;: &amp;quot;from&amp;quot; &lt;br /&gt;
       &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
         &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;: {&lt;br /&gt;
     &amp;quot;updatePropertiesOnMatch&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Exmaple Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //identifiers&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            // fields of npde&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            userId: &amp;quot;xxxx&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
      graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with setFieldConditionals and deepPathConditional ==&lt;br /&gt;
* setFieldConditionals is check field in data before set field by conditional &lt;br /&gt;
* deepPathConditional is check requiredOncreate node and Relationship exist , before created&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        // identifiers&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;fields&amp;quot;:{&lt;br /&gt;
        // field&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;setFieldConditionals&amp;quot;:[ // optional default array [ ]&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;indexValue&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;fieldName&amp;quot;:&amp;quot;&amp;quot;, // fieldName want to set&lt;br /&gt;
         &amp;quot;passValue&amp;quot;:false, //optional&lt;br /&gt;
         &amp;quot;notPassValue&amp;quot;:true, // optional&lt;br /&gt;
         &amp;quot;conditionals&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
               &amp;quot;fieldName&amp;quot;:&amp;quot;&amp;quot;, // field value for check&lt;br /&gt;
               &amp;quot;value&amp;quot;:&amp;quot;&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
         ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        // if have multiple check&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;relationships&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;relType&amp;quot;:{ },&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;:&amp;quot;&amp;quot;,&lt;br /&gt;
         &amp;quot;targetObjType&amp;quot;:{},&lt;br /&gt;
         &amp;quot;targetIdentifiers&amp;quot;:{ }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;deepPathConditional&amp;quot;:[ // optional default array [ ] &lt;br /&gt;
      { &lt;br /&gt;
      { &lt;br /&gt;
         &amp;quot;condition&amp;quot;:&amp;quot;notExist&amp;quot;,// || if true can check || &#039;exist&#039; equal is false &lt;br /&gt;
         &amp;quot;conditionCheck&amp;quot;:{ // param it&#039;s seems like traversal of getDeepPathSearch&lt;br /&gt;
            &amp;quot;nodeStructure&amp;quot;:{&lt;br /&gt;
               &amp;quot;objType&amp;quot;:{ },&lt;br /&gt;
               &amp;quot;fields&amp;quot;:{ }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;nextPath&amp;quot;:{&lt;br /&gt;
               &amp;quot;relationshipStructure&amp;quot;:{&lt;br /&gt;
                  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
                     &lt;br /&gt;
                  },&lt;br /&gt;
                  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               &amp;quot;nodeStructure&amp;quot;:{&lt;br /&gt;
       &lt;br /&gt;
               }, &lt;br /&gt;
               &amp;quot;nextPath&amp;quot;: {} // if have multiple check&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
      &amp;quot;updatePropertiesOnMatch&amp;quot;:false&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;: Date.now() // number&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with belongTo ==&lt;br /&gt;
* Params like create basicNode &amp;amp; versionedData but in objectSchema optional has belongTo If in objectSchema have belongTo will create query and return dataStructure of belongTo&lt;br /&gt;
* Must send : x-correlation-base-user-id : xxxx AND x-correlation-target-id : yyyy ( identifiers of  that node)&lt;br /&gt;
&lt;br /&gt;
== CreateNode with extendObjtype ==&lt;br /&gt;
* create objectSchema that have objectType for create main node eg. objectType: objectA then upload To S3&lt;br /&gt;
* create objectSchemathat have extendObjtype for existParentNode eg. objectType: objectB then upload To S3&lt;br /&gt;
* Send parameter with identifiers’s objectType of extendObjtype for create Node&lt;br /&gt;
&lt;br /&gt;
== CreateNode with extendObjtype and targetNode ==&lt;br /&gt;
* create objectSchema that have objectType for create main node eg. objectType: objectA &lt;br /&gt;
* createNode extend with relationship that have relationshipSchema : requiredOnCreate = true to targetNode&lt;br /&gt;
&lt;br /&gt;
== CreateNode With systemGenerated ==&lt;br /&gt;
* not send userNode or userId when createNode&lt;br /&gt;
&lt;br /&gt;
[[Category:Working documents| 2025-03-27]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-27_Graph_Use_Case/CreateNode&amp;diff=4375</id>
		<title>2025-03-27 Graph Use Case/CreateNode</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-27_Graph_Use_Case/CreateNode&amp;diff=4375"/>
		<updated>2026-05-11T08:13:32Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* CreateNode with setFieldConditionals and deepPathConditional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
= Use Case =&lt;br /&gt;
== CreateNode with identifiers ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;,&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
       &amp;quot;xxxx&amp;quot; : &amp;quot;yyyy&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
      // &amp;quot;optional&amp;quot;&lt;br /&gt;
      &amp;quot;xxxx&amp;quot; : &amp;quot;yyyy&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
&amp;quot;relationships&amp;quot;:[],&lt;br /&gt;
 &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
 &amp;quot;settings&amp;quot;:{&lt;br /&gt;
    &amp;quot;updatePropertiesOnMatch&amp;quot;: false &lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
        },&lt;br /&gt;
        properties: { //properties }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // if has userNode send to createNode&lt;br /&gt;
          objType: { serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; },&lt;br /&gt;
          properties: { userId: &#039;xxxx&#039; }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with versionedData ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
     &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
     &amp;quot;can send all fields of versionedData&amp;quot;,&lt;br /&gt;
     &amp;quot;if send any fields of versionedData will be hook properties then return all &amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;Relationship&amp;quot;: [],&lt;br /&gt;
 &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
 &amp;quot;callingFlow&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Exmaple Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //identifiers&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            // fields of main node&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            userId: &amp;quot;xxxx&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: []&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot;,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with targetNode ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;: {&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
     &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
       &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;fields&amp;quot;: {&lt;br /&gt;
       &amp;quot;//fields&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relType&amp;quot;: {&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        &amp;quot;// optional&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;: &amp;quot;from&amp;quot; &lt;br /&gt;
       &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
         &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;: {&lt;br /&gt;
     &amp;quot;updatePropertiesOnMatch&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Exmaple Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //identifiers&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            // fields of npde&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            userId: &amp;quot;xxxx&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
      graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with setFieldConditionals and deepPathConditional ==&lt;br /&gt;
** setFieldConditionals is check field in data before set field by conditional &lt;br /&gt;
** deepPathConditional is check requiredOncreate node and Relationship exist , before created&lt;br /&gt;
&lt;br /&gt;
== CreateNode with belongTo ==&lt;br /&gt;
* Params like create basicNode &amp;amp; versionedData but in objectSchema optional has belongTo If in objectSchema have belongTo will create query and return dataStructure of belongTo&lt;br /&gt;
* Must send : x-correlation-base-user-id : xxxx AND x-correlation-target-id : yyyy ( identifiers of  that node)&lt;br /&gt;
&lt;br /&gt;
== CreateNode with extendObjtype ==&lt;br /&gt;
* create objectSchema that have objectType for create main node eg. objectType: objectA then upload To S3&lt;br /&gt;
* create objectSchemathat have extendObjtype for existParentNode eg. objectType: objectB then upload To S3&lt;br /&gt;
* Send parameter with identifiers’s objectType of extendObjtype for create Node&lt;br /&gt;
&lt;br /&gt;
== CreateNode with extendObjtype and targetNode ==&lt;br /&gt;
* create objectSchema that have objectType for create main node eg. objectType: objectA &lt;br /&gt;
* createNode extend with relationship that have relationshipSchema : requiredOnCreate = true to targetNode&lt;br /&gt;
&lt;br /&gt;
== CreateNode With systemGenerated ==&lt;br /&gt;
* not send userNode or userId when createNode&lt;br /&gt;
&lt;br /&gt;
[[Category:Working documents| 2025-03-27]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-27_Graph_Use_Case/CreateNode&amp;diff=4374</id>
		<title>2025-03-27 Graph Use Case/CreateNode</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-27_Graph_Use_Case/CreateNode&amp;diff=4374"/>
		<updated>2026-05-11T08:05:35Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* Using Case */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
= Use Case =&lt;br /&gt;
== CreateNode with identifiers ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;,&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
       &amp;quot;xxxx&amp;quot; : &amp;quot;yyyy&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
      // &amp;quot;optional&amp;quot;&lt;br /&gt;
      &amp;quot;xxxx&amp;quot; : &amp;quot;yyyy&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
&amp;quot;relationships&amp;quot;:[],&lt;br /&gt;
 &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
 &amp;quot;settings&amp;quot;:{&lt;br /&gt;
    &amp;quot;updatePropertiesOnMatch&amp;quot;: false &lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
        },&lt;br /&gt;
        properties: { //properties }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // if has userNode send to createNode&lt;br /&gt;
          objType: { serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; },&lt;br /&gt;
          properties: { userId: &#039;xxxx&#039; }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with versionedData ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
     &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
     &amp;quot;can send all fields of versionedData&amp;quot;,&lt;br /&gt;
     &amp;quot;if send any fields of versionedData will be hook properties then return all &amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;Relationship&amp;quot;: [],&lt;br /&gt;
 &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
 &amp;quot;callingFlow&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Exmaple Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //identifiers&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            // fields of main node&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            userId: &amp;quot;xxxx&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: []&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot;,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with targetNode ==&lt;br /&gt;
&#039;&#039;&#039;Example Param&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;: {&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
     &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
       &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;fields&amp;quot;: {&lt;br /&gt;
       &amp;quot;//fields&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relType&amp;quot;: {&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        &amp;quot;// optional&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;: &amp;quot;from&amp;quot; &lt;br /&gt;
       &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
         &amp;quot;xxxx&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;: 1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;: {&lt;br /&gt;
     &amp;quot;updatePropertiesOnMatch&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Exmaple Output&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //identifiers&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            // fields of npde&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            userId: &amp;quot;xxxx&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
      graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateNode with setFieldConditionals and deepPathConditional ==&lt;br /&gt;
&lt;br /&gt;
== CreateNode with belongTo ==&lt;br /&gt;
* Params like create basicNode &amp;amp; versionedData but in objectSchema optional has belongTo If in objectSchema have belongTo will create query and return dataStructure of belongTo&lt;br /&gt;
* Must send : x-correlation-base-user-id : xxxx AND x-correlation-target-id : yyyy ( identifiers of  that node)&lt;br /&gt;
&lt;br /&gt;
== CreateNode with extendObjtype ==&lt;br /&gt;
* create objectSchema that have objectType for create main node eg. objectType: objectA then upload To S3&lt;br /&gt;
* create objectSchemathat have extendObjtype for existParentNode eg. objectType: objectB then upload To S3&lt;br /&gt;
* Send parameter with identifiers’s objectType of extendObjtype for create Node&lt;br /&gt;
&lt;br /&gt;
== CreateNode with extendObjtype and targetNode ==&lt;br /&gt;
* create objectSchema that have objectType for create main node eg. objectType: objectA &lt;br /&gt;
* createNode extend with relationship that have relationshipSchema : requiredOnCreate = true to targetNode&lt;br /&gt;
&lt;br /&gt;
== CreateNode With systemGenerated ==&lt;br /&gt;
* not send userNode or userId when createNode&lt;br /&gt;
&lt;br /&gt;
[[Category:Working documents| 2025-03-27]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
	<entry>
		<id>https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4344</id>
		<title>2025-03-06 - Graph Handler Docs</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=2025-03-06_-_Graph_Handler_Docs&amp;diff=4344"/>
		<updated>2026-05-06T06:01:13Z</updated>

		<summary type="html">&lt;p&gt;Seagame: /* MoveNodeProperties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GraphHandler Function =&lt;br /&gt;
== &amp;lt;span id=&amp;quot;createNode&amp;quot;&amp;gt;CreateNode&amp;lt;/span&amp;gt; == &lt;br /&gt;
&#039;&#039;&#039;Use Case of  CreateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-03-27_Graph_CreateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean // false // true &lt;br /&gt;
** Required : optional&lt;br /&gt;
* originTimestamp &lt;br /&gt;
** Type : date.now() // number&lt;br /&gt;
** Required : optional for create or update&lt;br /&gt;
* relationships&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required : optional for create&lt;br /&gt;
* relationships[item]&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relType &lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relationships[item].relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationships[item].targetIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* setFieldConditionals&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* deepPathConditional&lt;br /&gt;
** type : array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlowConfig &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlowConfig.callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;: {&lt;br /&gt;
    &amp;quot;objectType&amp;quot;: string,&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;: {&lt;br /&gt;
      // ...fields&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
    setFieldConditionals: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        objType: {  },&lt;br /&gt;
        indexValue: { nameSpace: &#039;ex-011&#039;, systemTextTag: &#039;Gate-011&#039; }, // index field : value&lt;br /&gt;
        fieldName: &#039;&#039;,  // fieldName want to set&lt;br /&gt;
        passValue: &#039;false&#039;, optional&lt;br /&gt;
        notPassValue: &#039;true&#039;, //optional&lt;br /&gt;
        conditionals: [ optional ] // condition check field&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
    &amp;quot;relationships&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;relType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
        //... key and value of targetIdentifiers&lt;br /&gt;
      },&lt;br /&gt;
   	  &amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; | &amp;quot;to&amp;quot;&lt;br /&gt;
      &amp;quot;targetObjType&amp;quot;: {&lt;br /&gt;
        &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
        &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;targetIdentifiers&amp;quot;: {&lt;br /&gt;
        //... targetIdentifiers&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  deepPathConditional: [ // optional default array&lt;br /&gt;
      {&lt;br /&gt;
        condition: &#039;notExist&#039;, //&lt;br /&gt;
        conditionCheck: { // traversal&lt;br /&gt;
          nodeStructure: {&lt;br /&gt;
            objType: {  },&lt;br /&gt;
            fields: { }&lt;br /&gt;
          },&lt;br /&gt;
          nextPath: {&lt;br /&gt;
            relationshipStructure: {&lt;br /&gt;
              relType: { },&lt;br /&gt;
              relationshipDirection: &#039;to&#039;&lt;br /&gt;
            },&lt;br /&gt;
            nodeStructure: {&lt;br /&gt;
              objType: {   },&lt;br /&gt;
              fields: { }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
  &amp;quot;originTimestamp&amp;quot;: number,    // timestamp when create&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &lt;br /&gt;
   &amp;quot;updatePropertiesOnMatch&amp;quot;: boolean  // default=false&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: string,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: object,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.exitsNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return user&#039;s created&lt;br /&gt;
* queryResult.relationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: data from relationships in targetNode&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: Status from create node. Return &amp;quot;error&amp;quot; or &amp;quot;complete&amp;quot;. &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      returnCreateNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //...identifier&lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //...fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        existsNode: { },&lt;br /&gt;
        userNode: { // // if has userNode send to createNode&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;serviceTag&amp;quot;: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
              &amp;quot;objectType&amp;quot;: &amp;quot;user&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            properties: {&lt;br /&gt;
            //...properties&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        relationships: [ // optional : if has requiredOnCreated , createNode with targetNode&lt;br /&gt;
          {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              { serviceTag: &#039;string&#039;, objectType: &#039;string&#039; }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {&lt;br /&gt;
                // identifiers&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            relType: {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              relationshipTag: &#039;rel&#039;&lt;br /&gt;
            },&lt;br /&gt;
            relationshipProperties: {&lt;br /&gt;
              // properties&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;string&amp;quot;, // &amp;quot;complete&#039; or &amp;quot;error&amp;quot;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNode ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.updatePropertiesOnMatch &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;objType&amp;quot;:{&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;objInstanceFull&amp;quot;:{&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     // ...identifier&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fields&amp;quot;:{&lt;br /&gt;
     // ...fields&lt;br /&gt;
    }&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
   //…versionedData&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;settings&amp;quot;: {&lt;br /&gt;
  &amp;quot;returnSystemFieldsName&amp;quot; :boolean // default =  true or false&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.refactoredNodes&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return object from getNode&lt;br /&gt;
* refactoredNodes.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* refactoredNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* refactoredNodes.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.requestParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description:  return example send param&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      refactoredNodes: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;,&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            //… identifier &lt;br /&gt;
          },&lt;br /&gt;
          fields: {&lt;br /&gt;
            //…fields&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
          versionedDataLabel: {&lt;br /&gt;
            originTimestamp: number,&lt;br /&gt;
              forMatchedId: &amp;quot;string&amp;quot;,&lt;br /&gt;
                versionedDataId: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    requestParam: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodes ==&lt;br /&gt;
&#039;&#039;&#039;Use Case of GetNodes&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-04-23_Graph_Use_Case/GetNode_and_GetNodes#Use_Case_GetNodes&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* versionedDataLabels&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings.returnSystemFieldsName &lt;br /&gt;
** Type: Boolean &lt;br /&gt;
** Required : optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;objType&amp;quot;:{&lt;br /&gt;
     &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;fields&amp;quot;:{&lt;br /&gt;
    //…fields with matching value&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;versionedDataLabels&amp;quot;:[&lt;br /&gt;
     //…versionedDataLabels&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;returnSystemFieldsName&amp;quot;:boolean // default=false&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.getNodesReturnValues&lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objTypes &lt;br /&gt;
** Type: array&lt;br /&gt;
* getNodesReturnValues.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
* getNodesReturnValues.versionDataSystemFields.versionedDataLabel&lt;br /&gt;
** Type: object&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: string&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      getNodesReturnValues: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //.. all fields-1&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              //...identifier&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //...all fields-2&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          versionDataSystemFields: {&lt;br /&gt;
            versionedDataLabel: {&lt;br /&gt;
              originTimestamp: number,&lt;br /&gt;
              forMatchedId: &#039;string&#039;,&lt;br /&gt;
              versionedDataId: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateNode ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of UpdateNode&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-03_-_Graph_Use_Case/UpdateNode&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objInstanceFull.fields&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description :  can not send fields to update mainNode and versionedData together &lt;br /&gt;
* versionedDataIds&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type: number&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;objType&amp;quot;: {&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
   &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;objInstanceFull&amp;quot;: {&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
   //…identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;fields&amp;quot;: {&lt;br /&gt;
   //…fields&lt;br /&gt;
   // can not be send fields of mainNode  and versionedData in fields together!&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
&amp;quot;versionedDataIds&amp;quot;: {},&lt;br /&gt;
&amp;quot;originTimestamp&amp;quot;: number, //// timestamp when update&lt;br /&gt;
&amp;quot;settings&amp;quot;: {},&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.queryResult &lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data from created node&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: serviceTag and objectType&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: identifiers and fields&lt;br /&gt;
* queryResult.userId&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: data that update from user Account &lt;br /&gt;
* queryResult.versionDataSystemFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: optional return versionedData &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* returnValue.Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from updated node // error or complete &lt;br /&gt;
* returnValue.errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* returnValue.graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   returnValue: {&lt;br /&gt;
     queryResult: {&lt;br /&gt;
       objTypes: [&lt;br /&gt;
         {&lt;br /&gt;
           serviceTag: &#039;string&#039;,&lt;br /&gt;
           objectType: &#039;string&#039;&lt;br /&gt;
         }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {&lt;br /&gt;
           //...identifiers&lt;br /&gt;
         },&lt;br /&gt;
         fields: {&lt;br /&gt;
          //...fields&lt;br /&gt;
         }&lt;br /&gt;
       },&lt;br /&gt;
       userId: {&lt;br /&gt;
         // if have userNode send to updated&lt;br /&gt;
       },&lt;br /&gt;
       versionDataSystemFields: {&lt;br /&gt;
         versionedDataLabel: {&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
     requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   status: &#039;string&#039;,//&amp;quot;complete&amp;quot; // &amp;quot;error&amp;quot;&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &#039;string&#039;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CreateRelationship ==&lt;br /&gt;
&#039;&#039;&#039; Use Case of CreateRelationship&#039;&#039;&#039; &amp;gt;&amp;gt;&amp;gt; https://izara.io/wiki/index.php/2025-08-01_-_Graph_Use_Case/CreateRelationship&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject &lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required : true&lt;br /&gt;
* createRelationshipIfNothave&lt;br /&gt;
** Type : array&lt;br /&gt;
** Required: optional &lt;br /&gt;
** Description : using createRelationshipIfNothave for check relationship if not has created , can check both firstNode and SeconNode or onCreateAddRelationships&lt;br /&gt;
* onCreateAddRelationships&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* Settings&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* settings.updateRelPropsWhenExist&lt;br /&gt;
** Type: boolean&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlowConfig&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;createRelationshipIfNothave&amp;quot;: [ // optional &lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;onMatchRelationship&amp;quot;: {&lt;br /&gt;
          &amp;quot;relType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
            &amp;quot;relationshipTag&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;relationshipProperties&amp;quot;: {},&lt;br /&gt;
          &amp;quot;relationshipDirection&amp;quot;: string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;onMatchNode&amp;quot;: {&lt;br /&gt;
          &amp;quot;objType&amp;quot;: {&lt;br /&gt;
            &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
            &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;fields&amp;quot;: {&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;objType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relType&amp;quot;: {&lt;br /&gt;
          &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
          &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;relationshipDirection&amp;quot;:string // “from” , “to” &lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;: {&lt;br /&gt;
    &amp;quot;objType&amp;quot;: {&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;identifiers&amp;quot;: {&lt;br /&gt;
      //…identifiers&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;onCreateAddRelationships&amp;quot;: [&lt;br /&gt;
      //…optional &lt;br /&gt;
    ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;: {&lt;br /&gt;
    &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
    &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:string, // “from” , “to”&lt;br /&gt;
  &amp;quot;relationshipProperties&amp;quot;: {&lt;br /&gt;
    //…properties&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;settings&amp;quot;: {&lt;br /&gt;
    &amp;quot;updateRelPropsWhenExist&amp;quot;: boolean,&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
  &amp;quot;callingFlowProperties&amp;quot;: {&lt;br /&gt;
    &amp;quot;graphServiceName&amp;quot;: string&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationship.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from firstNode&lt;br /&gt;
* queryResult.secondNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data structure from secondNode&lt;br /&gt;
* queryResult..onCreateAddRelationships&lt;br /&gt;
** Type: array&lt;br /&gt;
** Description: return data structure from onCreateAddRelationships&lt;br /&gt;
* returnValue.firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* Status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: status from create node // error or complete &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;string&#039;,&lt;br /&gt;
            relationshipTag: &#039;string&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: {&lt;br /&gt;
          //…properties&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      firstNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;string&#039;,&lt;br /&gt;
            objectType: &#039;string&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
          identifiers: { //… identifiers },&lt;br /&gt;
            fields: {&lt;br /&gt;
              //… all fields&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          onCreateAddRelationships: [&lt;br /&gt;
            {&lt;br /&gt;
              objTypes: [&lt;br /&gt;
                {&lt;br /&gt;
                  serviceTag: &#039;string&#039;,&lt;br /&gt;
                  objectType: &#039;string&#039;&lt;br /&gt;
                }&lt;br /&gt;
              ],&lt;br /&gt;
              objInstanceFull: {&lt;br /&gt;
                identifiers: {&lt;br /&gt;
                  //… identifiers &lt;br /&gt;
                },&lt;br /&gt;
                fields: {&lt;br /&gt;
                  //… all fields &lt;br /&gt;
                }&lt;br /&gt;
              },&lt;br /&gt;
              relType: {&lt;br /&gt;
                serviceTag: &#039;string&#039;,&lt;br /&gt;
                relationshipTag: &#039;string&#039;&lt;br /&gt;
              },&lt;br /&gt;
              relationshipProperties: {&lt;br /&gt;
                //… all properties&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        },&lt;br /&gt;
        secondNode: {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &#039;string&#039;,&lt;br /&gt;
              objectType: &#039;string&#039;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
            identifiers: { //… identifiers },&lt;br /&gt;
              fields: {&lt;br /&gt;
                //… all fields&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            onCreateAddRelationships: [&lt;br /&gt;
              //… optional &lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
&lt;br /&gt;
    },&lt;br /&gt;
    Status: &#039;string&#039;, //“complete” // “error”&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
        //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{ //  optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //…identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{ // required&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relId&amp;quot;: &#039;string&#039; // // required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue &lt;br /&gt;
** Type: object &lt;br /&gt;
* queryResult&lt;br /&gt;
* Type: object&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return relId and properties&lt;br /&gt;
* returnValue.toObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return toObject if not send secondObject from param&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
&lt;br /&gt;
=== Return Example === &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResults: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &#039;string&#039;,&lt;br /&gt;
          relationshipTag: &#039;string&#039;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipProperties: {&lt;br /&gt;
        //…properties : &#039;string’&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    toObject: {&lt;br /&gt;
      objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         objectType: &#039;yyyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      objInstanceFull: {&lt;br /&gt;
        identifiers: { &lt;br /&gt;
          //&lt;br /&gt;
         },&lt;br /&gt;
        fields: { }&lt;br /&gt;
      }&lt;br /&gt;
    }, &lt;br /&gt;
    requestParams: {&lt;br /&gt;
      // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UpdateRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: true&lt;br /&gt;
* relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has relationshipTag and serviceTag &lt;br /&gt;
* relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: send properties that want to update &lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required: optional&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
     //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;: string,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;: string&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
    //…identifiers&lt;br /&gt;
   }&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relId&amp;quot;: string,&lt;br /&gt;
&amp;quot;relType&amp;quot;:{&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;:string,&lt;br /&gt;
   &amp;quot;relationshipTag&amp;quot;:string&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
 //… properties that want to update&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;relationshipDirection&amp;quot;: string, // &amp;quot;from&amp;quot; // “to”&lt;br /&gt;
&amp;quot;callingFlow&amp;quot;: string&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.firstObject And secondObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description : return objType {seviceTag and objectType} And identifiers&lt;br /&gt;
* queryResult.relId&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {seviceTag and relationshipTag}&lt;br /&gt;
* queryResult.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* queryResult.updatePropertiesParam&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties to updated&lt;br /&gt;
* queryResult.oldRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return old properties before update&lt;br /&gt;
* queryResult.newRelationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return new properties after updated &lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type : string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      firstObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      secondObject: {&lt;br /&gt;
        objType: {&lt;br /&gt;
          serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        identifiers: {&lt;br /&gt;
          //…identifiers&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relId: &amp;quot;string&amp;quot;,&lt;br /&gt;
        relType: {&lt;br /&gt;
        serviceTag: &amp;quot;string&amp;quot;,&lt;br /&gt;
          relationshipTag: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      relationshipDirection: &amp;quot;string&amp;quot;,&lt;br /&gt;
        updatePropertiesParam: {&lt;br /&gt;
        //… properties updated&lt;br /&gt;
      },&lt;br /&gt;
      oldRelationshipProperties: {&lt;br /&gt;
        // … old properties before update&lt;br /&gt;
      },&lt;br /&gt;
      newRelationshipProperties: {&lt;br /&gt;
        //… new properties after updated&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParams: {&lt;br /&gt;
     // return example send param&lt;br /&gt;
  }&lt;br /&gt;
  status: “string”, // &amp;quot;complete&amp;quot;,”error”&lt;br /&gt;
  errorsFound: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GetNodeAndRelationship ==&lt;br /&gt;
=== Request Parameters === &lt;br /&gt;
* sourceObjType&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and objectType&lt;br /&gt;
* sourceIdentifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* sourceVersionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetRelationships&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
* relTypeAndDirection.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: true&lt;br /&gt;
** Description: has serviceTag and relationshipTag&lt;br /&gt;
* relTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional&lt;br /&gt;
* relTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type: String&lt;br /&gt;
** Required: optional&lt;br /&gt;
* targetObjects&lt;br /&gt;
** Type: Array&lt;br /&gt;
** Required: Optional&lt;br /&gt;
* targetObjects.objType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: required if send targetObjects in param&lt;br /&gt;
* targetObjects.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional should have objType if identifiers exists&lt;br /&gt;
* targetObjects.versionedDataLabels&lt;br /&gt;
** Type: object&lt;br /&gt;
** Required: optional have objType if versionedDataLabels exists&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;sourceObjType&amp;quot;: { // required&lt;br /&gt;
   &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
     &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;sourceIdentifiers&amp;quot;: {}, // required&lt;br /&gt;
 &amp;quot;sourceVersionedDataLabels&amp;quot;: [], // optional&lt;br /&gt;
   &amp;quot;targetRelationships&amp;quot;: [ //required&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;relTypeAndDirection&amp;quot;: { // required&lt;br /&gt;
         &amp;quot;relType&amp;quot;: {&lt;br /&gt;
           &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
           &amp;quot;relationshipTag&amp;quot;: &amp;quot;rel&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;relationshipProperties&amp;quot;: {},//optional&lt;br /&gt;
         &amp;quot;relationshipDirection&amp;quot;: &amp;quot;&amp;quot; // required&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;targetObjects&amp;quot;: [ // optional&lt;br /&gt;
         {&lt;br /&gt;
           &amp;quot;objType&amp;quot;: {&lt;br /&gt;
             &amp;quot;serviceTag&amp;quot;: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
             &amp;quot;objectType&amp;quot;: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;identifiers&amp;quot;: {}, // optional &lt;br /&gt;
           &amp;quot;versionedDataLabels&amp;quot;: [] // optional have objType if versionedDataLabels exists&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     },&lt;br /&gt;
     // if have multiple relTypeAndDirection&lt;br /&gt;
   ],&lt;br /&gt;
     &amp;quot;settings&amp;quot;: {} // defaulf = false  &amp;gt;&amp;gt;&amp;gt; if have versionedDataLabels want to return all field of versionedata: settings = { returnSystemFieldsName: true }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response === &lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* queryResult.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* queryResult.relNodes:&lt;br /&gt;
** Type: array &lt;br /&gt;
* relNodes.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {serviceTag and relationshipTag}&lt;br /&gt;
* relNodes.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* relNodes.objTypes&lt;br /&gt;
** Type: array of object&lt;br /&gt;
** Description: return {serviceTag and objectType}&lt;br /&gt;
* relNodes.objInstanceFull&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return {identifiers and fields}&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
   queryResult: {&lt;br /&gt;
    objTypes: [&lt;br /&gt;
      {&lt;br /&gt;
       serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
       objectType: &#039;yyy&#039;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    objInstanceFull: {&lt;br /&gt;
      identifiers: {},&lt;br /&gt;
      fields: {  }&lt;br /&gt;
    },&lt;br /&gt;
    relNodes: [&lt;br /&gt;
     {&lt;br /&gt;
       relType: {&lt;br /&gt;
         serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
         relationshipTag: &#039;rel&#039;&lt;br /&gt;
       },&lt;br /&gt;
       relationshipProperties: { },&lt;br /&gt;
       objTypes: [&lt;br /&gt;
        {&lt;br /&gt;
          serviceTag: &#039;xxx&#039;,&lt;br /&gt;
          objectType: &#039;yyy&#039;&lt;br /&gt;
        }&lt;br /&gt;
       ],&lt;br /&gt;
       objInstanceFull: {&lt;br /&gt;
         identifiers: {},&lt;br /&gt;
         fields: {&lt;br /&gt;
            // field&lt;br /&gt;
          }&lt;br /&gt;
       },&lt;br /&gt;
        versionDataSystemFields: {&lt;br /&gt;
           &#039;0VersionDataLabel&#039;: {&lt;br /&gt;
              originTimestamp: &lt;br /&gt;
              forMatchedId: &lt;br /&gt;
              versionedDataId: &lt;br /&gt;
             }&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   requestParam : {&lt;br /&gt;
    // return example send param&lt;br /&gt;
   },&lt;br /&gt;
   errorsFound: [],&lt;br /&gt;
   graphServiceTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ChangeRelationshipType ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* firstObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipDirection&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* oldRelTypeAndDirection.relationshipProperties&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* newRelType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* changedByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : optional&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
** Description : default &amp;gt; settings.changeMultipleRelationships : false // if send settings.changeMultipleRelationships : true &amp;gt;&amp;gt; can change multiple relType&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;firstObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;secondObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;oldRelTypeAndDirection&amp;quot;:{&lt;br /&gt;
      &amp;quot;relType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;relationshipTag&amp;quot;:&amp;quot;old&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipProperties&amp;quot;:{&lt;br /&gt;
         //Properties&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;newRelType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;new&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;changedByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;callingFlow&amp;quot;:&amp;quot;yyyy&amp;quot;,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{&lt;br /&gt;
     &amp;quot;changeMultipleRelationships&amp;quot;: boolean: // default false&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.newRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* newRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* newRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.oldRelationshipType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relType&lt;br /&gt;
** Type: object&lt;br /&gt;
* oldRelationshipType.relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
* oldRelationshipType.relationshipProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    newRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;new&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     },&lt;br /&gt;
    oldRelationshipType: {&lt;br /&gt;
      relType: {&lt;br /&gt;
        serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
        relationshipTag: &amp;quot;old&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
      relationshipDirection: &amp;quot;&amp;quot; // &#039;from&#039; or &#039;to&#039;&lt;br /&gt;
      relationshipProperties: {}&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   requestParams : {&lt;br /&gt;
     // return example send param&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag : &#039;GraphHandeler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteRelationship ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* fromObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* secondObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* Identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* relId&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : optional&lt;br /&gt;
* callingFlow&lt;br /&gt;
** Type: string&lt;br /&gt;
** Required : true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;firstObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
  &amp;quot;secondObject&amp;quot;:{ // optional default object&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
         //identifiers&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
   &amp;quot;relId&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;relationshipDirection&amp;quot;:&amp;quot;string&amp;quot;// &amp;quot;from&amp;quot; or &amp;quot;to&amp;quot; &lt;br /&gt;
  &amp;quot;callingFlow&amp;quot;:&amp;quot;string&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objects&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objTypes&lt;br /&gt;
** Type: array&lt;br /&gt;
* queryResult.objInstanceFull.identifiers&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.objInstanceFull.fields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of fromObject and secondObject&lt;br /&gt;
* queryResult.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of userNode&lt;br /&gt;
* queryResult.resultDeleteRel&lt;br /&gt;
** Type : string&lt;br /&gt;
** Description: return status Relationship Delete&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  returnValue: {&lt;br /&gt;
    queryResult: {&lt;br /&gt;
      objects: [&lt;br /&gt;
        {&lt;br /&gt;
          objTypes: [&lt;br /&gt;
            {&lt;br /&gt;
              serviceTag: &amp;quot;xxxx&amp;quot;,&lt;br /&gt;
              objectType: &amp;quot;yyyy&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
            identifiers: {&lt;br /&gt;
              // identifiers&lt;br /&gt;
            },&lt;br /&gt;
            fields: {&lt;br /&gt;
              // fields&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          // if have multiple object objTypes&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &amp;quot;UserAccount&amp;quot;,&lt;br /&gt;
            objectType: &amp;quot;user&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        objInstanceFull: {&lt;br /&gt;
          identifiers: {&lt;br /&gt;
            userId: &amp;quot;zzz&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      resultDeleteRel: &amp;quot;Relationship Deleted&amp;quot; // default&lt;br /&gt;
    },&lt;br /&gt;
    requeatParam: {&lt;br /&gt;
       // return example send param&lt;br /&gt;
    },&lt;br /&gt;
    status: &amp;quot;string&amp;quot;, //default &amp;quot;complete&amp;quot; or &amp;quot;error&amp;quot;&lt;br /&gt;
    errorsFound: []&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DeleteNode ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* objType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
* objType.objectType&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* objType.serviceTag&lt;br /&gt;
** Type : string&lt;br /&gt;
** Required : true&lt;br /&gt;
* identifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required: true&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;objType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxx&amp;quot;,&lt;br /&gt;
      &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
      //&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResults.resultDeleteNode&lt;br /&gt;
** Type: Boolean&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; true or false&lt;br /&gt;
* requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams &lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return status deleted node &amp;gt;&amp;gt; complete or error&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: string&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 returnValue: {&lt;br /&gt;
  queryResults: { resultDeleteNode: true }, // true or false&lt;br /&gt;
  requestParams: {&lt;br /&gt;
   // return example send param&lt;br /&gt;
   }&lt;br /&gt;
  },&lt;br /&gt;
  status: &#039;string&#039;, // &#039;complete&#039; or &#039;error&#039;&lt;br /&gt;
  errorsFound: [],&lt;br /&gt;
  graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveRelationship ==&lt;br /&gt;
&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType} and identifiers&lt;br /&gt;
* targetObjType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , objectType}&lt;br /&gt;
* relType&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
** Description: required objType: {serviceTag , relationshipTag}&lt;br /&gt;
* relationshipDirection&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveToIdentifiers&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : true&lt;br /&gt;
* moveByUserId&lt;br /&gt;
** Type : String&lt;br /&gt;
** Required : true&lt;br /&gt;
* originTimestamp&lt;br /&gt;
** Type : number&lt;br /&gt;
** Required : true&lt;br /&gt;
* settings&lt;br /&gt;
** Type : object&lt;br /&gt;
** Required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sourceObject&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyy&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;identifiers&amp;quot;:{&lt;br /&gt;
	// identifiers&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;targetObjType&amp;quot;:{&lt;br /&gt;
      &amp;quot;objType&amp;quot;:{&lt;br /&gt;
         &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
         &amp;quot;objectType&amp;quot;:&amp;quot;yyyy&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relType&amp;quot;:{&lt;br /&gt;
      &amp;quot;serviceTag&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
      &amp;quot;relationshipTag&amp;quot;:&amp;quot;rel&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;relationshipDirection&amp;quot;:&amp;quot;from&amp;quot;, // &amp;quot;to&amp;quot;&lt;br /&gt;
   &amp;quot;moveToIdentifiers&amp;quot;:{&lt;br /&gt;
     // target identifiers&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;moveByUserId&amp;quot;:&amp;quot;xxxx&amp;quot;,&lt;br /&gt;
   &amp;quot;originTimestamp&amp;quot;:1234567890,&lt;br /&gt;
   &amp;quot;settings&amp;quot;:{}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveRelationship&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveRelationship.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.relationship&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data of after move relationship&lt;br /&gt;
* moveRelationship.moveToObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of moveToObject&lt;br /&gt;
* moveRelationship.historyData&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return properties {old target identifiers and originTimestamp} after moveRelationship &lt;br /&gt;
* moveRelationship.userNode&lt;br /&gt;
** Type: object&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String  &lt;br /&gt;
&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
returnValue: {&lt;br /&gt;
  queryResult: {&lt;br /&gt;
    moveRelationship: {&lt;br /&gt;
      sourceObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      relationship: {&lt;br /&gt;
        relType: {&lt;br /&gt;
          serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            relationshipTag: &#039;rel&#039;&lt;br /&gt;
        },&lt;br /&gt;
        relationshipProperties: { originTimestamp: 1234567890 }&lt;br /&gt;
      },&lt;br /&gt;
      moveToObject: {&lt;br /&gt;
        objTypes: [&lt;br /&gt;
          {&lt;br /&gt;
            serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
            objectType: &#039;yyyy&#039;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
          objInstanceFull: {  }&lt;br /&gt;
      },&lt;br /&gt;
      historyData: {&lt;br /&gt;
        relationshipProperties: { }&lt;br /&gt;
      },&lt;br /&gt;
      userNode: {&lt;br /&gt;
        objTypes: [{ serviceTag: &#039;UserAccount&#039;, objectType: &#039;user&#039; }],&lt;br /&gt;
          objInstanceFull: { }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  requestParam: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
status: &amp;quot;complete&amp;quot; // or error,&lt;br /&gt;
errorsFound: [],&lt;br /&gt;
graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MoveNodeProperties ==&lt;br /&gt;
=== Request Parameters ===&lt;br /&gt;
* sourceObject&lt;br /&gt;
** type: object&lt;br /&gt;
** required : true&lt;br /&gt;
* targetIdentifiers&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* moveProperties&lt;br /&gt;
** type : array&lt;br /&gt;
** required : true  // index minimum = 1&lt;br /&gt;
* updateProperties&lt;br /&gt;
** type : object&lt;br /&gt;
** required : true&lt;br /&gt;
* movePropertiesConditions&lt;br /&gt;
** type : array&lt;br /&gt;
** required : optional&lt;br /&gt;
&lt;br /&gt;
=== Request Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    sourceObject: {&lt;br /&gt;
      objType: { },&lt;br /&gt;
      identifier: { }&lt;br /&gt;
    },&lt;br /&gt;
    targetIdentifiers: {  },&lt;br /&gt;
    moveProperties: [  ],&lt;br /&gt;
    updateProperties: {  },&lt;br /&gt;
    movePropertiesConditions: [ // optional&lt;br /&gt;
      {&lt;br /&gt;
        checkObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onSetObject: &#039;target&#039;, // &amp;quot;source&amp;quot; | &amp;quot;target&amp;quot;&lt;br /&gt;
        onPassValue: true,&lt;br /&gt;
        onNotPassCondition: false, // optional&lt;br /&gt;
        fieldNameConditions: [  ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Output Response ===&lt;br /&gt;
* returnValue&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult&lt;br /&gt;
** Type: object&lt;br /&gt;
* queryResult.moveNodeProperties&lt;br /&gt;
** Type: object&lt;br /&gt;
* moveNodeProperties.sourceObject&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data of sourceObject&lt;br /&gt;
* moveRelationship.moveFieldToObject&lt;br /&gt;
** Type: string&lt;br /&gt;
** Description: return data after moveFieldToObject&lt;br /&gt;
* moveRelationship.movedFields&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return data field of moveToObject&lt;br /&gt;
* returnValue.requestParams&lt;br /&gt;
** Type: object&lt;br /&gt;
** Description: return same requestParams&lt;br /&gt;
* status&lt;br /&gt;
** Type: string&lt;br /&gt;
* errorsFound&lt;br /&gt;
** Type: array&lt;br /&gt;
* graphServiceTag&lt;br /&gt;
** Type: String&lt;br /&gt;
=== Return Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    returnValue: {&lt;br /&gt;
      queryResult: {&lt;br /&gt;
        moveNodeProperties: {&lt;br /&gt;
          sourceObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: {  },&lt;br /&gt;
              fields: {  }&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          moveFieldToObject: {&lt;br /&gt;
            objTypes: [&lt;br /&gt;
              {&lt;br /&gt;
                serviceTag: &#039;xxxx&#039;,&lt;br /&gt;
                objectType: &#039;yyy&#039;&lt;br /&gt;
              }&lt;br /&gt;
            ],&lt;br /&gt;
            objInstanceFull: {&lt;br /&gt;
              identifiers: { },&lt;br /&gt;
              fields: {&lt;br /&gt;
               &lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            movedFields: { Fields: { } } // &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      requestParam: { },&lt;br /&gt;
    status: &#039;complete&#039;,&lt;br /&gt;
    errorsFound: [],&lt;br /&gt;
    graphServiceTag: &#039;GraphHandler&#039;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Working documents| 2025-03-06]]&lt;/div&gt;</summary>
		<author><name>Seagame</name></author>
	</entry>
</feed>