Skip to content
Permalink
Browse files

Initial draft of ID Match API

  • Loading branch information
Benn Oshrin
Benn Oshrin committed Apr 2, 2021
1 parent 7e13d9f commit 026516f5a24d7dd6c191628097d0c2e5b5f18765

Large diffs are not rendered by default.

@@ -0,0 +1,34 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/current-values-response.json",
"title": "TAP Identity Match Current Values Response",
"description": "Current SoR values as known to the Identity Match engine",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"referenceId": {
"description": "Match Reference Identifier, if assigned",
"type": "string"
},
"requestTime": {
"description": "Time request was submitted by the System of Record",
"type": "string",
"format": "date-time"
},
"resolutionTime": {
"description": "Time request was resolved by the Identity Match service",
"type": "string",
"format": "date-time"
}
},
"required": [ "requestTime" ]
},
"sorAttributes": {
"description": "Attributes submitted by the System of Record to represent the subject",
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/core-schema.json#/properties/mixed"
}
},
"required": [ "meta", "sorAttributes" ]
}
@@ -0,0 +1,14 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/error-response.json",
"title": "TAP Identity Match Error Response",
"description": "Error with request",
"type": "object",
"properties": {
"error": {
"description": "Error",
"type": "string"
}
},
"required": [ "error" ]
}
@@ -0,0 +1,22 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/forced-reconciliation-request.json",
"title": "TAP Identity Match Forced Reconciliation Request",
"description": "Identity Match Forced Reconciliation Request",
"type": "object",
"properties": {
"sorAttributes": {
"description": "Attributes submitted by the System of Record to represent the subject",
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/core-schema.json#/properties/mixed"
},
"referenceId": {
"description": "Match Reference Identifier",
"type": "string"
},
"matchRequest": {
"description": "Match Request Identifier identifying this transaction (required if provided in the Potential Match Response)",
"type": "string"
}
},
"required": [ "sorAttributes", "referenceId" ]
}
@@ -0,0 +1,18 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/inventory-response.json",
"title": "TAP Identity Match Inventory of Requests Response",
"description": "Inventory of SoR requests",
"type": "object",
"properties": {
"sorids": {
"description": "System of Record Identifiers",
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
}
},
"required": [ "sorids" ]
}
@@ -0,0 +1,28 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/join-record-request.json",
"title": "TAP Identity Match Join Record Request",
"description": "Identity Match Join Records Request",
"type": "object",
"properties": {
"referenceIds": {
"description": "Arroy of Reference Identifiers no deprecate",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
},
"identifiers": {
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/attribute-dictionary.json#/definitions/identifiers",
"minItems": 1,
"uniqueItems": true
},
"golden": {
"description": "Golden attributes, as maintained by the Identity Match engine",
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/core-schema.json#/properties/mixed"
}
},
"required": [ "referenceIds" ]
}
@@ -0,0 +1,50 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/match-request-response.json",
"title": "TAP Identity Match Match Request Response",
"description": "Match requests",
"type": "object",
"properties": {
"matchRequests": {
"description": "An array of match requests",
"type": "object",
"patternProperties": {
"^[0-9]+$": {
"type": "object",
"properties": {
"attributes": {
"description": "An array of SoR records for this candidate",
"type": "array",
"items": {
"type": "object",
"properties": {
"record": {
"description": "The attributes for this candidate as asserted by the System of Record",
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/core-schema.json#/properties/mixed"
}
}
}
},
"referenceId": {
"description": "Match Reference Identifier, if assigned",
"type": "string"
},
"requestTime": {
"description": "Time request was submitted by the System of Record",
"type": "string",
"format": "date-time"
},
"resolutionTime": {
"description": "Time request was resolved by the Identity Match service",
"type": "string",
"format": "date-time"
}
},
"required": [ "attributes" ]
}
},
"additionalProperties": false
}
},
"required": [ "matchRequests" ]
}
@@ -0,0 +1,14 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/potential-match-external-response.json",
"title": "TAP Identity Match Potential Match (Externally Handled0) Response",
"description": "Potential match(es) found for search request, but externally handled",
"type": "object",
"properties": {
"matchRequest": {
"description": "Match Request Identifier",
"type": "string"
}
},
"required": []
}
@@ -0,0 +1,68 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/potential-match-response.json",
"title": "TAP Identity Match Potential Match Found Response",
"description": "Potential match(es) found for search request",
"type": "object",
"properties": {
"candidates": {
"description": "An array of candidates",
"type": "array",
"items": {
"type": "object",
"properties": {
"confidence": {
"description": "Optional but strongly recommended confidence indicator intended to help the administrator resolving the potential match; 100 is reserved for canonical searches that return multiple matches",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"referenceId": {
"description": "Match Reference Identifier, or the string 'new' to indicate the original request as a new record",
"type": "string"
},
"explanation": {
"description": "A human readable explanation as to why this candidate was returned, to provide guidance to an administrator reviewing the request",
"type": "string"
},
"attributes": {
"description": "An array of SoR records for this candidate",
"type": "array",
"items": {
"type": "object",
"properties": {
"record": {
"description": "The attributes for this candidate as asserted by the System of Record",
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/core-schema.json#/properties/mixed"
}
}
}
},
"golden": {
"description": "The golden record for this candidate (for coordinated implementations); if present, attributes may be empty",
"type": "object",
"properties": {
"record": {
"description": "The attributes for this candidate as asserted by the System of Record",
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/core-schema.json#/properties/mixed"
}
}
},
"identifiers": {
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/attribute-dictionary.json#/definitions/identifiers",
"minItems": 1,
"uniqueItems": true
},
},
"required": [ "referenceId", "attributes" ]
},
"minItems": 1,
"uniqueItems": true
},
"matchRequest": {
"description": "Match Request Identifier identifying this transaction",
"type": "string"
}
},
"required": [ "candidates" ]
}
@@ -0,0 +1,14 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/reassign-referenceid-request.json",
"title": "TAP Identity Match Reassign Reference Identifier Request",
"description": "Identity Match Reassign Reference Identifier Request",
"type": "object",
"properties": {
"referenceId": {
"description": "Match Reference Identifier",
"type": "string"
}
},
"required": [ referenceId" ]
}
@@ -0,0 +1,23 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/referenceid-response.json",
"title": "TAP Identity Match Unique Match Found Response",
"description": "Unique match found for search request",
"type": "object",
"properties": {
"referenceId": {
"description": "Match Reference Identifier",
"type": "string"
},
"identifiers": {
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/attribute-dictionary.json#/definitions/identifiers",
"minItems": 1,
"uniqueItems": true
},
"golden": {
"description": "Golden attributes, as maintained by the Identity Match engine",
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/core-schema.json#/properties/mixed"
}
},
"required": [ "referenceId" ]
}
@@ -0,0 +1,14 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://github.internet2.edu/benno/id-match-api/tree/draft/schema/json/standard-request.json",
"title": "TAP Identity Match Standard Request",
"description": "Standard Identity Match Request",
"type": "object",
"properties": {
"sorAttributes": {
"description": "Attributes submitted by the System of Record to represent the subject",
"$ref": "https://github.internet2.edu/benno/core-schema/tree/draft/schema/json/core-schema.json#/properties/mixed"
}
},
"required": [ "sorAttributes" ]
}

0 comments on commit 026516f

Please sign in to comment.
You can’t perform that action at this time.