diff --git a/.travis.yml b/.travis.yml index a664a31..5b7aa81 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ cache: install: - travis_wait npm install - - travis_wait npm install -g @angular/cli@7.1.4 + - travis_wait npm install -g @angular/cli@10.0.0 - ng version # - chromedriver --version @@ -27,4 +27,3 @@ script: - npm run test:headless - npm run build:docs - npm run build -# - npm run e2e:headless diff --git a/CHANGELOG.md b/CHANGELOG.md index 69f840a..1245fe0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), [markdownlint](https://dlaa.me/markdownlint/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 2.1.0 + +Compatibility release for framework upgrade to Angular 10: see [https://blog.angular.io/version-10-of-angular-now-available-78960babd41](https://blog.angular.io/version-10-of-angular-now-available-78960babd41) + +Major updates to most dependency versions have also been made which should improve file sizes, security, and stability. + +The following Senzing projects have also been updated to operate on Angular 10, +see the following links for associated tickets: +- [sdk-components-ng/issues/143](https://github.com/Senzing/sdk-components-ng/issues/143) +- [rest-api-client-ng/issues/39](https://github.com/Senzing/rest-api-client-ng/issues/39) +- [sdk-graph-components/issues/37](https://github.com/Senzing/sdk-graph-components/issues/37) + ## 2.0.0 - 2020-07-06 ### Added to 2.0.0 diff --git a/senzing-api.yaml b/senzing-api.yaml index 8e37e6a..5d379d4 100644 --- a/senzing-api.yaml +++ b/senzing-api.yaml @@ -1,12 +1,40 @@ openapi: 3.0.1 info: title: Senzing REST API - version: "1.4" + version: "2.0.0" description: >- This is the Senzing REST API. It describes the REST interface to Senzing API functions available via REST. It leverages the Senzing native API which is documented at + [https://docs.senzing.com](https://docs.senzing.com). +

+ NOTE: Some end-points described here will indicate "(Supports SSE)" to + indicate that they support "Server-sent Events" via the `text/event-stream` + media type. This support is activated by adding the + `Accept: text/event-stream` header to a request to override the + default `application/json` media type. Further, the end-point will behave + the similarly to its stand operation but will produce `progress` events + at regular intervals that are equivalent to its `200` response schema. + Upon success, the final event will be `completed` with the same response + schema as a `200` response. Upon failure, the final event will be + `failed` with same schema as the `4xx` or `5xx` response (typically the + `SzErrorResponse`) [https://docs.senzing.com](https://docs.senzing.com) + +servers: + - url: http://localhost:8250 + - url: '{protocol}://{host}:{port}' + variables: + protocol: + enum: + - http + - https + default: http + host: + default: localhost + port: + default: '8250' + paths: /heartbeat: get: @@ -35,6 +63,8 @@ paths: - Admin summary: Get the license information. operationId: license + parameters: + - $ref: '#/components/parameters/withRawQueryParam' responses: '200': description: Successful response @@ -48,12 +78,12 @@ paths: default: schema: $ref: '#/components/schemas/SzLicenseResponse' - /data-sources: + /version: get: tags: - - Config - summary: Get a list of configured data sources. - operationId: listDataSources + - Admin + summary: Get the full version information. + operationId: version parameters: - $ref: '#/components/parameters/withRawQueryParam' responses: @@ -62,84 +92,180 @@ paths: content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzDataSourcesResponse' + $ref: '#/components/schemas/SzVersionResponse' application/json: schema: - $ref: '#/components/schemas/SzDataSourcesResponse' + $ref: '#/components/schemas/SzVersionResponse' default: schema: - $ref: '#/components/schemas/SzDataSourcesResponse' - '5XX': - $ref: '#/components/responses/ServerError' - /data-sources/{dataSourceCode}/records/{recordId}: + $ref: '#/components/schemas/SzVersionResponse' + /server-info: get: tags: - - Entity Data - summary: Get an entity record by data source and record ID. - operationId: getDataSourceRecord - parameters: - - $ref: '#/components/parameters/dataSourceCodePathParam' - - $ref: '#/components/parameters/recordIdPathParam' - - $ref: '#/components/parameters/withRawQueryParam' + - Admin + summary: Get info regarding the server's state and supported features. + operationId: getServerInfo responses: '200': - description: Successul response + description: Successful response content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzRecordResponse' + $ref: '#/components/schemas/SzServerInfoResponse' application/json: schema: - $ref: '#/components/schemas/SzRecordResponse' + $ref: '#/components/schemas/SzServerInfoResponse' default: schema: - $ref: '#/components/schemas/SzRecordResponse' - '404': - description: If data source or record ID are not found. + $ref: '#/components/schemas/SzServerInfoResponse' + /attribute-types: + get: + tags: + - Config + summary: Get a list of configured attribute types. + operationId: getAttributeTypes + parameters: + - name: withInternal + description: >- + Set to `true` to include internal attribute types that are generally + not mapped by users. This defaults to false. + in: query + required: false + schema: + type: boolean + default: false + - name: attributeClass + description: >- + If specified, this filters the list of returned attribute types + to those of a specific attribute class. If not specified then no + filtering on attribute class is performed and all are returned. + in: query + required: false + schema: + $ref: '#/components/schemas/SzAttributeClass' + - name: featureType + description: >- + If specified, this filters the list of returned attribute types + to those belonging to a specific feature type. If not specified + then no filtering on feature type is performed and all are returned. + in: query + required: false + schema: + type: string + default: null + examples: + NAME: + value: NAME + ADDRESS: + value: ADDRESS + PHONE: + value: PHONE + DOB: + value: DOB + EMAIL: + value: EMAIL + EMPLOYER: + value: EMPLOYER + DRLIC: + value: DRLIC + SSN: + value: SSN + NATIONAL_ID: + value: NATIONAL_ID + PASSPORT: + value: PASSPORT + CITIZENSHIP: + value: CITIZENSHIP + NATIONALITY: + value: NATIONALITY + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzErrorResponse' + $ref: '#/components/schemas/SzAttributeTypesResponse' application/json: schema: - $ref: '#/components/schemas/SzErrorResponse' + $ref: '#/components/schemas/SzAttributeTypesResponse' default: schema: - $ref: '#/components/schemas/SzErrorResponse' - '5XX': + $ref: '#/components/schemas/SzAttributeTypesResponse' + '500': $ref: '#/components/responses/ServerError' - /entities/{entityId}: + /attribute-types/{attributeCode}: get: tags: - - Entity Data - summary: Get a resolved entity by entity ID. - operationId: getEntityByEntityId + - Config + summary: Get the attribute type identified by the attribute code. + operationId: getAttributeType parameters: - - name: entityId - description: >- - The unique numeric ID that identifies that entity being requested. - in: path - required: true - schema: - type: integer - format: int64 - - $ref: '#/components/parameters/withRelatedQueryParam' - - $ref: '#/components/parameters/withRawQueryParam' + - name: attributeCode + description: >- + The attribute code that uniquely identifies the attribute type. + in: path + required: true + schema: + type: string + examples: + NAME_ORG: + value: NAME_ORG + NAME_FULL: + value: NAME_FULL + NAME_LAST: + value: NAME_LAST + NAME_FIRST: + value: NAME_FIRST + NAME_MIDDLE: + value: NAME_MIDDLE + NAME_SUFFIX: + value: NAME_SUFFIX + ADDR_FULL: + value: ADDR_FULL + ADDR_LINE1: + value: ADDR_LINE1 + ADDR_CITY: + value: ADDR_CITY + ADDR_STATE: + value: ADDR_STATE + ADDR_POSTAL_CODE: + value: ADDR_POSTAL_CODE + ADDR_COUNTRY: + value: ADDR_COUNTRY + PHONE_NUMBER: + value: PHONE_NUMBER + EMAIL_ADDRESS: + value: EMAIL_ADDRESS + DATE_OF_BIRTH: + value: DATE_OF_BIRTH + DRIVERS_LICENSE_NUMBER: + value: DRIVERS_LICENSE_NUMBER + SSN_NUMBER: + value: SSN_NUMBER + NATIONAL_ID_NUMBER: + value: NATIONAL_ID_NUMBER + PASSPORT_NUMBER: + value: PASSPORT_NUMBER + PASSPORT_COUNTRY: + value: PASSPORT_COUNTRY + - $ref: '#/components/parameters/withRawQueryParam' responses: '200': description: Successful response content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzEntityResponse' + $ref: '#/components/schemas/SzAttributeTypeResponse' application/json: schema: - $ref: '#/components/schemas/SzEntityResponse' + $ref: '#/components/schemas/SzAttributeTypeResponse' default: schema: - $ref: '#/components/schemas/SzEntityResponse' + $ref: '#/components/schemas/SzAttributeTypeResponse' '404': - description: If the entity ID is not found. + description: >- + If the specified attribute code is not recognized. content: application/json; charset=UTF-8: schema: @@ -150,34 +276,172 @@ paths: default: schema: $ref: '#/components/schemas/SzErrorResponse' - '5XX': + '500': $ref: '#/components/responses/ServerError' - /data-sources/{dataSourceCode}/records/{recordId}/entity: + /data-sources: get: tags: - - Entity Data - summary: Get a resolved entity by data source and record ID. - operationId: getEntityByRecordId + - Config + summary: Get a list of configured data sources. + operationId: getDataSources parameters: - - $ref: '#/components/parameters/dataSourceCodePathParam' - - $ref: '#/components/parameters/recordIdPathParam' - - $ref: '#/components/parameters/withRelatedQueryParam' - $ref: '#/components/parameters/withRawQueryParam' responses: '200': - description: default response + description: Successful response content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzEntityResponse' + $ref: '#/components/schemas/SzDataSourcesResponse' application/json: schema: - $ref: '#/components/schemas/SzEntityResponse' + $ref: '#/components/schemas/SzDataSourcesResponse' default: schema: - $ref: '#/components/schemas/SzEntityResponse' - '404': - description: If data source or record ID are not found. + $ref: '#/components/schemas/SzDataSourcesResponse' + '500': + $ref: '#/components/responses/ServerError' + post: + tags: + - Config + summary: >- + Obtains the current default configuration, adds the specified data + sources and sets the modified configuration as the new default + configuration -- returning the set of all configured data sources. + operationId: addDataSources + parameters: + - name: dataSource + description: | + The multi-valued query parameter where each value is a data source + code identifying data sources to be created. If a data source code + is specified only via this parameter then the data source ID is + generated by the API server -- which is usually fine. If you want + to specify the data source ID, then use the request body instead. + in: query + required: false + style: form + explode: true + schema: + type: array + items: + type: string + examples: + singleDataSourceExample: + summary: Specify a single data source + value: [ PARTNERS ] + multipleDataSourcesExample: + summary: Specify multiple data sources + value: [ PARTNERS, VIPS ] + - $ref: '#/components/parameters/withRawQueryParam' + requestBody: + description: | + The optional request body to describe the data sources to be created. + This can be specified as an alternative to the `dataSource` parameter + or in addition to it. The content can be an array of string data + source codes or `SzDataSource` objects. It may also be a plain-text + unquoted string that is simply a single data source code. + See the various request body examples. + required: false + content: + application/json; charset=UTF-8: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/SzDataSourceDescriptor' + - $ref: '#/components/schemas/SzDataSourceDescriptor' + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noDataSources: + $ref: '#/components/examples/noDataSources' + singleSourceString: + $ref: '#/components/examples/singleDataSourceString' + singleSourceStringArray: + $ref: '#/components/examples/singleDataSourceStringArray' + multipleSourcesStringArray: + $ref: '#/components/examples/multipleDataSourcesStringArray' + singleSourceObjectNoId: + $ref: '#/components/examples/singleDataSourceObjectNoId' + singleSourceObjectArrayNoId: + $ref: '#/components/examples/singleDataSourceObjectArrayNoId' + singleSourceObjectWithId: + $ref: '#/components/examples/singleDataSourceObjectWithId' + singleSourceObjectArrayWithId: + $ref: '#/components/examples/singleDataSourceObjectArrayWithId' + multipleSourcesObjectArrayWithId: + $ref: '#/components/examples/multipleDataSourcesObjectArrayWithId' + multipleSourcesMixed: + $ref: '#/components/examples/multipleDataSourcesMixed' + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/SzDataSourceDescriptor' + - $ref: '#/components/schemas/SzDataSourceDescriptor' + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noDataSources: + $ref: '#/components/examples/noDataSources' + singleSourceString: + $ref: '#/components/examples/singleDataSourceString' + singleSourceStringArray: + $ref: '#/components/examples/singleDataSourceStringArray' + multipleSourcesStringArray: + $ref: '#/components/examples/multipleDataSourcesStringArray' + singleSourceObjectNoId: + $ref: '#/components/examples/singleDataSourceObjectNoId' + singleSourceObjectArrayNoId: + $ref: '#/components/examples/singleDataSourceObjectArrayNoId' + singleSourceObjectWithId: + $ref: '#/components/examples/singleDataSourceObjectWithId' + singleSourceObjectArrayWithId: + $ref: '#/components/examples/singleDataSourceObjectArrayWithId' + multipleSourcesObjectArrayWithId: + $ref: '#/components/examples/multipleDataSourcesObjectArrayWithId' + multipleSourcesMixed: + $ref: '#/components/examples/multipleDataSourcesMixed' + text/plain; charset=UTF=8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noDataSources: + $ref: '#/components/examples/noDataSources' + singleSourceUnquotedString: + $ref: '#/components/examples/singleDataSourceUnquotedString' + text/plain: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noDataSources: + $ref: '#/components/examples/noDataSources' + singleSourceUnquotedString: + $ref: '#/components/examples/singleDataSourceUnquotedString' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzDataSourcesResponse' + application/json: + schema: + $ref: '#/components/schemas/SzDataSourcesResponse' + default: + schema: + $ref: '#/components/schemas/SzDataSourcesResponse' + '403': + description: >- + If the server was started in read-only mode and so the operation + is not permitted. This is also returned if the server was started + with a file-based configuration rather than a configuration stored + in the database (i.e.: `G2CONFIGFILE` is specified in an INI file) content: application/json; charset=UTF-8: schema: @@ -188,166 +452,233 @@ paths: default: schema: $ref: '#/components/schemas/SzErrorResponse' - '5XX': + '500': $ref: '#/components/responses/ServerError' - /entities: + /data-sources/{dataSourceCode}: get: tags: - - Entity Data - summary: >- - Search for entities that would match or relate to the provided - entity features. - operationId: searchByAttributes + - Config + summary: Gets the details on the specified data source. + operationId: getDataSource parameters: - - name: attrs - description: >- - The record JSON describing the entity attributes in the same - format as how an entity record would be loaded. The specified - attributes will be treated as a hypothetical record being loaded - and the result will be anything that would have matched or related - to it. - in: query - required: true - schema: - type: object - additionalProperties: {} - example: >- - { - "NAME_TYPE": "PRIMARY", - "NAME_FIRST": "JANE", - "NAME_LAST": "SMITH", - "ADDR_TYPE": "HOME", - "ADDR_LINE1": "653 STATE ROUTE 7", - "ADDR_CITY": "FRESNO", - "ADDR_STATE": "CA", - "ADDR_POSTAL_CODE": "55073-1234" - } - - $ref: '#/components/parameters/withRawQueryParam' + - $ref: '#/components/parameters/dataSourceCodePathParam' + - $ref: '#/components/parameters/withRawQueryParam' responses: '200': description: Successful response content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzAttributeSearchResponse' + $ref: '#/components/schemas/SzDataSourceResponse' application/json: schema: - $ref: '#/components/schemas/SzAttributeSearchResponse' + $ref: '#/components/schemas/SzDataSourceResponse' default: schema: - $ref: '#/components/schemas/SzAttributeSearchResponse' - '400': + $ref: '#/components/schemas/SzDataSourceResponse' + '500': + $ref: '#/components/responses/ServerError' + /entity-types: + get: + tags: + - Config + summary: Get a list of configured entity types. + operationId: getEntityTypes + parameters: + - name: entityClass description: >- - If the specified attrs parameter is missing or is not formatted - properly. + If specified, this filters the list of returned entity types to + those having the specified entity class. If not specified then no + filtering on entity class is performed and all are returned. At + this time, the only supported entity class is `ACTOR`, however, + in the future this will change. + in: query + required: false + schema: + type: string + examples: + ACTOR: + summary: >- + ACTOR (e.g.: people, companies or organizations). + value: ACTOR + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzErrorResponse' + $ref: '#/components/schemas/SzEntityTypesResponse' application/json: schema: - $ref: '#/components/schemas/SzErrorResponse' + $ref: '#/components/schemas/SzEntityTypesResponse' default: schema: - $ref: '#/components/schemas/SzErrorResponse' - '5XX': + $ref: '#/components/schemas/SzEntityTypesResponse' + '500': $ref: '#/components/responses/ServerError' - /entity-paths: - get: + post: tags: - - Entity Graph + - Config summary: >- - Finds a path between two entities identified by entity ID or by - data sources and record IDs of constituent records. You may provide - entity IDs or data source and record IDs to identify the from/to - entities in the path, but you may not mix and match. - operationId: findPathByEntityID + Obtains the current default configuration, adds the specified entity + types and sets the modified configuration as the new default + configuration -- returning the set of all configured entity types. + operationId: addEntityTypes parameters: - - name: from - description: >- - The EntityIdentifier for the first entity for the path either as an - entity ID or a JSON-encoded RecordId for the constituent record. - Whatever format is used for the "from" parameter must match the - format of the "to" parameter. - in: query - required: true - schema: - $ref: '#/components/schemas/SzEntityIdentifier' - - name: to - description: >- - The EntityIdentifier for the last entity for the path either as an - entity ID or a JSON-encoded record ID for the constituent record. - Whatever format is used for the "to" parameter must match the - format of the "from" parameter. - in: query - required: true - schema: - $ref: '#/components/schemas/SzEntityIdentifier' - - name: maxDegrees - description: >- - The maximum number of degrees to look for a path from the first - entity to the last entity. - in: query - required: false - schema: - type: integer - format: int8 - minimum: 0 - maximum: 100 - default: 3 - - name: x - description: >- - Multi-valued query parameter containing EntityIdentifier definitions - that identify entities to be avoided or forbidden from the path - (depending on the forbidAvoided parameter). The entity identifiers - are either all 64-bit long integers representing entity IDs or they - are all RecordId instances identifying records that are part of the - resolved entities to avoid. If this parameter is not provided, then - the default is to NOT exclude any entities. - in: query - required: false - schema: - $ref: '#/components/schemas/SzEntityIdentifiers' - - name: forbidAvoided - description: >- - If the avoidEntities parameter is provided then this flag is used to - control whether or not to forbid the avoided entities rather than - include them in the path as a "last resort". - in: query - required: false - schema: - type: boolean - default: false - - name: s + - name: entityType + description: >- + The multi-valued query parameter where each value is an entity type + code identifying entity types to be created. + in: query + required: false + style: form + explode: true + schema: + type: array + items: + type: string + examples: + singleDataSourceExample: + summary: Specify a single entity type + value: [ VEHICLE ] + multipleDataSourcesExample: + summary: Specify multiple entity types + value: [ VEHICLE, VESSEL ] + - name: entityClass + description: | + The optional single-valued query parameter to specify the entity + class to use for all created entity types (i.e.: it is associated + with all values of `entityType` specified). This defaults to a + value of `ACTOR` which is the only valid value at this time. In + the future additional values may be allowed. + + *NOTE*: In the future, when other values are allowed and if creating + entity types with different classes then you can fully described + each entity type with its class using an array of `SzEntityType` + objects in the request body. + in: query + required: false + schema: + type: string + default: ACTOR + examples: + ACTOR: + summary: >- + ACTOR (e.g.: people, companies or organizations). + value: ACTOR + requestBody: description: >- - The multi-valued query parameter where each value is a data source - code identifying data sources for which one must be included in the - entities for the path. If not provided, then the default is to NOT - require any specific data sources. - in: query + The optional request body to describe the entity types to be created. + This can be specified as an alternative to the `entityType` parameter + or in addition to it. The content must be an array of string entity + type codes or `SzEntityType` objects. It may also be a plain-text + unquoted string that is simply a single entity type code. required: false - schema: - type: array - items: - type: string - - $ref: '#/components/parameters/withRawQueryParam' + content: + application/json; charset=UTF-8: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/SzEntityTypeDescriptor' + - $ref: '#/components/schemas/SzEntityTypeDescriptor' + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noEntityTypes: + $ref: '#/components/examples/noEntityTypes' + singleTypeString: + $ref: '#/components/examples/singleEntityTypeString' + singleTypeStringArray: + $ref: '#/components/examples/singleEntityTypeStringArray' + multipleTypesStringArray: + $ref: '#/components/examples/multipleEntityTypesStringArray' + singleTypeObjectNoId: + $ref: '#/components/examples/singleEntityTypeObjectNoId' + singleTypeObjectArrayNoId: + $ref: '#/components/examples/singleEntityTypeObjectArrayNoId' + singleTypeObjectWithId: + $ref: '#/components/examples/singleEntityTypeObjectWithId' + singleTypeObjectArrayWithId: + $ref: '#/components/examples/singleEntityTypeObjectArrayWithId' + multipleTypesObjectArrayWithId: + $ref: '#/components/examples/multipleEntityTypesObjectArrayWithId' + multipleTypesObjectArrayWithIdAndClass: + $ref: '#/components/examples/multipleEntityTypesObjectArrayWithIdAndClass' + multipleTypesMixed: + $ref: '#/components/examples/multipleEntityTypesMixed' + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/SzEntityTypeDescriptor' + - $ref: '#/components/schemas/SzEntityTypeDescriptor' + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noEntityTypes: + $ref: '#/components/examples/noEntityTypes' + singleTypeString: + $ref: '#/components/examples/singleEntityTypeString' + singleTypeStringArray: + $ref: '#/components/examples/singleEntityTypeStringArray' + multipleTypesStringArray: + $ref: '#/components/examples/multipleEntityTypesStringArray' + singleTypeObjectNoId: + $ref: '#/components/examples/singleEntityTypeObjectNoId' + singleTypeObjectArrayNoId: + $ref: '#/components/examples/singleEntityTypeObjectArrayNoId' + singleTypeObjectWithId: + $ref: '#/components/examples/singleEntityTypeObjectWithId' + singleTypeObjectArrayWithId: + $ref: '#/components/examples/singleEntityTypeObjectArrayWithId' + multipleTypesObjectArrayWithId: + $ref: '#/components/examples/multipleEntityTypesObjectArrayWithId' + multipleTypesObjectArrayWithIdAndClass: + $ref: '#/components/examples/multipleEntityTypesObjectArrayWithIdAndClass' + multipleTypesMixed: + $ref: '#/components/examples/multipleEntityTypesMixed' + text/plain; charset=UTF=8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noEntityTypes: + $ref: '#/components/examples/noEntityTypes' + singleTypeUnquotedString: + $ref: '#/components/examples/singleEntityTypeUnquotedString' + text/plain: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noEntityTypes: + $ref: '#/components/examples/noEntityTypes' + singleTypeUnquotedString: + $ref: '#/components/examples/singleEntityTypeUnquotedString' responses: '200': description: Successful response content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzEntityPathResponse' + $ref: '#/components/schemas/SzEntityTypesResponse' application/json: schema: - $ref: '#/components/schemas/SzEntityPathResponse' + $ref: '#/components/schemas/SzEntityTypesResponse' default: schema: - $ref: '#/components/schemas/SzEntityPathResponse' - '400': + $ref: '#/components/schemas/SzEntityTypesResponse' + '403': description: >- - If the 'from' or 'to' parameters are missing or if any of the - parameters are not formatted as expected. + If the server was started in read-only mode and so the operation + is not permitted. This is also returned if the server was started + with a file-based configuration rather than a configuration stored + in the database (i.e.: `G2CONFIGFILE` is specified in an INI file) content: application/json; charset=UTF-8: schema: @@ -358,86 +689,248 @@ paths: default: schema: $ref: '#/components/schemas/SzErrorResponse' - '5XX': + '500': $ref: '#/components/responses/ServerError' - /entity-networks: + /entity-types/{entityTypeCode}: get: tags: - - Entity Graph - summary: >- - Finds the entity network around one or more entities identified by - their entity IDs or by the data source codes and record ID's of their - constituent records. This attempts to find paths between the specified - entities. If no paths exist, then island networks are returned - with each island network containing up to a specified number of - related entities. - operationId: findNetworkByEntityID + - Config + summary: Gets the details on the specified entity type. + operationId: getEntityType parameters: - - name: e - description: >- - The multi-valued query parameter where each value is formatted as an - EntityIdentifier which may be 64-bit integer entity IDs or - JSON-encoded RecordId for the constituent records. The format for - all of the provided identifiers must be the same (i.e.: all entity - IDs or all data-source / record-id combos). - in: query - required: true - schema: - $ref: '#/components/schemas/SzEntityIdentifiers' - - name: maxDegrees - description: >- - The maximum number of degrees to look for a path between the - specified entities. - in: query - required: false - schema: - type: integer - format: int8 - minimum: 0 - maximum: 100 - default: 5 - - name: buildOut - description: >- - The maximum number of degrees to build out around each of the - specified entities regardless of those entities being on the - path between entities. - in: query - required: false - schema: - type: integer - format: int8 - minimum: 0 - maximum: 100 - default: 1 - - name: maxEntities + - $ref: '#/components/parameters/entityTypeCodePathParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityTypeResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityTypeResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityTypeResponse' + '500': + $ref: '#/components/responses/ServerError' + /entity-classes: + get: + tags: + - Config + summary: >- + Get a list of configured entity classes. Currently the only supported + entity class is `ACTOR`. + operationId: getEntityClasses + parameters: + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityClassesResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityClassesResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityClassesResponse' + '500': + $ref: '#/components/responses/ServerError' + /entity-classes/{entityClassCode}: + get: + tags: + - Config + summary: >- + Gets the details on the specified entity class. NOTE: Currently the + only supported entity class is `ACTOR`, but this will change in the + future. + operationId: getEntityClass + parameters: + - $ref: '#/components/parameters/entityClassCodePathParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityClassResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityClassResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityClassResponse' + '500': + $ref: '#/components/responses/ServerError' + /entity-classes/{entityClassCode}/entity-types: + get: + tags: + - Config + summary: >- + Get a list of configured entity types for the identified entity class. + NOTE: Currently the only supported entity class is `ACTOR`, but this + will change in the future. + operationId: getEntityTypesByClass + parameters: + - $ref: '#/components/parameters/entityClassCodePathParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityTypesResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityTypesResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityTypesResponse' + '500': + $ref: '#/components/responses/ServerError' + post: + tags: + - Config + summary: >- + Obtains the current default configuration, adds the specified entity + types and sets the modified configuration as the new default + configuration -- returning the set of all configured entity types. + operationId: addEntityTypesForClass + parameters: + - $ref: '#/components/parameters/entityClassCodePathParam' + - name: entityType + description: >- + The multi-valued query parameter where each value is an entity type + code identifying entity types to be created. + in: query + required: false + style: form + explode: true + schema: + type: array + items: + type: string + examples: + singleDataSourceExample: + summary: Specify a single entity type + value: [ VEHICLE ] + multipleDataSourcesExample: + summary: Specify multiple entity types + value: [ VEHICLE, VESSEL ] + requestBody: description: >- - The maximum number of entities to return to prevent responses - that are too large. - in: query + The optional request body to describe the entity types to be created. + This can be specified as an alternative to the `entityType` parameter + or in addition to it. The content must be an array of `SzEntityType` + objects and the entity classes in the `SzEntityType` objects must + match the entity class in the path. required: false - schema: - type: integer - format: int32 - minimum: 0 - default: 1000 - - $ref: '#/components/parameters/withRawQueryParam' + content: + application/json; charset=UTF-8: + schema: + type: array + items: + $ref: '#/components/schemas/SzEntityTypeDescriptor' + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noEntityTypes: + $ref: '#/components/examples/noEntityTypes' + singleTypeString: + $ref: '#/components/examples/singleEntityTypeString' + singleTypeStringArray: + $ref: '#/components/examples/singleEntityTypeStringArray' + multipleTypesStringArray: + $ref: '#/components/examples/multipleEntityTypesStringArray' + singleTypeObjectNoId: + $ref: '#/components/examples/singleEntityTypeObjectNoId' + singleTypeObjectArrayNoId: + $ref: '#/components/examples/singleEntityTypeObjectArrayNoId' + singleTypeObjectWithId: + $ref: '#/components/examples/singleEntityTypeObjectWithId' + singleTypeObjectArrayWithId: + $ref: '#/components/examples/singleEntityTypeObjectArrayWithId' + multipleTypesObjectArrayWithId: + $ref: '#/components/examples/multipleEntityTypesObjectArrayWithId' + multipleTypesObjectArrayWithIdAndClass: + $ref: '#/components/examples/multipleEntityTypesObjectArrayWithIdAndClass' + multipleTypesMixed: + $ref: '#/components/examples/multipleEntityTypesMixed' + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SzEntityTypeDescriptor' + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noEntityTypes: + $ref: '#/components/examples/noEntityTypes' + singleTypeString: + $ref: '#/components/examples/singleEntityTypeString' + singleTypeStringArray: + $ref: '#/components/examples/singleEntityTypeStringArray' + multipleTypesStringArray: + $ref: '#/components/examples/multipleEntityTypesStringArray' + singleTypeObjectNoId: + $ref: '#/components/examples/singleEntityTypeObjectNoId' + singleTypeObjectArrayNoId: + $ref: '#/components/examples/singleEntityTypeObjectArrayNoId' + singleTypeObjectWithId: + $ref: '#/components/examples/singleEntityTypeObjectWithId' + singleTypeObjectArrayWithId: + $ref: '#/components/examples/singleEntityTypeObjectArrayWithId' + multipleTypesObjectArrayWithId: + $ref: '#/components/examples/multipleEntityTypesObjectArrayWithId' + multipleTypesObjectArrayWithIdAndClass: + $ref: '#/components/examples/multipleEntityTypesObjectArrayWithIdAndClass' + multipleTypesMixed: + $ref: '#/components/examples/multipleEntityTypesMixed' + text/plain; charset=UTF=8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noEntityTypes: + $ref: '#/components/examples/noEntityTypes' + singleTypeUnquotedString: + $ref: '#/components/examples/singleEntityTypeUnquotedString' + text/plain: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + noEntityTypes: + $ref: '#/components/examples/noEntityTypes' + singleTypeUnquotedString: + $ref: '#/components/examples/singleEntityTypeUnquotedString' responses: '200': description: Successful response content: application/json; charset=UTF-8: schema: - $ref: '#/components/schemas/SzEntityNetworkResponse' + $ref: '#/components/schemas/SzEntityTypesResponse' application/json: schema: - $ref: '#/components/schemas/SzEntityNetworkResponse' + $ref: '#/components/schemas/SzEntityTypesResponse' default: schema: - $ref: '#/components/schemas/SzEntityNetworkResponse' - '400': + $ref: '#/components/schemas/SzEntityTypesResponse' + '403': description: >- - If the 'entityIds' parameters is missing or if any of the - parameters are not formatted as expected. + If the server was started in read-only mode and so the operation + is not permitted. This is also returned if the server was started + with a file-based configuration rather than a configuration stored + in the database (i.e.: `G2CONFIGFILE` is specified in an INI file) content: application/json; charset=UTF-8: schema: @@ -448,127 +941,2726 @@ paths: default: schema: $ref: '#/components/schemas/SzErrorResponse' - '5XX': + '500': $ref: '#/components/responses/ServerError' -components: - parameters: - withRawQueryParam: - in: query - name: withRaw - required: false - description: >- - Whether or not to include the raw JSON response from the underlying - native API. This raw response may include additional details but - lack some of the abstraction the standard response provides. If - true, then the 'rawData' field in the response will be a non-null - value and contain the additional details. - schema: - type: boolean - default: false - withRelatedQueryParam: - in: query - name: withRelated - required: false - description: >- - Whether or not to pull the complete features and records for - first-degree related entities (i.e.: the RelatedEntity instances - will have the "partial" flag set to true rather than false). If - false, then all returned RelatedEntity instances will only contain - partial data (the default). - schema: - type: boolean - default: false - dataSourceCodePathParam: - in: path - name: dataSourceCode - required: true - description: >- - The data source code identifying the data source with which - the requested record is associated. - schema: - type: string - recordIdPathParam: - in: path - name: recordId - required: true - description: >- - The identifier that uniquely identifies the requested record - within a given data source. This may have been specified - when the record was loaded or generated automatically. - schema: - type: string - responses: - ServerError: - description: Unexpected server error occurred. - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/SzErrorResponse' - application/json: - schema: - $ref: '#/components/schemas/SzErrorResponse' - default: - schema: - $ref: '#/components/schemas/SzErrorResponse' - schemas: - SzBaseResponse: - description: >- - Represents the base information included in all responses sans the - actual data for the response. - type: object - properties: - meta: - type: object - properties: - httpMethod: - type: string - enum: - - GET - - POST - - PUT - - PATCH - - DELETE - httpStatusCode: - type: integer - format: int16 - timestamp: - type: string - format: date-time - links: - type: object - properties: - self: - type: string - SzErrorResponse: - allOf: - - $ref: '#/components/schemas/SzBaseResponse' - - type: object - properties: - errors: - type: array - items: - $ref: '#/components/schemas/SzError' - SzResponseWithRawData: - description: >- - Extends the BaseResponse to add the rawData field. - allOf: - - $ref: '#/components/schemas/SzBaseResponse' - - type: object - properties: - rawData: - description: >- - The RAW result from the underlying native API function. + /entity-classes/{entityClassCode}/entity-types/{entityTypeCode}: + get: + tags: + - Config + summary: Gets the details on the specified entity type. + operationId: getEntityTypeByClass + parameters: + - $ref: '#/components/parameters/entityClassCodePathParam' + - $ref: '#/components/parameters/entityTypeCodePathParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityTypeResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityTypeResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityTypeResponse' + '500': + $ref: '#/components/responses/ServerError' + /configs/active: + get: + tags: + - Config + summary: >- + Gets the current active configuration as raw JSON, no interpretation. + operationId: getActiveConfig + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzConfigResponse' + application/json: + schema: + $ref: '#/components/schemas/SzConfigResponse' + default: + schema: + $ref: '#/components/schemas/SzConfigResponse' + '500': + $ref: '#/components/responses/ServerError' + /configs/template: + get: + tags: + - Config + summary: >- + Gets the base template configuration as raw JSON, no interpretation. + This is the initial configuration for a new repository. + operationId: getTemplateConfig + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzConfigResponse' + application/json: + schema: + $ref: '#/components/schemas/SzConfigResponse' + default: + schema: + $ref: '#/components/schemas/SzConfigResponse' + '500': + $ref: '#/components/responses/ServerError' + /data-sources/{dataSourceCode}/records: + post: + tags: + - Entity Data + summary: >- + Load a new record specified in a data source with either an + auto-generated record ID or a RECORD_ID specified in the payload. + operationId: addRecordWithReturnedRecordId + parameters: + - $ref: '#/components/parameters/dataSourceCodePathParam' + - $ref: '#/components/parameters/loadIdQueryParam' + - $ref: '#/components/parameters/withInfoQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + requestBody: + description: >- + The record data as JSON. The format of the JSON is described + by the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification). + The specified JSON may include or exclude the DATA_SOURCE field. + It will be added if excluded. If included, it must match the + data source code in the path parameters. + required: true + content: + application/json; charset=UTF-8: + schema: type: object - nullable: true additionalProperties: {} - SzLicenseResponse: + examples: + simpleFlatRecordExample: + $ref: '#/components/examples/simpleFlatRecordExample' + complexFlatRecordExample: + $ref: '#/components/examples/complexFlatRecordExample' + simpleHierarchicalRecordExample: + $ref: '#/components/examples/simpleHierarchicalRecordExample' + complexHierarchicalRecordExample: + $ref: '#/components/examples/complexHierarchicalRecordExample' + application/json: + schema: + type: object + additionalProperties: {} + examples: + simpleFlatRecordExample: + $ref: '#/components/examples/simpleFlatRecordExample' + complexFlatRecordExample: + $ref: '#/components/examples/complexFlatRecordExample' + simpleHierarchicalRecordExample: + $ref: '#/components/examples/simpleHierarchicalRecordExample' + complexHierarchicalRecordExample: + $ref: '#/components/examples/complexHierarchicalRecordExample' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzLoadRecordResponse' + application/json: + schema: + $ref: '#/components/schemas/SzLoadRecordResponse' + default: + schema: + $ref: '#/components/schemas/SzLoadRecordResponse' + '400': + description: >- + If the specified data contains a DATA_SOURCE field that is not + consistent with the dataSourceCode in the path of the request + or if the specified content body is not formatted as JSON. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '403': + description: >- + If the server was started in read-only mode and so the operation + is not permitted. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '404': + description: >- + If the specified data source code in the path is not recognized. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /data-sources/{dataSourceCode}/records/{recordId}: + get: + tags: + - Entity Data + summary: Get an entity record by data source and record ID. + operationId: getRecord + parameters: + - $ref: '#/components/parameters/dataSourceCodePathParam' + - $ref: '#/components/parameters/recordIdPathParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successul response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzRecordResponse' + application/json: + schema: + $ref: '#/components/schemas/SzRecordResponse' + default: + schema: + $ref: '#/components/schemas/SzRecordResponse' + '404': + description: If data source or record ID are not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + put: + tags: + - Entity Data + summary: >- + Load a new record or replace a record in a data source with a + specific record ID. + operationId: addRecord + parameters: + - $ref: '#/components/parameters/dataSourceCodePathParam' + - $ref: '#/components/parameters/recordIdPathParam' + - $ref: '#/components/parameters/loadIdQueryParam' + - $ref: '#/components/parameters/withInfoQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + requestBody: + description: >- + The record data as JSON. The format of the JSON is described + by the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification). + The specified JSON may include or exclude the DATA_SOURCE and + RECORD_ID fields. Any excluded field will be added to the JSON + accordingly. Any included field in the JSON, must match the + respective path parameter for data source code or record ID. + required: true + content: + application/json; charset=UTF-8: + schema: + type: object + additionalProperties: {} + examples: + simpleFlatRecordExample: + $ref: '#/components/examples/simpleFlatRecordExample' + complexFlatRecordExample: + $ref: '#/components/examples/complexFlatRecordExample' + simpleHierarchicalRecordExample: + $ref: '#/components/examples/simpleHierarchicalRecordExample' + complexHierarchicalRecordExample: + $ref: '#/components/examples/complexHierarchicalRecordExample' + application/json: + schema: + type: object + additionalProperties: {} + examples: + simpleFlatRecordExample: + $ref: '#/components/examples/simpleFlatRecordExample' + complexFlatRecordExample: + $ref: '#/components/examples/complexFlatRecordExample' + simpleHierarchicalRecordExample: + $ref: '#/components/examples/simpleHierarchicalRecordExample' + complexHierarchicalRecordExample: + $ref: '#/components/examples/complexHierarchicalRecordExample' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzLoadRecordResponse' + application/json: + schema: + $ref: '#/components/schemas/SzLoadRecordResponse' + default: + schema: + $ref: '#/components/schemas/SzLoadRecordResponse' + '400': + description: >- + If the specified data contains a DATA_SOURCE field that is not + consistent with the dataSourceCode in the path of the request + or if the specified content body is not formatted as JSON. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '403': + description: >- + If the server was started in read-only mode and so the operation + is not permitted. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '404': + description: >- + If the specified data source code in the path is not recognized. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + delete: + tags: + - Entity Data + summary: Delete a record given its data source and record ID. + operationId: deleteRecord + parameters: + - $ref: '#/components/parameters/dataSourceCodePathParam' + - $ref: '#/components/parameters/recordIdPathParam' + - $ref: '#/components/parameters/loadIdQueryParam' + - $ref: '#/components/parameters/withInfoQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: default response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzDeleteRecordResponse' + application/json: + schema: + $ref: '#/components/schemas/SzDeleteRecordResponse' + default: + schema: + $ref: '#/components/schemas/SzDeleteRecordResponse' + '404': + description: If data source is not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /data-sources/{dataSourceCode}/records/{recordId}/reevaluate: + post: + tags: + - Entity Data + summary: Reevaluate a record identified by a data source and record ID. + operationId: reevaluateRecord + parameters: + - $ref: '#/components/parameters/dataSourceCodePathParam' + - $ref: '#/components/parameters/recordIdPathParam' + - $ref: '#/components/parameters/withInfoQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: default response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzReevaluateResponse' + application/json: + schema: + $ref: '#/components/schemas/SzReevaluateResponse' + default: + schema: + $ref: '#/components/schemas/SzReevaluateResponse' + '404': + description: If data source or record ID are not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /data-sources/{dataSourceCode}/records/{recordId}/entity: + get: + tags: + - Entity Data + summary: Get a resolved entity by data source and record ID. + operationId: getEntityByRecordId + parameters: + - $ref: '#/components/parameters/dataSourceCodePathParam' + - $ref: '#/components/parameters/recordIdPathParam' + - $ref: '#/components/parameters/featureModeQueryParam' + - $ref: '#/components/parameters/withFeatureStatsQueryParam' + - $ref: '#/components/parameters/withInternalFeaturesQueryParam' + - $ref: '#/components/parameters/forceMinimalQueryParam' + - $ref: '#/components/parameters/withRelatedQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: default response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityResponse' + '404': + description: If data source or record ID are not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /data-sources/{dataSourceCode}/records/{recordId}/entity/why: + get: + tags: + - Entity Data + summary: >- + Returns an analysis of why the entity for the record with the + respective data source code and record ID resolved. + operationId: whyEntityByRecordID + parameters: + - $ref: '#/components/parameters/dataSourceCodePathParam' + - $ref: '#/components/parameters/recordIdPathParam' + - $ref: '#/components/parameters/withRelationshipsQueryParam' + - $ref: '#/components/parameters/whyWithFeatureStatsQueryParam' + - $ref: '#/components/parameters/whyWithInternalFeaturesQueryParam' + - $ref: '#/components/parameters/featureModeQueryParam' + - $ref: '#/components/parameters/forceMinimalQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successul response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzWhyEntityResponse' + application/json: + schema: + $ref: '#/components/schemas/SzWhyEntityResponse' + default: + schema: + $ref: '#/components/schemas/SzWhyEntityResponse' + '404': + description: If data source or record ID are not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /entities: + get: + tags: + - Entity Data + summary: >- + Search for entities that would match or relate to the provided + entity features. + operationId: searchByAttributes + parameters: + - name: attrs + description: | + The JSON record describing the entity attributes in the same + format as how an entity record is loaded. The specified + attributes are treated as a hypothetical record being loaded, + and the result is anything that would have matched or related + to it. Here are some examples of encoding this parameter: + + - **JavaScript Example** + ```javascript + var searchCriteria = { + "NAME_FULL": "Joe Schmoe", + "DATE_OF_BIRTH": "03-SEP-1987" + }; + var searchAttrs = JSON.stringify(searchCriteria); + var urlPath = "/entities?attrs=" + encodeURIComponent(searchAttrs); + ``` + + - **Java Example** + ```java + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("NAME_FULL", "Joe Schmoe"); + builder.add("DATE_OF_BIRTH", "03-SEP-1987"); + JsonObject searchCriteria = builder.build(); + + String searchAttrs = searchCriteria.toString(); + String encodedAttrs = URLEncoder.encode(searchAttrs, "UTF-8"); + String urlPath = "/entities?attrs=" + encodedAttrs; + ``` + + In both of the above examples the `urlPath` variable is set to: + ```json + + /entities?attrs=%7B%22NAME_FULL%22%3A%22Joe%20Schmoe%22%2C%22DATE_OF_BIRTH%22%3A%2203-SEP-1987%22%7D + + ``` + in: query + required: false + schema: + type: string + examples: + notSpecifiedExample: + summary: Not specified + value: + ssnExample: + summary: Social security number + value: >- + { + "SSN_NUMBER": "111-22-3333" + } + nameAndBirthDateExample: + summary: Name and date of birth + value: >- + { + "NAME_FULL": "JANE SMITH", + "DATE_OF_BIRTH": "03-SEP-1987" + } + nameAndAddressExample: + summary: Name and address + value: >- + { + "NAME_FULL": "JANE SMITH", + "ADDR_LINE1": "653 STATE ROUTE 7", + "ADDR_CITY": "FRESNO", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "55073-1234" + } + - name: attr + description: >- + Either the `attrs` or `attr` parameter is required, **however** if + the `attrs` parameter is provided it takes precedence and the `attr` + parameter will be ignored. If you are using this API programmatically + then you should typically use the `attrs` parameter. But when + manually constructing a URL in the browser address bar, in a + command-line tool like `curl` or in a REST client browser extension + for debugging or testing purposes, encoding that JSON value can be + unwieldy. This parameter (which is multi-valued) lets you specify + colon-delimited strings that are prefixed with the JSON property name + and suffixed with the value. For example, `NAME_FIRST:Joe` (url + encoded of course). This side-steps the need to URL-encode the + structural JSON characters and usually means you need only URL-encode + basic characters like colons (`%3A`) and spaces (`%20`). The JSON + constructed using this parameter is obviously flat. If you want to + group properties together by their "usage type" (e.g.: `NAME_TYPE`, + `PHONE_TYPE` or `ADDRESS_TYPE`) then you would **also** prefix with + the type (e.g.: `HOME_PHONE_NUMBER:702-555-1212`). + in: query + required: false + schema: + type: array + items: + type: string + examples: + notSpecifiedExample: + summary: Not specified + value: + basicExample: + summary: Basic name and date of birth example + value: [ "NAME_FULL:Joe Schmoe", "DATE_OF_BIRTH:03-SEP-1987"] + basicArrayExample: + summary: Multiple phone numbers without usage types + value: [ "PHONE_NUMBER:702-555-1212", "PHONE_NUMBER:702-555-1414" ] + basicUsageTypeExample: + summary: Multiple phone numbers with usage types + value: [ "HOME_PHONE_NUMBER:702-555-1212", "WORK_PHONE_NUMBER:702-555-1414" ] + complexUsageTypeExample: + summary: Multiple address search with usage types for grouping + value: [ + "HOME_ADDR_LINE1:101 Main Street", + "HOME_ADDR_CITY:Los Angeles", + "HOME_ADDR_STATE:CA", + "WORK_ADDR_LINE1:105 Colorado Blvd", + "WORK_ADDR_CITY:Pasadena", + "WORK_ADDR_STATE:CA" + ] + - $ref: '#/components/parameters/featureModeQueryParam' + - $ref: '#/components/parameters/withFeatureStatsQueryParam' + - $ref: '#/components/parameters/withInternalFeaturesQueryParam' + - $ref: '#/components/parameters/forceMinimalQueryParam' + - $ref: '#/components/parameters/withRelationshipsQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzAttributeSearchResponse' + application/json: + schema: + $ref: '#/components/schemas/SzAttributeSearchResponse' + default: + schema: + $ref: '#/components/schemas/SzAttributeSearchResponse' + '400': + description: >- + If the specified attrs parameter is missing or is not formatted + properly. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /entities/{entityId}: + get: + tags: + - Entity Data + summary: Get a resolved entity by entity ID. + operationId: getEntityByEntityId + parameters: + - name: entityId + description: >- + The unique numeric ID that identifies that entity being requested. + in: path + required: true + schema: + type: integer + format: int64 + - $ref: '#/components/parameters/featureModeQueryParam' + - $ref: '#/components/parameters/withFeatureStatsQueryParam' + - $ref: '#/components/parameters/withInternalFeaturesQueryParam' + - $ref: '#/components/parameters/forceMinimalQueryParam' + - $ref: '#/components/parameters/withRelatedQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityResponse' + '404': + description: If the entity ID is not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /entities/{entityId}/why: + get: + tags: + - Entity Data + summary: >- + Returns an analysis of why the entity for the respective + entity ID resolved. + operationId: whyEntityByEntityID + parameters: + - name: entityId + description: >- + The unique numeric ID that identifies that entity being requested. + in: path + required: true + schema: + type: integer + format: int64 + - $ref: '#/components/parameters/withRelationshipsQueryParam' + - $ref: '#/components/parameters/whyWithFeatureStatsQueryParam' + - $ref: '#/components/parameters/whyWithInternalFeaturesQueryParam' + - $ref: '#/components/parameters/featureModeQueryParam' + - $ref: '#/components/parameters/forceMinimalQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successul response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzWhyEntityResponse' + application/json: + schema: + $ref: '#/components/schemas/SzWhyEntityResponse' + default: + schema: + $ref: '#/components/schemas/SzWhyEntityResponse' + '404': + description: If entity ID is not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /why/records: + get: + tags: + - Entity Data + summary: >- + Returns an analysis of why the records identified by the data source + and record ID's in the query parameters resolved or did not resolve. + operationId: whyRecords + parameters: + - name: dataSource1 + description: >- + The data source for the first record. + required: true + in: query + schema: + type: string + - name: recordId1 + description: >- + The record ID for the first record. + required: true + in: query + schema: + type: string + - name: dataSource2 + description: >- + The data source for the second record. + required: true + in: query + schema: + type: string + - name: recordId2 + description: >- + The data source for the second record. + required: true + in: query + schema: + type: string + - $ref: '#/components/parameters/withRelationshipsQueryParam' + - $ref: '#/components/parameters/whyWithFeatureStatsQueryParam' + - $ref: '#/components/parameters/whyWithInternalFeaturesQueryParam' + - $ref: '#/components/parameters/featureModeQueryParam' + - $ref: '#/components/parameters/forceMinimalQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successul response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzWhyRecordsResponse' + application/json: + schema: + $ref: '#/components/schemas/SzWhyRecordsResponse' + default: + schema: + $ref: '#/components/schemas/SzWhyRecordsResponse' + '404': + description: If data source or record ID are not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /reevaluate-entity: + post: + tags: + - Entity Data + summary: Reevaluate an entity identified by its entity ID. + operationId: reevaluateEntity + parameters: + - name: entityId + in: query + required: true + description: >- + The entity ID of the entity to reevaluate. + schema: + type: integer + format: int64 + - $ref: '#/components/parameters/withInfoQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: default response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzReevaluateResponse' + application/json: + schema: + $ref: '#/components/schemas/SzReevaluateResponse' + default: + schema: + $ref: '#/components/schemas/SzReevaluateResponse' + '404': + description: If data source or record ID are not found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /entity-paths: + get: + tags: + - Entity Graph + summary: >- + Finds a path between two entities identified by entity ID or by + data sources and record IDs of constituent records. You may provide + entity IDs or data source and record IDs to identify the from/to + entities in the path, but you may not mix and match. + operationId: findEntityPath + parameters: + - name: from + description: >- + The `SzEntityIdentifier` for the first entity for the path either as + an entity ID or an encoded `SzRecordId` for the constituent record. + Whatever format is used for the "from" parameter must match the format + of the "to" parameter. NOTE: An encoded `SzRecordId` can EITHER + be encoded as JSON or as a delimited string where the first character + is the delimiter and the remainder is parsed as a data source prefix + (up to the second occurrence of the delimiter) and a record ID suffix + (all characters after the second occurrence of the delimiter). For + example: `{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`. + in: query + required: true + schema: + $ref: '#/components/schemas/SzEntityIdentifier' + examples: + entityIdExample: + summary: A numeric entity ID + value: 1234567 + encodedRecordIdExample: + summary: A record ID encoded as a deliminted string. + value: ":CUSTOMERS:ABC123" + jsonRecordIdExample: + summary: A record ID encoded as JSON + value: {"src":"CUSTOMERS","id":"ABC123"} + - name: to + description: >- + The `SzEntityIdentifier` for the last entity for the path either as + an entity ID or a encoded `SzRecordId` for the constituent record. + Whatever format is used for the "to" parameter must match the + format of the "from" parameter. NOTE: An encoded `SzRecordId` can + EITHER be encoded as JSON or as a delimited string where the first + character is the delimiter and the remainder is parsed as a data + source prefix (up to the second occurrence of the delimiter) and a + record ID suffix (all characters after the second occurrence of the + delimiter). For example: `{"src":"PEOPLE","id":"12345ABC"}` or + `:PEOPLE:12345ABC`. + in: query + required: true + schema: + $ref: '#/components/schemas/SzEntityIdentifier' + examples: + entityIdExample: + summary: A numeric entity ID + value: 7654321 + encodedRecordIdExample: + summary: A record ID encoded as a deliminted string. + value: ":EMPLOYEES:DEF456" + jsonRecordIdExample: + summary: A record ID encoded as JSON + value: {"src":"EMPLOYEES","id":"DEF456"} + - name: maxDegrees + description: >- + The maximum number of degrees to look for a path from the first + entity to the last entity. This defaults to `3` if not specified. + in: query + required: false + schema: + type: integer + format: int8 + minimum: 0 + maximum: 100 + default: 3 + - name: x + description: >- + Repeating query parameter containing `SzEntityIdentifier` definitions + that identify entities to be avoided or forbidden from the path + (depending on the forbidAvoided parameter). The entity identifiers + are either all 64-bit long integers representing entity IDs or they + are all encoded SzRecordId instances identifying records that are + part of the resolved entities to exclude. If this parameter is not + provided, then the default is to NOT exclude any entities. If both + this parameter and the `avoidEntities` parameter are specified then + the values are merged. NOTE: An encoded `SzRecordId` can EITHER be + encoded as JSON or as a delimited string where the first character is + the delimiter and the remainder is parsed as a data source prefix (up + to the second occurrence of the delimiter) and a record ID suffix (all + characters after the second occurrence of the delimiter). For + example: `{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`. + in: query + required: false + explode: true + style: form + schema: + type: array + items: + $ref: '#/components/schemas/SzEntityIdentifier' + examples: + avoidNoEntitiesExample: + $ref: '#/components/examples/noEntitiesExample' + avoidSingleByEntityIdExample: + $ref: '#/components/examples/singleEntityByEntityIdExample' + avoidMultipleByEntityIdExample: + $ref: '#/components/examples/multipleEntitiesByEntityIdExample' + avoidSingleByDelimitedRecordIdExample: + $ref: '#/components/examples/singleEntityByDelimitedRecordIdExample' + avoidMultipleByDelimitedRecordIdExample: + $ref: '#/components/examples/multipleEntitiesByDelimitedRecordIdExample' + avoidSingleByJsonRecordIdExample: + $ref: '#/components/examples/singleEntityByJsonRecordIdExample' + avoidMultipleByJsonRecordIdExample: + $ref: '#/components/examples/multipleEntitiesByJsonRecordIdExample' + avoidMultipleByMixedRecordIdExample: + $ref: '#/components/examples/multipleEntitiesByMixedRecordIdExample' + - name: avoidEntities + description: >- + Single query parameter containing multiple `SzEntityIdentifier` + definitions as a JSON array or a simple comma-separated array that + identify entities to be avoided or forbidden from the path + (depending on the forbidAvoided parameter). The entity identifiers + are either all 64-bit long integers representing entity IDs or they + are all encoded `SzRecordId` instances identifying records that are + part of the resolved entities to exclude. At least one entity + identifier is required. If both this parameter and one or more `x` + parameters are specified then the values are merged. NOTE: An + encoded `SzRecordId` can EITHER be encoded as JSON or as a delimited + string where the first character is the delimiter and the remainder + is parsed as a data source prefix (up to the second occurrence of the + delimiter) and a record ID suffix (all characters after the second + occurrence of the delimiter). For example: + `{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`. + in: query + required: false + schema: + $ref: '#/components/schemas/SzEntityIdentifiers' + examples: + avoidNoEntitiesArrayExample: + $ref: '#/components/examples/noEntitiesArrayExample' + avoidSingleByEntityIdArrayExample: + $ref: '#/components/examples/singleEntityByEntityIdArrayExample' + avoidMultipleByEntityIdArrayExample: + $ref: '#/components/examples/multipleEntitiesByEntityIdArrayExample' + avoidSingleByDelimitedRecordIdArrayExample: + $ref: '#/components/examples/singleEntityByDelimitedRecordIdArrayExample' + avoidMultipleByDelimitedRecordIdArrayExample: + $ref: '#/components/examples/multipleEntitiesByDelimitedRecordIdArrayExample' + avoidSingleByJsonRecordIdArrayExample: + $ref: '#/components/examples/singleEntityByJsonRecordIdArrayExample' + avoidMultipleByJsonRecordIdArrayExample: + $ref: '#/components/examples/multipleEntitiesByJsonRecordIdArrayExample' + avoidMultipleByMixedRecordIdArrayExample: + $ref: '#/components/examples/multipleEntitiesByMixedRecordIdArrayExample' + - name: forbidAvoided + description: >- + If the avoidEntities parameter is provided then this flag is used to + control whether or not to forbid the avoided entities rather than + include them in the path as a "last resort". + in: query + required: false + schema: + type: boolean + default: false + - name: s + description: >- + The multi-valued query parameter where each value is a data source + code identifying data sources for which one must be included in the + entities for the path. If not provided, then the default is to NOT + require any specific data sources. + in: query + required: false + style: form + explode: true + schema: + type: array + items: + type: string + examples: + requireNoDataSourcesExample: + summary: Require no data sources + value: [] + requireSingleDataSourceExample: + summary: Require a single data source + value: [ VIPS ] + requireMultipleDataSourcesExample: + summary: Require multiple data sources + value: [ VIPS, PARTNERS ] + - $ref: '#/components/parameters/featureModeQueryParam' + - $ref: '#/components/parameters/withFeatureStatsQueryParam' + - $ref: '#/components/parameters/withInternalFeaturesQueryParam' + - $ref: '#/components/parameters/forceMinimalQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityPathResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityPathResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityPathResponse' + '400': + description: >- + If the 'from' or 'to' parameters are missing or if any of the + parameters are not formatted as expected. Also, if any of the + identified entities or records cannot be found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /entity-networks: + get: + tags: + - Entity Graph + summary: >- + Finds the entity network around one or more entities identified by + their entity IDs or by the data source codes and record ID's of their + constituent records. This attempts to find paths between the specified + entities. If no paths exist, then island networks are returned + with each island network containing up to a specified number of + related entities. + operationId: findEntityNetwork + parameters: + - name: e + description: >- + Repeating query parameter containing `SzEntityIdentifier` definitions + that identify entities to be included in the entity network. The + entity identifiers are either all 64-bit long integers representing + entity IDs or they are all encoded `SzRecordId` instances identifying + records that are part of the resolved entities to avoid. At least + one entity identifier is required. If both this parameter and the + `entities` parameter are specified then the values are merged. + NOTE: An encoded SzRecordId can EITHER be encoded as JSON or as a + delimited string where the first character is the delimiter and the + remainder is parsed as a data source prefix (up to the second + occurrence of the delimiter) and a record ID suffix (all characters + after the second occurrence of the delimiter). For example: + `{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`. + in: query + required: false + style: form + explode: true + schema: + type: array + items: + $ref: '#/components/schemas/SzEntityIdentifier' + examples: + noEntitiesExample: + $ref: '#/components/examples/noEntitiesExample' + singleByEntityIdExample: + $ref: '#/components/examples/singleEntityByEntityIdExample' + multipleByEntityIdExample: + $ref: '#/components/examples/multipleEntitiesByEntityIdExample' + singleByDelimitedRecordIdExample: + $ref: '#/components/examples/singleEntityByDelimitedRecordIdExample' + multipleByDelimitedRecordIdExample: + $ref: '#/components/examples/multipleEntitiesByDelimitedRecordIdExample' + singleByJsonRecordIdExample: + $ref: '#/components/examples/singleEntityByJsonRecordIdExample' + multipleByJsonRecordIdExample: + $ref: '#/components/examples/multipleEntitiesByJsonRecordIdExample' + multipleByMixedRecordIdExample: + $ref: '#/components/examples/multipleEntitiesByMixedRecordIdExample' + - name: entities + description: >- + Single query parameter containing multiple SzEntityIdentifier + definitions that identify entities to be included in the entity + network as a JSON array or a simple comma-separated array. The + entity identifiers are either all 64-bit long integers representing + entity IDs or they are all encoded `SzRecordId` instances identifying + records that are part of the resolved entities to avoid. At least + one entity identifier is required. If both this parameter and one + or more `e` parameters are specified then the values are merged. + NOTE: An encoded `SzRecordId` can EITHER be encoded as JSON or as a + delimited string where the first character is the delimiter and the + remainder is parsed as a data source prefix (up to the second + occurrence of the delimiter) and a record ID suffix (all characters + after the second occurrence of the delimiter). For example: + `{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`. + in: query + required: false + schema: + $ref: '#/components/schemas/SzEntityIdentifiers' + examples: + noEntitiesArrayExample: + $ref: '#/components/examples/noEntitiesArrayExample' + singleByEntityIdArrayExample: + $ref: '#/components/examples/singleEntityByEntityIdArrayExample' + multipleByEntityIdArrayExample: + $ref: '#/components/examples/multipleEntitiesByEntityIdArrayExample' + singleByDelimitedRecordIdArrayExample: + $ref: '#/components/examples/singleEntityByDelimitedRecordIdArrayExample' + multipleByDelimitedRecordIdArrayExample: + $ref: '#/components/examples/multipleEntitiesByDelimitedRecordIdArrayExample' + singleByJsonRecordIdArrayExample: + $ref: '#/components/examples/singleEntityByJsonRecordIdArrayExample' + multipleByJsonRecordIdArrayExample: + $ref: '#/components/examples/multipleEntitiesByJsonRecordIdArrayExample' + multipleByMixedRecordIdArrayExample: + $ref: '#/components/examples/multipleEntitiesByMixedRecordIdArrayExample' + - name: maxDegrees + description: >- + The maximum number of degrees to look for a path between the + specified entities. If not specified, this defaults to `3`. + in: query + required: false + schema: + type: integer + format: int8 + minimum: 0 + maximum: 100 + default: 3 + - name: buildOut + description: >- + The maximum number of degrees to build out around each of the + specified entities regardless of those entities being on the + path between entities. The number of entities built out is limited + by the `maxEntities` parameter. This defaults to `1` degree if not + specified. + in: query + required: false + schema: + type: integer + format: int8 + minimum: 0 + maximum: 100 + default: 1 + - name: maxEntities + description: >- + The maximum number of entities to build out when the `buildOut` is + greater than zero (0). This defaults to `1000` if not specified. + in: query + required: false + schema: + type: integer + format: int32 + minimum: 0 + default: 1000 + - $ref: '#/components/parameters/featureModeQueryParam' + - $ref: '#/components/parameters/withFeatureStatsQueryParam' + - $ref: '#/components/parameters/withInternalFeaturesQueryParam' + - $ref: '#/components/parameters/forceMinimalQueryParam' + - $ref: '#/components/parameters/withRawQueryParam' + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzEntityNetworkResponse' + application/json: + schema: + $ref: '#/components/schemas/SzEntityNetworkResponse' + default: + schema: + $ref: '#/components/schemas/SzEntityNetworkResponse' + '400': + description: >- + If the 'e' entity identifiers parameter is missing or if any of the + parameters are not formatted as expected. Also, if any of the + identified entities or records cannot be found. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' + /bulk-data/analyze: + post: + tags: + - Bulk Data + summary: Analyze a bulk data set of records. (Supports SSE) + operationId: analyzeBulkRecords + parameters: + - $ref: '#/components/parameters/progressPeriodParam' + requestBody: + description: >- + The bulk record data as a single JSON record per line, a JSON array, + or a CSV. Further, multipart/form-data can be provided with the + "data" property representing the record data as described above. Set + your content type accordingly. The data should be in pre-mapped + format using JSON property names or CSV column names as described by + the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification). + required: true + content: + application/x-jsonlines; charset=UTF-8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataJsonLinesExample: + $ref: '#/components/examples/bulkDataJsonLinesExample' + application/x-jsonlines: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataJsonLinesExample: + $ref: '#/components/examples/bulkDataJsonLinesExample' + application/json; charset=UTF-8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataJsonExample: + $ref: '#/components/examples/bulkDataJsonExample' + application/json: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataJsonExample: + $ref: '#/components/examples/bulkDataJsonExample' + text/csv; charset=UTF-8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataCSVExample: + $ref: '#/components/examples/bulkDataCSVExample' + text/csv: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataCSVExample: + $ref: '#/components/examples/bulkDataCSVExample' + text/plain; charset=UTF-8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataCSVExample: + $ref: '#/components/examples/bulkDataCSVExample' + bulkDataJsonLinesExample: + $ref: '#/components/examples/bulkDataJsonLinesExample' + bulkDataJsonExample: + $ref: '#/components/examples/bulkDataJsonExample' + text/plain: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataCSVExample: + $ref: '#/components/examples/bulkDataCSVExample' + bulkDataJsonLinesExample: + $ref: '#/components/examples/bulkDataJsonLinesExample' + bulkDataJsonExample: + $ref: '#/components/examples/bulkDataJsonExample' + multipart/form-data: + schema: + type: object + properties: + body: + type: string + format: binary + responses: + '200': + description: Successful response. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzBulkDataAnalysisResponse' + application/json: + schema: + $ref: '#/components/schemas/SzBulkDataAnalysisResponse' + default: + schema: + $ref: '#/components/schemas/SzBulkDataAnalysisResponse' + '500': + $ref: '#/components/responses/ServerError' + /bulk-data/load: + post: + tags: + - Bulk Data + summary: Load the records in the provided bulk data set. (supports SSE) + operationId: loadBulkRecords + parameters: + - name: dataSource + description: >- + Used to set the overriding data source for the records. This data + source will be assigned to every record **unless** the record's + data source (including blank data source) has a specific mapping + specified by a `mapDataSources` or `mapDataSource` parameters. If + this parameter is **not** provided and no specific overrides are + provided for a record then the data source specified in the inbound + record is used directly. If the record has no data source and no + override is provided then it will fail to load. + in: query + required: false + schema: + type: string + examples: + CUSTOMERS: + value: CUSTOMERS + EMPLOYEES: + value: EMPLOYEES + - name: mapDataSources + description: | + A URL-encoded JSON object whose properties are interpreted as + data source codes to map from and whose corresponding values are + interpretted as data source codes to map to. For example, + `{"EMPL": "EMPLOYEES"}` (url-encoded of course) would map all + records with inbound data source `EMPL` to `EMPLOYEES`. To map + only inbound records with no data source to a specific data source + you would use an empty JSON property (e.g.: `{"": "CUSTOMERS"}`). + If the `dataSource` parameter is **not** provided and no specific + overrides are provided for a record with this parameter or via + `mapDataSource` then the data source specified in the inbound + record is used directly. If the record has no data source and no + overriding or mapped data source is provided for an empty data + source then the record will fail to load. + + **NOTE**: If both this parameter and the `mapDataSource` parameter + is provided then the mappings are merged with the more ad-hoc + `mapDataSource` parameter taking precedence since it is likely being + used for debugging and diagnostic purposes to avoid the URL + encoding. + + Here are some examples of encoding this parameter: + + - **JavaScript Example** + ```javascript + var dataSourceMap = { + "": "CUSTOMERS", + "EMPL": "EMPLOYEES", + "VEND": "VENDORS" + }; + var mapDataSources = JSON.stringify(dataSourceMap); + var urlPath = "/bulk-data/load?mapDataSources=" + + encodeURIComponent(mapDataSources); + ``` + + - **Java Example** + ```java + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("", "CUSTOMERS"); + builder.add("EMPL", "EMPLOYEES"); + builder.add("VEND", "VENDORS"); + JsonObject dataSourceMap = builder.build(); + + String mapDataSources = dataSourceMap.toString(); + String encodedMap = URLEncoder.encode(mapDataSources, "UTF-8"); + String urlPath = "/bulk-data/load?mapDataSources=" + encodedMap; + ``` + + In both of the above examples the `urlPath` variable is set to: + ```json + + /bulk-data/load?mapDataSources=%7B%22%22%3A%22CUSTOMERS%22%2C%22EMPL%22%3A%22EMPLOYEES%22%2C%22VEND%22%3A%22VENDORS%22%7D + + ``` + in: query + required: false + schema: + type: string + examples: + notSpecifiedExample: + summary: Not specified + value: + mapEmptyExample: + summary: Single mapping for missing data source + value: >- + { + "": "CUSTOMERS" + } + mapMultipleExample: + summary: Multiple data source mappings + value: >- + { + "": "CUSTOMERS", + "EMPL": "EMPLOYEES", + "VEND": "VENDORS" + } + - name: mapDataSource + description: | + As an alternative to the `mapDataSources` parameter you may specify + the `mapDataSource` parameter zero or more times to add additional + data source mappings or **override** data source mappings from + `mapDataSources`. If you are using this API programmatically + then you should typically use the `mapDataSources` parameter + instead of this one. But when manually constructing a URL in the + browser address bar, in a command-line tool like `curl` or in a REST + client browser extension for debugging or testing purposes, encoding + the JSON value for `mapDataSources` can be unwieldy. This parameter + (which is multi-valued) lets you specify delimited strings that + begin with the delimiter character, followed by the original + data source name, then the delimiter character and the new data + source name. You should only have to URL-encode the delimiter you + choose and maybe spaces. For example, `:EMPL:EMPLOYEES` or + `|EMPL|EMPLOYEES` (url-encoded of course) would map all records with + inbound data source `EMPL` to `EMPLOYEES`. To map only inbound + records with no data source to a specific data source you would + begin the value with two repeated delimiter characters followed by + the new data source value (e.g.: `||CUSTOMERS` or `::CUSTOMERS`). + If the `dataSource` parameter is **not** provided and no specific + overrides are provided for a record with this parameter or the + `mapDataSources` parameter then the data source specified in the + inbound record is used directly. If the record has no data source + and no overriding or mapped data source is provided for an empty + data source then the record will fail to load. + in: query + required: false + schema: + type: array + items: + type: string + examples: + noMappingsSpecified: + summary: No data source mappings specified + value: [ ] + singleSpecificOverrideExample: + summary: Map a single specific data source + value: [ ":CUST:CUSTOMERS" ] + multipleSpecificOverridesExample: + summary: Map multiple specific data sources + value: [ ":CUST:CUSTOMERS", ":EMPL:EMPLOYEES" ] + multipleSpecificOverridesWithEmptyExample: + summary: Map multiple specific data sources with empty mapping + value: [ "::CUSTOMERS", ":EMPL:EMPLOYEES", ":VENDOR:VENDORS" ] + - name: entityType + description: >- + Used to set the overriding entity type for the records. This entity + type will be assigned to every record **unless** the record's + entity type (including blank entity type) has a specific mapping + specified by a `mapEntityTypes` or `mapEntityType` parameters. If + this parameter is **not** provided and no specific overrides are + provided for a record then the entity type specified in the inbound + record is used directly. If the record has no entity type and no + override is provided then `GENERIC` will be used. + in: query + required: false + schema: + type: string + examples: + GENERIC: + value: GENERIC + PERSON: + value: PERSON + COMPANY: + value: COMPANY + - name: mapEntityTypes + description: | + A URL-encoded JSON object whose properties are interpreted as + entity type codes to map from and whose corresponding values are + interpretted as entity type codes to map to. For example, + `{"COMPANY": "ORGANIZATION"}` (url-encoded of course) would map all + records with inbound entity type `COMPANY` to `ORGANIZATION`. To + map only inbound records with no entity type to a specific entity + type you would use an empty JSON property (e.g.: `{"": "PERSON"}`). + If the `entityType` parameter is **not** provided and no specific + overrides are provided for a record with this parameter or via + `mapEntityType` then the entity type specified in the inbound + record is used directly. If the record has no entity type and no + overriding or mapped entity type is provided for an empty entity + type then `GENERIC` will be used. + + **NOTE**: If both this parameter and the `mapEntityType` parameter + is provided then the mappings are merged with the more ad-hoc + `mapEntityType` parameter taking precedence since it is likely being + used for debugging and diagnostic purposes to avoid the URL + encoding. + + Here are some examples of encoding this parameter: + + - **JavaScript Example** + ```javascript + var entityTypeMap = { + "": "PERSON", + "ORG": "ORGANIZATION", + "COMP": "ORGANIZATION" + }; + var mapEntityTypes = JSON.stringify(entityTypeMap); + var urlPath = "/bulk-data/load?mapEntityTypes=" + + encodeURIComponent(mapEntityTypes); + ``` + + - **Java Example** + ```java + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("", "PERSON"); + builder.add("ORG", "ORGANIZATION"); + builder.add("COMP", "ORGANIZATION"); + JsonObject entityTypeMap = builder.build(); + + String mapEntityTypes = entityTypeMap.toString(); + String encodedMap = URLEncoder.encode(mapEntityTypes, "UTF-8"); + String urlPath = "/bulk-data/load?mapEntityTypes=" + encodedMap; + ``` + + In both of the above examples the `urlPath` variable is set to: + ```json + + /bulk-data/load?mapEntityTypes=%7B%22%22%3A%22PERSON%22%2C%22ORG%22%3A%22ORGANIZATION%22%2C%22COMP%22%3A%22ORGANIZATION%22%7D + + ``` + in: query + required: false + schema: + type: string + examples: + notSpecifiedExample: + summary: Not specified + value: + mapEmptyExample: + summary: Single mapping for missing entity types + value: >- + { + "": "PERSON" + } + mapMultipleExample: + summary: Multiple entity type mappings + value: >- + { + "": "PERSON", + "ORG": "ORGANIZATION", + "COMP": "ORGANIZATION" + } + - name: mapEntityType + description: | + As an alternative to the `mapEntityTypes` parameter you may specify + the `mapEntityType` parameter zero or more times to add additional + data source mappings or **override** data source mappings from + `mapDataSources`. If you are using this API programmatically + then you should typically use the `mapDataSources` parameter + instead of this one. But when manually constructing a URL in the + browser address bar, in a command-line tool like `curl` or in a REST + client browser extension for debugging or testing purposes, encoding + the JSON value for `mapDataSources` can be unwieldy. This parameter + (which is multi-valued) lets you specify delimited strings that + begin with the delimiter character, followed by the original + data source name, then the delimiter character and the new data + source name. You should only have to URL-encode the delimiter you + choose and maybe spaces. For example, `:EMPL:EMPLOYEES` or + `|EMPL|EMPLOYEES` (url-encoded of course) would map all records with + inbound data source `EMPL` to `EMPLOYEES`. To map only inbound + records with no data source to a specific data source you would + begin the value with two repeated delimiter characters followed by + the new data source value (e.g.: `||CUSTOMERS` or `::CUSTOMERS`). + If the `dataSource` parameter is **not** provided and no specific + overrides are provided for a record with this parameter or the + `mapDataSources` parameter then the data source specified in the + inbound record is used directly. If the record has no entity type and no + overriding or mapped entity type is provided for an empty entity + type then `GENERIC` will be used. + in: query + required: false + schema: + type: array + items: + type: string + examples: + noMappingsSpecified: + summary: No data source mappings specified + value: [ ] + singleSpecificOverrideExample: + summary: Map a single specific data source + value: [ ":COMP:COMPANY" ] + multipleSpecificOverridesExample: + summary: Map multiple specific data sources + value: [ ":COMP:COMPANY", ":ORG:ORGANIZATION" ] + multipleSpecificOverridesWithEmptyExample: + summary: Map multiple specific data sources with empty mapping + value: [ "::GENERIC", ":COMP:COMPANY", ":ORG:ORGANIZATION" ] + - $ref: '#/components/parameters/progressPeriodParam' + requestBody: + description: >- + The bulk record data as a single JSON record per line, a JSON array, + or a CSV. Further, multipart/form-data can be provided with the + "data" property representing the record data as described above. Set + your content type accordingly. The data should be in pre-mapped + format using JSON property names or CSV column names as described by + the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification). + required: true + content: + application/x-jsonlines; charset=UTF-8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataJsonLinesExample: + $ref: '#/components/examples/bulkDataJsonLinesExample' + application/x-jsonlines: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataJsonLinesExample: + $ref: '#/components/examples/bulkDataJsonLinesExample' + application/json; charset=UTF-8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataJsonExample: + $ref: '#/components/examples/bulkDataJsonExample' + application/json: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataJsonExample: + $ref: '#/components/examples/bulkDataJsonExample' + text/csv; charset=UTF-8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataCSVExample: + $ref: '#/components/examples/bulkDataCSVExample' + text/csv: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataCSVExample: + $ref: '#/components/examples/bulkDataCSVExample' + text/plain; charset=UTF-8: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataCSVExample: + $ref: '#/components/examples/bulkDataCSVExample' + bulkDataJsonLinesExample: + $ref: '#/components/examples/bulkDataJsonLinesExample' + bulkDataJsonExample: + $ref: '#/components/examples/bulkDataJsonExample' + text/plain: + schema: + type: string + examples: + chooseExample: + $ref: '#/components/examples/chooseExample' + bulkDataCSVExample: + $ref: '#/components/examples/bulkDataCSVExample' + bulkDataJsonLinesExample: + $ref: '#/components/examples/bulkDataJsonLinesExample' + bulkDataJsonExample: + $ref: '#/components/examples/bulkDataJsonExample' + multipart/form-data: + schema: + type: object + properties: + body: + type: string + format: binary + responses: + '200': + description: Successful response + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzBulkLoadResponse' + application/json: + schema: + $ref: '#/components/schemas/SzBulkLoadResponse' + default: + schema: + $ref: '#/components/schemas/SzBulkLoadResponse' + '403': + description: >- + If the server was started in read-only mode and so the operation + is not permitted. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + '500': + $ref: '#/components/responses/ServerError' +components: + examples: + chooseExample: + summary: -- choose an example -- + value: + noDataSources: + summary: No data sources in content body + value: + singleDataSourceUnquotedString: + summary: Single data source as an unquoted string + value: >- + CUSTOMERS + singleDataSourceString: + summary: Single data source as a string + value: >- + "CUSTOMERS" + singleDataSourceStringArray: + summary: Single data source in a string array + value: >- + ["CUSTOMERS"] + multipleDataSourcesStringArray: + summary: Multiple data sources in a string array + value: >- + ["CUSTOMERS", "EMPLOYEES"] + singleDataSourceObjectNoId: + summary: Single data source as an SzDataSource object + value: >- + {"dataSourceCode": "CUSTOMERS"} + singleDataSourceObjectArrayNoId: + summary: Single data source as an SzDataSource array + value: >- + [ {"dataSourceCode": "CUSTOMERS"} ] + singleDataSourceObjectWithId: + summary: Single data source as an SzDataSource object with ID + value: >- + { + "dataSourceCode": "CUSTOMERS", + "dataSourceId": 1000 + } + singleDataSourceObjectArrayWithId: + summary: Single data source as an SzDataSource array with ID + value: >- + [ + { + "dataSourceCode": "CUSTOMERS", + "dataSourceId": 1000 + } + ] + multipleDataSourcesObjectArrayWithId: + summary: Multiple data sources as an SzDataSource array with IDs + value: >- + [ + { + "dataSourceCode": "CUSTOMERS", + "dataSourceId": 1000 + }, + { + "dataSourceCode": "EMPLOYEES", + "dataSourceId": 1001 + } + ] + multipleDataSourcesMixed: + summary: Multiple data sources in a mixed array + value: >- + [ + "CUSTOMERS", + { + "dataSourceCode": "EMPLOYEES" + }, + { + "dataSourceCode": "VENDOR", + "dataSourceId": 1002 + } + ] + noEntityTypes: + summary: No entity types in content body + value: + singleEntityTypeUnquotedString: + summary: Single entity type as an unquoted string + value: >- + PERSON + singleEntityTypeString: + summary: Single entity type as a string + value: >- + "PERSON" + singleEntityTypeStringArray: + summary: Single entity type in a string array + value: >- + ["PERSON"] + multipleEntityTypesStringArray: + summary: Multiple entity types in a string array + value: >- + ["PERSON", "COMPANY"] + singleEntityTypeObjectNoId: + summary: Single entity type as an SzEntityType object + value: >- + {"entityTypeCode": "PERSON"} + singleEntityTypeObjectArrayNoId: + summary: Single entity type as an SzEntityType array + value: >- + [ {"entityTypeCode": "PERSON"} ] + singleEntityTypeObjectWithId: + summary: Single entity type as an SzEntityType object with ID + value: >- + { + "entityTypeCode": "PERSON", + "entityTypeId": 1000 + } + singleEntityTypeObjectArrayWithId: + summary: Single entity type as an SzEntityType array with ID + value: >- + [ + { + "entityTypeCode": "PERSON", + "entityTypeId": 1000 + } + ] + multipleEntityTypesObjectArrayWithId: + summary: Multiple entity types as an SzEntityType array with IDs + value: >- + [ + { + "entityTypeCode": "PERSON", + "entityTypeId": 1000 + }, + { + "entityTypeCode": "COMPANY", + "entityTypeId": 1001 + } + ] + multipleEntityTypesObjectArrayWithIdAndClass: + summary: >- + Multiple entity types as an SzEntityType array with IDs and classes + value: >- + [ + { + "entityTypeCode": "PERSON", + "entityClassCode": "ACTOR", + "entityTypeId": 1000 + }, + { + "entityTypeCode": "COMPANY", + "entityClassCode": "ACTOR", + "entityTypeId": 1001 + }, + { + "entityTypeCode": "SCHOOL", + "entityClassCode": "ACTOR", + "entityTypeId": 1002 + } + ] + multipleEntityTypesMixed: + summary: Multiple data sources in a mixed array + value: >- + [ + "PERSON", + { + "entityTypeCode": "COMPANY" + }, + { + "entityTypeCode": "SCHOOL", + "entityTypeId": 1002 + }, + { + "entityTypeCode": "HOSPITAL", + "entityClassCode": "ACTOR", + "entityTypeId": 1003 + } + ] + simpleFlatRecordExample: + summary: Simple flat JSON record + value: >- + { + "NAME_FIRST": "JANE", + "NAME_LAST": "SCHMOE", + "PHONE_NUMBER": "559-555-1212", + "ADDR_LINE1": "653 STATE ROUTE 7", + "ADDR_CITY": "FRESNO", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "55073-1234" + } + complexFlatRecordExample: + summary: Complex flat JSON record + value: >- + { + "NAME_FIRST": "JANE", + "NAME_LAST": "SCHMOE", + "HOME_PHONE_NUMBER": "559-555-1212", + "WORK_PHONE_NUMBER": "559-555-1414", + "HOME_ADDR_LINE1": "653 STATE ROUTE 7", + "HOME_ADDR_CITY": "FRESNO", + "HOME_ADDR_STATE": "CA", + "HOME_ADDR_POSTAL_CODE": "55073-1234" + "WORK_ADDR_LINE1": "701 E MAIN STREET", + "WORK_ADDR_CITY": "FOWLER", + "WORK_ADDR_STATE": "CA", + "WORK_ADDR_POSTAL_CODE": "93625" + } + simpleHierarchicalRecordExample: + summary: Simple hierarchical JSON record + value: >- + { + "NAMES": [ + { + "NAME_FIRST": "JANE", + "NAME_LAST": "SCHMOE" + } + ], + "PHONE_NUMBERS": [ + { + "PHONE_NUMBER": "559-555-1212" + } + ], + "ADDRESSES": [ + { + "ADDR_LINE1": "653 STATE ROUTE 7", + "ADDR_CITY": "FRESNO", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "55073-1234" + } + ] + } + complexHierarchicalRecordExample: + summary: Complex hierarchical JSON record + value: >- + { + "NAMES": [ + { + "NAME_TYPE": "PRIMARY", + "NAME_FIRST": "JANE", + "NAME_LAST": "SCHMOE" + }, + { + "NAME_TYPE": "MAIDEN", + "NAME_FIRST": "JANE", + "NAME_LAST": "SMITH" + } + ], + "PHONE_NUMBERS": [ + { + "PHONE_TYPE": "HOME", + "PHONE_NUMBER": "559-555-1212" + }, + { + "PHONE_TYPE": "WORK", + "PHONE_NUMBER": "559-555-1414" + } + ], + "ADDRESSES": [ + { + "ADDR_TYPE": "HOME", + "ADDR_LINE1": "653 STATE ROUTE 7", + "ADDR_CITY": "FRESNO", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "55073-1234" + }, + { + "ADDR_TYPE": "WORK", + "ADDR_LINE1": "701 E MAIN STREET", + "ADDR_CITY": "FOWLER", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "93625" + } + ] + } + noEntitiesExample: + summary: No entities specified + value: [ ] + singleEntityByEntityIdExample: + summary: Single entity by entity ID + value: [ 987654 ] + multipleEntitiesByEntityIdExample: + summary: Multiple entities by entity ID + value: [ 987654, 765432 ] + singleEntityByDelimitedRecordIdExample: + summary: Single entity by delimiter-encoded record ID + value: [ ":CUSTOMERS:GHI789" ] + multipleEntitiesByDelimitedRecordIdExample: + summary: Multiple entities by delimiter-encoded record ID + value: [ ":CUSTOMERS:GHI789", ":EMPLOYEES:JKL321" ] + singleEntityByJsonRecordIdExample: + summary: Single entity by JSON-encoded record ID + value: [ '{"src":"CUSTOMERS","id":"GHI789"}' ] + multipleEntitiesByJsonRecordIdExample: + summary: Multiple entities by JSON-encoded record ID + value: [ '{"src":"CUSTOMERS","id":"GHI789"}', '{"src":"EMPLOYEES","id":"JKL321"}' ] + multipleEntitiesByMixedRecordIdExample: + summary: Multiple entities by mixed-encoded record ID + value: [ ":CUSTOMERS:GHI789", '{"src":"EMPLOYEES","id":"JKL321"}' ] + noEntitiesArrayExample: + summary: No entities specified + value: + singleEntityByEntityIdArrayExample: + summary: Single entity by entity ID + value: '[987654]' + multipleEntitiesByEntityIdArrayExample: + summary: Multiple entities by entity ID + value: '[987654,765432]' + singleEntityByDelimitedRecordIdArrayExample: + summary: Single entity by delimiter-encoded record ID + value: '[":CUSTOMERS:GHI789"]' + multipleEntitiesByDelimitedRecordIdArrayExample: + summary: Multiple entities by delimiter-encoded record ID + value: '[":CUSTOMERS:GHI789",":EMPLOYEES:JKL321"]' + singleEntityByJsonRecordIdArrayExample: + summary: Single entity by JSON-encoded record ID + value: '[{"src":"CUSTOMERS","id":"GHI789"}]' + multipleEntitiesByJsonRecordIdArrayExample: + summary: Multiple entities by JSON-encoded record ID + value: '[{"src":"CUSTOMERS","id":"GHI789"},{"src":"EMPLOYEES","id":"JKL321"}]' + multipleEntitiesByMixedRecordIdArrayExample: + summary: Multiple entities by mixed-encoded record ID + value: '[":CUSTOMERS:GHI789",{"src":"EMPLOYEES","id":"JKL321"}]' + bulkDataCSVExample: + summary: Bulk records in CSV format + value: >- + NAME_FIRST,NAME_LAST,HOME_PHONE_NUMBER,CELL_PHONE_NUMBER,HOME_ADDR_FULL + + SALLY,SCHMOE,559-555-1212,559-555-1414,"653 STATE ROUTE 7; FRESNO, CA 55073-1234" + + JOE,SCHMOE,559-555-1212,559-555-1616,"653 STATE ROUTE 7; FRESNO, CA 55073-1234" + + JOHN,DOE,559-555-1717,559-555-1919,"501 E MAIN STREET; FOWLER, CA 93625" + + JANE,DOE,559-555-1717,559-555-1313,"501 E MAIN STREET; FOWLER, CA 93625" + bulkDataJsonLinesExample: + summary: >- + Bulk records in "JSON Lines" format (i.e.: one record per line) + value: >- + {"NAME_FIRST": "SALLY", "NAME_LAST": "SCHMOE", "PHONE_NUMBERS": [ { "PHONE_TYPE": "HOME", "PHONE_NUMBER": "559-555-1212" }, { "PHONE_TYPE": "CELL", "PHONE_NUMBER": "559-555-1414" } ], "ADDRESSES": [ { "ADDR_TYPE": "HOME", "ADDR_FULL": "653 STATE ROUTE 7; FRESNO, CA 55073-1234" } ] } + + {"NAME_FIRST": "JOE", "NAME_LAST": "SCHMOE", "PHONE_NUMBERS": [ { "PHONE_TYPE": "HOME", "PHONE_NUMBER": "559-555-1212" }, { "PHONE_TYPE": "CELL", "PHONE_NUMBER": "559-555-1616" } ], "ADDRESSES": [ { "ADDR_TYPE": "HOME", "ADDR_FULL": "653 STATE ROUTE 7; FRESNO, CA 55073-1234" } ] } + + {"NAME_FIRST": "JOHN", "NAME_LAST": "DOE", "PHONE_NUMBERS": [ { "PHONE_TYPE": "HOME", "PHONE_NUMBER": "559-555-1717" }, { "PHONE_TYPE": "CELL", "PHONE_NUMBER": "559-555-1919" } ], "ADDRESSES": [ { "ADDR_TYPE": "HOME", "ADDR_FULL": "501 E MAIN STREET; FOWLER, CA 93625" } ] } + + {"NAME_FIRST": "JANE", "NAME_LAST": "DOE", "PHONE_NUMBERS": [ { "PHONE_TYPE": "HOME", "PHONE_NUMBER": "559-555-1717" }, { "PHONE_TYPE": "CELL", "PHONE_NUMBER": "559-555-1313" } ], "ADDRESSES": [ { "ADDR_TYPE": "HOME", "ADDR_FULL": "501 E MAIN STREET; FOWLER, CA 93625" } ] } + bulkDataJsonExample: + summary: >- + Bulk records in JSON format (i.e.: JSON array) + value: >- + [ + { + "NAMES": [ + { + "NAME_FIRST": "SALLY", + "NAME_LAST": "SCHMOE" + } + ], + "PHONE_NUMBERS": [ + { + "PHONE_TYPE": "HOME", + "PHONE_NUMBER": "559-555-1212" + }, + { + "PHONE_TYPE": "CELL", + "PHONE_NUMBER": "559-555-1414" + } + ], + "ADDRESSES": [ + { + "ADDR_TYPE": "HOME", + "ADDR_LINE1": "653 STATE ROUTE 7", + "ADDR_CITY": "FRESNO", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "55073-1234" + } + ] + }, + { + "NAMES": [ + { + "NAME_FIRST": "JOE", + "NAME_LAST": "SCHMOE" + } + ], + "PHONE_NUMBERS": [ + { + "PHONE_TYPE": "HOME", + "PHONE_NUMBER": "559-555-1212" + }, + { + "PHONE_TYPE": "CELL", + "PHONE_NUMBER": "559-555-1616" + } + ], + "ADDRESSES": [ + { + "ADDR_TYPE": "HOME", + "ADDR_LINE1": "653 STATE ROUTE 7", + "ADDR_CITY": "FRESNO", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "55073-1234" + } + ] + }, + { + "NAMES": [ + { + "NAME_FIRST": "JOHN", + "NAME_LAST": "DOE" + } + ], + "PHONE_NUMBERS": [ + { + "PHONE_TYPE": "HOME", + "PHONE_NUMBER": "559-555-1717" + }, + { + "PHONE_TYPE": "CELL", + "PHONE_NUMBER": "559-555-1919" + } + ], + "ADDRESSES": [ + { + "ADDR_TYPE": "HOME", + "ADDR_LINE1": "501 E MAIN STREET", + "ADDR_CITY": "FOWLER", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "93625" + } + ] + }, + { + "NAMES": [ + { + "NAME_FIRST": "JANE", + "NAME_LAST": "DOE" + } + ], + "PHONE_NUMBERS": [ + { + "PHONE_TYPE": "HOME", + "PHONE_NUMBER": "559-555-1717" + }, + { + "PHONE_TYPE": "CELL", + "PHONE_NUMBER": "559-555-1313" + } + ], + "ADDRESSES": [ + { + "ADDR_TYPE": "HOME", + "ADDR_LINE1": "501 E MAIN STREET", + "ADDR_CITY": "FOWLER", + "ADDR_STATE": "CA", + "ADDR_POSTAL_CODE": "93625" + } + ] + } + ] + bulkDataMultipartCSVExample: + summary: Bulk records as multipart CSV + value: >- + ------WebKitFormBoundarytZEPvKNPgkuBvg4F + Content-Disposition: form-data; name="data"; filename="Co-workers.csv" + Content-Type: text/csv + + ------WebKitFormBoundarytZEPvKNPgkuBvg4F + NAME_FIRST,NAME_LAST,HOME_PHONE_NUMBER,CELL_PHONE_NUMBER,HOME_ADDR_FULL + SALLY,SCHMOE,559-555-1212,559-555-1414,"653 STATE ROUTE 7; FRESNO, CA 55073-1234" + JOE,SCHMOE,559-555-1212,559-555-1616,"653 STATE ROUTE 7; FRESNO, CA 55073-1234" + JOHN,DOE,559-555-1717,559-555-1919,"501 E MAIN STREET; FOWLER, CA 93625" + JANE,DOE,559-555-1717,559-555-1313,"501 E MAIN STREET; FOWLER, CA 93625" + parameters: + withRawQueryParam: + in: query + name: withRaw + required: false + description: >- + Whether or not to include the raw JSON response from the underlying + native API. This raw response may include additional details but + lack some of the abstraction the standard response provides. If + true, then the 'rawData' field in the response will be a non-null + value and contain the additional details. + schema: + type: boolean + default: false + withRelatedQueryParam: + in: query + name: withRelated + required: false + description: >- + Controls how to handle the first-degree related entities. The possible + values are: + * `NONE` - Do not include any data on first-degree related entities -- + this is the fastest option from a performance perspective because + related entities do not have to be retrieved. + * `PARTIAL` - **(default value)** Include only partial stub + information for related entities with the `partial` property of the + `SzRelatedEntity` instances set to `true`. Obtaining additional + information requires subsequent API calls. + * `FULL` - Include full data on the first-degree related entities. + This option obtains entity network at one degree for the requested + entity and will fully populate up to 1000 related entities and sets + the `partial` property of those `SzRelatedEntity` instances to + `false`. Related entities beyond the first 1000 will be left + incomplete and have their `partial` property will be set to `true`. + schema: + default: PARTIAL + $ref: '#/components/schemas/SzRelationshipMode' + featureModeQueryParam: + in: query + name: featureMode + required: false + description: >- + The method by which feature values should be included for entities + returned in the response. The possible values are: + * `NONE` - Do not include any feature values -- this is the fastest + option from a performance perspective because feature + values do not have to be retrieved. + * `REPRESENTATIVE` - Include only a single representative value per + "unique" value of a feature. If there are + multiple values that are near duplicates then + only one value is included and the others are + suppressed. + * `WITH_DUPLICATES` - Group near-duplicate feature values and return + a representative value along with its near + duplicate values. + schema: + default: WITH_DUPLICATES + $ref: '#/components/schemas/SzFeatureMode' + withRelationshipsQueryParam: + in: query + name: withRelationships + description: >- + Set to `true` to include partial information of related entities for + the returned entities. This defaults to `false`. + required: false + schema: + type: boolean + default: false + whyWithFeatureStatsQueryParam: + in: query + name: withFeatureStats + description: >- + Set to `false` to suppress resolution statistics for features. This + defaults to `true` for why operations. + required: false + schema: + type: boolean + default: true + whyWithInternalFeaturesQueryParam: + in: query + name: withInternalFeatures + description: >- + Set to `false` to suppress "expressed" features that are derived + composite keys such as `FULL_NAME` + `DATE_OF_BIRTH`. This + defaults to `true` for why operations. + required: false + schema: + type: boolean + default: true + withFeatureStatsQueryParam: + in: query + name: withFeatureStats + description: >- + Set to `true` to include resolution statistics for features. This + defaults to `false`. + required: false + schema: + type: boolean + default: false + withInternalFeaturesQueryParam: + in: query + name: withInternalFeatures + description: >- + Set to `true` to include "expressed" features that are derived composite + keys such as name + date of birth keys. This defaults to `false`. + required: false + schema: + type: boolean + default: false + withInfoQueryParam: + in: query + name: withInfo + description: >- + Set to `true` to include resolution information related to loading, and + `false` to exclude it. This defaults to `false`. + required: false + schema: + type: boolean + default: false + loadIdQueryParam: + in: query + name: loadId + required: false + description: >- + The optional load ID to associate with the loaded record. + schema: + type: string + forceMinimalQueryParam: + in: query + name: forceMinimal + required: false + description: >- + Whether or not to force the minimum entity detail in the response which + may consist of nothing more than an entity ID. This provides the + fastest response to an entity query operation because no additional data + needs to be retrieved other than what is directly accessible. This + overrules other parameters governing the retrieval of features or + related entities. + schema: + type: boolean + default: false + dataSourceCodePathParam: + in: path + name: dataSourceCode + required: true + description: >- + The data source code identifying the data source. + schema: + type: string + examples: + TEST: + value: TEST + CUSTOMERS: + value: CUSTOMERS + EMPLOYEES: + value: EMPLOYEES + entityTypeCodePathParam: + in: path + name: entityTypeCode + required: true + description: >- + The entity type code identifying the entity type. + schema: + type: string + examples: + TEST: + value: TEST + GENERIC: + value: GENERIC + PERSON: + value: PERSON + COMPANY: + value: COMPANY + entityClassCodePathParam: + in: path + name: entityClassCode + required: true + description: >- + The entity class code identifying the entity class. Currently, the + only recognized value is `ACTOR`. Other values will yield a 404 error. + schema: + type: string + examples: + ACTOR: + summary: >- + ACTOR (e.g.: people, companies or organizations). + value: ACTOR + recordIdPathParam: + in: path + name: recordId + required: true + description: >- + The identifier that uniquely identifies the requested record + within a given data source. This may have been specified + when the record was loaded or generated automatically. + schema: + type: string + progressPeriodParam: + in: query + name: progressPeriod + required: false + description: >- + The suggested maximum time between SSE `progress` events specified in + milliseconds. If not specified then the default of `3000` milliseconds + (i.e.: 3 seconds) is used. This parameter is NOT used if the operation + is not producing an SSE response (i.e.: `text/event-stream` media type + was not requested via the `Accept` header). + schema: + type: string + default: 3000 + responses: + ServerError: + description: Unexpected server error occurred. + content: + application/json; charset=UTF-8: + schema: + $ref: '#/components/schemas/SzErrorResponse' + application/json: + schema: + $ref: '#/components/schemas/SzErrorResponse' + default: + schema: + $ref: '#/components/schemas/SzErrorResponse' + schemas: + SzBaseResponse: + description: >- + Represents the base information included in all responses sans the + actual data for the response. + type: object + properties: + meta: + type: object + properties: + httpMethod: + $ref: '#/components/schemas/SzHttpMethod' + httpStatusCode: + description: >- + The HTTP status response code. + type: integer + format: int16 + timestamp: + description: >- + The timestamp of the operation's execution. + type: string + format: date-time + version: + type: string + restApiVersion: + type: string + timings: + description: >- + The timing measurements that were taken where the keys are + identifying what was timed and the values are the number of + milliseconds. + type: object + nullable: true + additionalProperties: + type: integer + format: int64 + links: + type: object + properties: + self: + type: string + SzErrorResponse: + description: >- + The response describing an error that occurred. + allOf: + - $ref: '#/components/schemas/SzBaseResponse' + - type: object + properties: + errors: + type: array + items: + $ref: '#/components/schemas/SzError' + SzResponseWithRawData: + description: >- + Extends the BaseResponse to add the rawData field. + allOf: + - $ref: '#/components/schemas/SzBaseResponse' + - type: object + properties: + rawData: + description: >- + The RAW result from the underlying native API function. + type: object + nullable: true + additionalProperties: {} + SzLicenseResponse: + description: >- + The response containing the license information. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + license: + $ref: '#/components/schemas/SzLicenseInfo' + SzVersionResponse: + description: >- + The response containing the version information. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + $ref: '#/components/schemas/SzVersionInfo' + SzServerInfoResponse: + description: >- + The response containing the server info. + allOf: + - $ref: '#/components/schemas/SzBaseResponse' + - type: object + properties: + data: + $ref: '#/components/schemas/SzServerInfo' + SzAttributeTypesResponse: + description: >- + The response containing attribute type information. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + attributeTypes: + description: >- + The list of attribute types. + type: array + items: + $ref: '#/components/schemas/SzAttributeType' + SzAttributeTypeResponse: + description: >- + The response containing information for a single attribute type. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + attributeType: + $ref: '#/components/schemas/SzAttributeType' + SzDataSourceResponse: + description: >- + The response describing a data source. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + dataSource: + description: >- + The requested data source as an `SzDataSource` object. + $ref: '#/components/schemas/SzDataSource' + SzDataSourcesResponse: + description: >- + The response describing the configured data sources. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + dataSources: + description: >- + The list of data source codes for the configured data + sources. + type: array + items: + type: string + dataSourceDetails: + description: >- + The list of `SzDataSource` instances describing the data + sources that are configured. + type: object + additionalProperties: + $ref: '#/components/schemas/SzDataSource' + SzEntityTypeResponse: + description: >- + The response describing an entity type. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + entityType: + description: >- + The requested entity type as an `SzEntityType` object. + $ref: '#/components/schemas/SzEntityType' + SzEntityTypesResponse: + description: >- + The response describing the configured entity types. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + entityTypes: + description: >- + The list of entity type codes for the configured entity + types. + type: array + items: + type: string + entityTypeDetails: + description: >- + The list of `SzEntityType` instances describing the + configured entity types. + type: object + additionalProperties: + $ref: '#/components/schemas/SzEntityType' + SzEntityClassResponse: + description: >- + The response describing an entity class. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + entityClass: + description: >- + The requested data source as an `SzEntityClass` object. + $ref: '#/components/schemas/SzEntityClass' + SzEntityClassesResponse: + description: >- + The response describing the configured entity classes. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + entityClasses: + description: >- + The list of entity classes codes for the configured entity + classes. + type: array + items: + type: string + entityClassDetails: + description: >- + The list of `SzEntityClass` instances describing the + configured entity classes. + type: object + additionalProperties: + $ref: '#/components/schemas/SzEntityClass' + SzConfigResponse: + description: >- + The response containing raw configuration in the rawData field. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + SzLoadRecordResponse: + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + recordId: + description: >- + The record ID of the record that was loaded. + type: string + info: + description: >- + The optionally requested info associated with the load. + $ref: '#/components/schemas/SzResolutionInfo' + SzReevaluateResponse: allOf: - $ref: '#/components/schemas/SzResponseWithRawData' - type: object properties: data: - $ref: '#/components/schemas/SzLicenseInfo' - SzDataSourcesResponse: + type: object + properties: + info: + description: >- + The optionally requested info associated with the + reevaluation. + $ref: '#/components/schemas/SzResolutionInfo' + SzDeleteRecordResponse: allOf: - $ref: '#/components/schemas/SzResponseWithRawData' - type: object @@ -576,13 +3668,14 @@ components: data: type: object properties: - dataSources: + info: description: >- - The list of data source codes that are configured. - type: array - items: - type: string + The optionally requested info associated with the + record deletion. + $ref: '#/components/schemas/SzResolutionInfo' SzRecordResponse: + description: >- + The response describing an entity record. allOf: - $ref: '#/components/schemas/SzResponseWithRawData' - type: object @@ -592,537 +3685,1728 @@ components: properties: record: description: >- - The EntityRecord describing the matching record. + The `SzEntityRecord` describing the matching record. $ref: '#/components/schemas/SzEntityRecord' SzEntityResponse: + description: >- + The response describing a resolved entity and possibly its related + entities. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + $ref: '#/components/schemas/SzEntityData' + SzAttributeSearchResponse: + description: >- + The response describing the resolved entities found from a search. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + searchResults: + description: >- + The array AttributeSearchResult instances describing the + entities matching the specified entity search attributes + including the AttributeSearchResultType for each. + type: array + items: + $ref: '#/components/schemas/SzAttributeSearchResult' + SzEntityPathResponse: + description: >- + The response describing a path between two resolved entities. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + $ref: '#/components/schemas/SzEntityPathData' + SzEntityNetworkResponse: + description: >- + The response describing a network of resolved entities. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + $ref: '#/components/schemas/SzEntityNetworkData' + SzBulkDataAnalysisResponse: + description: >- + The response describing the analysis of bulk data records. + allOf: + - $ref: '#/components/schemas/SzBaseResponse' + - type: object + properties: + data: + description: >- + The `SzBulkDataAnalysis` describing the analysis of the bulk + records. + $ref: '#/components/schemas/SzBulkDataAnalysis' + SzBulkLoadResponse: + description: >- + The response describing the result of loading bulk data. + allOf: + - $ref: '#/components/schemas/SzBaseResponse' + - type: object + properties: + data: + description: >- + The `SzBulkLoadResult` describing the load statistics from + loading a bulk data set. + $ref: '#/components/schemas/SzBulkLoadResult' + SzWhyEntityResponse: + description: >- + The response describing the result of "why" operation. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + whyResults: + description: >- + The `SzWhyEntityResults` describing why from each + evaluated perspective within the entity. + type: array + items: + $ref: '#/components/schemas/SzWhyEntityResult' + entities: + description: >- + The array of `SzEntityData` objects describing the entities + involved in the response. This will include partial + information on the first-degree related entities to the + entity. + type: array + items: + $ref: '#/components/schemas/SzEntityData' + SzWhyRecordsResponse: + description: >- + The response describing the result of "why" operation. + allOf: + - $ref: '#/components/schemas/SzResponseWithRawData' + - type: object + properties: + data: + type: object + properties: + whyResult: + description: >- + The `SzWhyRecordsResult` describing why from for the + specified records. + $ref: '#/components/schemas/SzWhyRecordsResult' + entities: + description: >- + The array of `SzEntityData` objects describing the entities + involved in the response. This will include partial + information on the first-degree related entities to the + entity. + type: array + items: + $ref: '#/components/schemas/SzEntityData' + SzError: + description: >- + Describes an error. + type: object + properties: + code: + description: The internal error code. + type: string + nullable: true + message: + description: The message describing the error. + type: string + SzBulkLoadError: + description: >- + Describes an error and the number of times it occurred. + type: object + properties: + error: + description: >- + The error that occurred. + $ref: '#/components/schemas/SzError' + occurrenceCount: + description: >- + The number of times the error occurred while loading data + from the bulk data set. + type: integer + format: int32 + SzHttpMethod: + description: >- + The HTTP method that was used for the operation. The possible values + are" + * `GET` - An HTTP GET operation. + * `POST` - An HTTP POST operation. + * `PUT` - An HTTP PUT operation. + * `PATCH` - An HTTP PATCH operation. + * `DELETE` - An HTTP DELETE operation. + type: string + enum: + - GET + - POST + - PUT + - PATCH + - DELETE + SzAttributeClass: + description: >- + Enumerates the various classes of attribute types (and features). + This is a generalization over attribute type that is more general + than feature type (NOTE: stand-alone attribute types such as + "DATA_SOURCE" or "RECORD_ID" do not have a feature type, but do have + an attribute class of "OBSERVATION"). Attribute class determines how + attributes / features are grouped together (e.g.: "nameData" contains + all name features and "identifierData" contains all identifier + features). The possible values are: + * `ADDRESS` - Attributes pertaining to an address such as "POSTAL_CODE" + * `CHARACTERISTIC` - Attributes pertaining to physical characteristics + of an entity. Such as "BIRTH_DATE" + * `IDENTIFIER` - Attributes pertaining to identifiers such as + drivers license number, passport number, or email + address. + * `NAME` - Attributes pertaing to names such as "NAME_FIRST" or + "NAME_LAST" + * `OBSERVATION` - Attributes pertaining to meta-data about the + observation (record) such as "RECORD_ID" or + "DATA_SOURCE" + * `PHONE` - Attributes pertaining to phone numbers such + "PHONE_NUMBER" or "PHONE_EXTENSION" + * `RELATIONSHIP` - Attributes pertaining to relationships such as + "RELATIONSHIP_TYPE". + * `OTHER` - An attribute class for custom features or for attributes + that are loaded but not mapped. + type: string + enum: + - ADDRESS + - CHARACTERISTIC + - IDENTIFIER + - NAME + - OBSERVATION + - PHONE + - RELATIONSHIP + - OTHER + SzFeatureMode: + description: >- + The method by which feature values should be included for entities + returned in the response. The possible values are: + * `NONE` - Do not include any feature values -- this is the fastest + option from a performance perspective because feature + values do not have to be retrieved. + * `REPRESENTATIVE` - Include only a single representative value per + "unique" value of a feature. If there are + multiple values that are near duplicates then + only one value is included and the others are + suppressed. + * `WITH_DUPLICATES` - ** (default value) ** Group near-duplicate + feature values and return a representative value + along with its near duplicate values. + type: string + enum: + - NONE + - REPRESENTATIVE + - WITH_DUPLICATES + default: WITH_DUPLICATES + SzRelationshipMode: + description: >- + Controls how to handle the first-degree related entities. The possible + values are: + * `NONE` - Do not include any data on first-degree related entities -- + this is the fastest option from a performance perspective because + related entities do not have to be retrieved. + * `PARTIAL` - **(default value)** Include only partial stub + information for related entities with the `partial` property of the + `SzRelatedEntity` instances set to `true`. Obtaining additional + information requires subsequent API calls. + * `FULL` - Include full data on the first-degree related entities. + This option obtains entity network at one degree for the requested + entity and will fully populate up to 1000 related entities and sets + the `partial` property of those `SzRelatedEntity` instances to + `false`. Related entities beyond the first 1000 will be left + incomplete and have their `partial` property will be set to `true`. + type: string + enum: + - NONE + - PARTIAL + - FULL + default: PARTIAL + SzAttributeNecessity: + description: >- + Describes the necessity for this attribute type within the + feature type. Possible values are: + * `REQUIRED` - The attribute for the attribute type must be + provided whenever the feature is provided (e.g.: + "PASSPORT_NUMBER" is required with the "PASSPORT" + feature). + * `SUFFICIENT` - If no attributes for `REQUIRED` attribute types + are provided for the feature, then at least one + marked `SUFFICIENT` must be provided (e.g.: + "NAME_FULL" or "NAME_ORG" for the "NAME" feature) + * `PREFERRED` - Attributes of `PREFERRED` attribute types are + optional, but providing them greatly enhances + accuracy for scoring and matching purposes (e.g.: + a "PASSPORT_COUNTRY" for "PASSPORT" feature) + * `OPTIONAL` - Attributes of `OPTIONAL` attribute types are + optional and do not significantly affect accuracy + for scoring and matching purposes, but do provide + additional information (e.g.: "PASSPORT_ISSUE_DT" + for the "PASSPORT" feature) + type: string + enum: + - REQUIRED + - SUFFICIENT + - PREFERRED + - OPTIONAL + SzAttributeType: + description: >- + Describes an attribute type that partially (or fully) describes a + feature of an entity that may be loaded as part of a record or + used as criteria in a search. + type: object + properties: + attributeCode: + description: >- + The unique string that identifies the attribute type among all + other attribute types. + type: string + nullable: false + defaultValue: + description: >- + The default value assumed for the attribute when it is not + provided but is required as part of a feature. + type: string + nullable: true + necessity: + $ref: '#/components/schemas/SzAttributeNecessity' + attributeClass: + $ref: '#/components/schemas/SzAttributeClass' + featureType: + description: >- + Identifiers the feature type that this attribute type is an + attribute of (if any). For example, the "NAME_FIRST" attribute type + would be an attribute of the "NAME" feature type and + "PASSPORT_COUNTRY" would be an attribute of "PASSPORT" feature type. + Some (advanced) attribute types are stand-alone and do not belong + to a feature (e.g.: "RECORD_ID"). + type: string + nullable: true + advanced: + description: >- + Indicates if the attribute type is considered to be "advanced". + Advanced attribute types usually require the user to have some + knowledge of how the data is mapped in the entity repository + (e.g.: "RECORD_ID" or "DATA_SOURCE"). An application may exclude + displaying these as options if these things are being auto-generated + or automatically selected for the user. You may want to contact + Senzing support before leveraging advanced attribute types in your + application. + type: boolean + nullable: false + internal: + description: >- + Whether or not an attribute type is typically generated internally + based on other attribute types. These are not commonly used by the + user except in some rare cases. Examples include pre-hashed + versions of attributes that are hashed. + type: boolean + nullable: false + SzEntityIdentifier: + description: >- + Identifies an entity by either its entity ID or by the data source + code and record ID of one of its constituent records. If a record ID + is specified then it is either as a JSON-encoded `SzRecordId` or a + delimited string where the first character is the delimiter, followed + by the data source code, then the delimiter and the record ID (e.g.: + `|CUSTOMERS|ABC123`). + oneOf: + - type: integer + format: int64 + - $ref: '#/components/schemas/SzRecordId' + - type: string + SzEntityIdentifiers: + description: >- + Identifies zero or more entities by either its entity ID or by the + data source code and record ID of one of their constituent records. + Identifiers in the array are homogeneous, either all entity IDs or + all RecordId instances containing the data-source-code/record-id pair. + If specified as record IDs they are either JSON-encoded `SzRecordId` + instances or a delimited string where the first character is the + delimiter, followed by the data source code, then the delimiter and the + record ID (e.g.: `|CUSTOMERS|ABC123`). + oneOf: + - type: array + items: + type: integer + format: int64 + - type: array + items: + oneOf: + - $ref: '#/components/schemas/SzRecordId' + - type: string + SzRecordId: + description: >- + Identifies a record by its data source code and record identifier. + This abbreviated format is used in query parameters to identify + records via JSON strings. + type: object + properties: + src: + description: >- + The data source code that uniquely identifies the data source + associated with the record. + type: string + id: + description: >- + The record ID that uniquely identifies a record within the + respective data source. + type: string + SzLicenseInfo: + description: >- + Describes the Senzing product license. + type: object + properties: + customer: + type: string + description: >- + The customer information associated with the license. + contract: + type: string + description: >- + The contract information associated with the license. + licenseType: + type: string + description: >- + The description of the type of license. + licenseLevel: + type: string + description: >- + The description of the license level. + billing: + type: string + description: >- + The billing information associated with the license + issuanceDate: + type: string + format: date-time + description: >- + The issuance date for the license. + expirationDate: + type: string + format: date-time + description: >- + The expiration date for the license. + recordLimit: + type: integer + format: int64 + description: >- + The record limit associated with the license. + SzVersionInfo: + description: >- + Describes the Senzing version information. + type: object + properties: + apiServerVersion: + type: string + description: >- + The version of the REST API Server implementation. + restApiVersion: + type: string + description: >- + The version of the REST API Specification that is implemented. + nativeApiVersion: + type: string + description: >- + The version for the underlying runtime native Senzing API. + nativeApiBuildNumber: + type: string + description: >- + The build number for the underlying runtime native Senzing API. + nativeApiBuildDate: + type: string + format: date-time + description: >- + The build date for the underlying runtime native Senzing API. + configCompatibilityVersion: + type: string + description: >- + The configuration compatibility version for the underlying runtime + native Senzing API. + SzFlaggedRecord: + description: >- + Describes a sample record from an `SzFlaggedEntity` including the + triggered flags for that record. + type: object + properties: + dataSource: + description: >- + The data source code associated with the sample record. + type: string + type: string + recordId: + description: >- + The record ID identifying with the same record. + type: string + flags: + description: >- + The array of flags triggered by the sample record. + type: array + items: + type: string + SzFlaggedEntity: + description: >- + An entity that was flagged as relevant due to the resolution operation. + type: object + properties: + entityId: + description: >- + The entity ID of the relevant entity. + type: integer + format: int64 + degrees: + description: >- + The number of degrees this entity is separated from the + entity that was affected. + type: integer + format: int8 + flags: + description: >- + The array of flags that were triggered making this entity + relevant. + type: array + items: + type: string + sampleRecords: + description: >- + An array of objects describing sample records from the + relevant entity and the triggered flags for that record. + type: array + items: + $ref: '#/components/schemas/SzFlaggedRecord' + SzResolutionInfo: + description: >- + Provides information relevant to resolution of an entity either when + loading a record or reevaluating an entity. + type: object + properties: + dataSource: + description: >- + The data source for the record that was focus of the load or + reevaluate operation. + type: string + recordId: + description: >- + The record ID for the record that was focus of the load or + reevaluate operation. + type: string + affectedEntities: + description: >- + The array of entity ID's for the affected entities. + type: array + items: + type: integer + format: int64 + flaggedEntities: + description: >- + The entities that were flagged as relevant due to the resolution + operation. + type: array + items: + $ref: '#/components/schemas/SzFlaggedEntity' + SzEntityRecord: + description: >- + Describes a record (aka: observed entity) that has been loaded for + a particular data source. + type: object + properties: + dataSource: + type: string + description: >- + The data source code identifying the source from which the record + was loaded. + recordId: + type: string + description: >- + The identifier that uniquely identifies this record from other + records from the same data source. This may have been loaded with + the record or automatically generated from the record's data. + addressData: + description: >- + An array of addresses associated with the record that are formatted + for readability. These may be prefixed by a "usage type" if one + was provided (e.g.: "HOME: 101 Main Street") + type: array + items: + type: string + characteristicData: + description: >- + An array of characteristics associated with the record that are + formatted for readability. These will be prefixed by a + characteristic type and optionally by a "usage type" if one was + provided. + type: array + items: + type: string + identifierData: + description: >- + An array of entity data associated with the record where the items + are formatted for readability. These will be prefixed by an + identifier type and may be prefixed by a "usage type" if one was + provided (e.g.: "ID: 123456789" or "EMAIL: WORK: joe@nowhere.com") + type: array + items: + type: string + nameData: + description: >- + An array of names associated with the record that are formatted for + readability. These may be prefixed by a "usage type" if one was + provided (e.g.: "Joe Schmoe" or "AKA: Joseph P. Schmoe") + type: array + items: + type: string + phoneData: + description: >- + An array of phone numbers associated with the record that are + formatted for readability. These may be prefixed by a "usage type" + if one was provided (e.g.: "HOME: 702-555-1212") + type: array + items: + type: string + relationshipData: + description: >- + An array of relationship data items associated with the record that + describes disclosed relationships. + type: array + items: + type: string + otherData: + description: >- + An array of associated data items that were loaded with the record + but not normally recognized or used for entity resolution. This + array usually contains useful information from the source system. + type: array + items: + type: string + originalSourceData: + description: >- + The JSON representation of the original data record that was + loaded. + type: object + additionalProperties: {} + SzMatchedRecord: + description: >- + Provides the additional fields to an SzEntityRecord that describe + how it matched to the entity that it belongs to. allOf: - - $ref: '#/components/schemas/SzResponseWithRawData' + - $ref: '#/components/schemas/SzEntityRecord' - type: object properties: - data: - $ref: '#/components/schemas/SzEntityData' - SzAttributeSearchResponse: + matchKey: + description: >- + The match key describing what features matched between + the first record in the resolved entity and this record. + This is blank for the first record. + type: string + resolutionRuleCode: + description: >- + The code identifying the resolution rule that matched this + record to the first record in the resolved entity. This is + blank for the first record. + type: string + matchScore: + description: >- + The match score between the first record in the resolved + entity and this record. The higher the score the closer + the match. This is `null` for the first record in the + resolved entity. + type: integer + format: int32 + nullable: true + matchLevel: + description: >- + The integer "match level" describing how the first record in + the resolved entity matched to this record. This is zero for + the first record and usually one (1) for other records. + type: integer + format: int32 + refScore: + description: >- + The ref score between the first record in the resolved entity + and this record. This is zero (0) for the first record in the + resolved entity. + type: integer + format: int32 + SzDataSourceRecordSummary: + description: >- + Describes the number of records associated with a specific data source + for a given resolved entity. Optionally, if the complete set of records + has been retrieved for the associated entity, then this may also contain + the "top 10" record IDs for the associated data source. + type: object + properties: + dataSource: + description: >- + The data source code identifying the data source for which the + record breakdown is being described. + type: string + recordCount: + description: >- + The number of records from the respective data source that are + part of the associated resolved entity. + type: integer + format: int32 + topRecordIds: + description: >- + The optional array of string record ID's identifying the top 10 + records for the associated entity from the respective data source. + This may be null or an empty array if the data was not available. + type: array + nullable: true + items: + type: string + SzEntityFeatureStatistics: + description: >- + Describes the entity resolution statistics for the feature value. + type: object + properties: + usedForCandidates: + description: >- + Indicates if the feature is used for finding candidates during + entity resolution. + type: boolean + usedForScoring: + description: >- + Indicates if the feature is used for scoring during entity + resolution. + type: boolean + entityCount: + description: >- + The number of entities having this feature value. + type: integer + format: int64 + candidateCapReached: + description: >- + Indicates if this feature value is no longer being used to find + candidates because too many entities share the same value. + type: boolean + scoringCapReached: + description: >- + Indicates if this feature value is no longer being used in entity + scoring because too many entities share the same value. + type: boolean + suppressed: + description: >- + Indicates if this value was suppressed in favor of a more complete + value. + type: boolean + SzEntityFeatureDetail: + description: >- + Describes the details of an entity feature value, optionally including + statistics if they have been requested. + type: object + properties: + internalId: + description: >- + The internal ID for the feature value. + type: integer + format: int64 + featureValue: + description: >- + The feature value. + type: string + statistics: + description: >- + The `SzEntityFeatureStatistics` describing the statistics for the + feature value. This may be `null` if the statistics were not + requested. + nullable: true + $ref: '#/components/schemas/SzEntityFeatureStatistics' + SzEntityFeature: + description: >- + Describes a feature for an entity as well as including any close values + for the feature that were considered to be duplicate values for + entity resolution purposes. + type: object + properties: + primaryId: + description: >- + The internal ID for the primary feature value. + type: integer + format: int64 + primaryValue: + description: >- + The primary value for the feature. + type: string + usageType: + description: >- + The optional associated usage type (e.g.: "HOME" or "WORK") + type: string + nullable: true + duplicateValues: + description: >- + The array of values that are close enough to the primary value + for the feature that they are considered to be duplicate values for + the purpose of entity resolution. + type: array + items: + type: string + featureDetails: + description: >- + The array of `SzEntityFeatureDetail` instances describing the each + of the clustered feature values in detail. + type: array + items: + $ref: '#/components/schemas/SzEntityFeatureDetail' + SzResolvedEntity: + description: >- + Describes a resolved entity that is made up of one or more + SzMatchedRecord instances. + type: object + properties: + entityId: + description: >- + The unique numeric ID identifying the entity. + type: integer + format: int64 + entityName: + description: >- + The name associated with this entity that is considered the + best name among all the associated names. + type: string + bestName: + description: >- + Usually the same as the entityName property, but this may differ + if the entity was found based on a name search. In such a case, + this field represents the name that most closely matches the name + that was searched on. + type: string + recordSummaries: + description: >- + The array of DataSourceRecordSummary instances describing the + number of records associated with each data source that contributes + to this entity. + type: array + items: + $ref: '#/components/schemas/SzDataSourceRecordSummary' + nameData: + description: >- + An array of names associated with the entity that are formatted for + readability. These may be prefixed by a "usage type" if one was + provided (e.g.: "Joe Schmoe" or "AKA: Joseph P. Schmoe") + type: array + items: + type: string + characteristicData: + description: >- + An array of characteristics associated with the entity that are + formatted for readability. These will be prefixed by a + characteristic type and optionally by a "usage type" if one was + provided. + type: array + items: + type: string + addressData: + description: >- + An array of addresses associated with the entity that are formatted + for readability. These may be prefixed by a "usage type" if one + was provided (e.g.: "HOME: 101 Main Street") + type: array + items: + type: string + phoneData: + description: >- + An array of phone numbers associated with the entity that are + formatted for readability. These may be prefixed by a "usage type" + if one was provided (e.g.: "HOME: 702-555-1212") + type: array + items: + type: string + identifierData: + description: >- + An array of entity data associated with the entity where the items + are formatted for readability. These will be prefixed by an + identifier type and may be prefixed by a "usage type" if one was + provided (e.g.: "ID: 123456789" or "EMAIL: WORK: joe@nowhere.com") + type: array + items: + type: string + relationshipData: + description: >- + An array of relationship data items associated with the entity that + describes disclosed relationships. + type: array + items: + type: string + otherData: + description: >- + An array of associated data items that were loaded with the entity's + records but not normally recognized or used for entity resolution. + This array usually contains useful information from the source + systems. + type: array + items: + type: string + records: + description: >- + The array of `SzMatchedRecord` instances describing the records + associated with this entity. + type: array + items: + $ref: '#/components/schemas/SzMatchedRecord' + features: + description: >- + The map of string feature names to arrays of SzEntityFeature instances + describing the values associated with each respective feature name. + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/SzEntityFeature' + partial: + description: >- + If true then this `SzResolvedEntity` has complete features and + records, otherwise they are not provided. Also, the + recordSummary items may be missing the topRecordIds if partial + is true. This can be true for partially retrieved related + entities or if features are suppressed or if the minimal + response flag has been specified. + type: boolean + SzBaseRelatedEntity: + description: >- + Provides the additional fields to an SzResolvedEntity that describe + an entity's relationship to another. This serves as a basis for + SzAttributeSearchResult and SzRelatedEntity. allOf: - - $ref: '#/components/schemas/SzResponseWithRawData' + - $ref: '#/components/schemas/SzResolvedEntity' - type: object properties: - data: - type: object - properties: - searchResults: - description: >- - The array AttributeSearchResult instances describing the - entities matching the specified entity search attributes - including the AttributeSearchResultType for each. - type: array - items: - $ref: '#/components/schemas/SzAttributeSearchResult' - SzEntityPathResponse: + matchLevel: + description: >- + The integer "match level" describing how the related entity + matched to the primary resolved entity. + type: integer + format: int32 + fullNameScore: + description: >- + The full name score between the primary resolved entity and + this related entity. The higher the score the closer the + name match. + type: integer + format: int32 + matchScore: + description: >- + The match score between the primary resolved entity and + this related entity. The higher the score the closer + the match. + type: integer + format: int32 + nullable: true + matchKey: + description: >- + The match key describing what features matched between + the primary resolved entity and the related entity. + type: string + resolutionRuleCode: + description: >- + The code identifying the resolution rule that related + this entity to the primary resolved entity. + type: string + refScore: + description: >- + The ref score between the primary resolved entity and + this related entity. + type: integer + format: int32 + SzRelationshipType: + description: >- + Describes how an entity is related to another (either a possible match, + a discovered possible relationship or a disclosed relationship) + type: string + enum: + - POSSIBLE_MATCH + - POSSIBLE_RELATION + - DISCLOSED_RELATION + SzRelatedEntity: + description: >- + Provides a description of an entity that is related to a + ResolvedEntity. This describes how the entity is related and may + be missing the complete features and record list of a ResolvedEntity. allOf: - - $ref: '#/components/schemas/SzResponseWithRawData' + - $ref: '#/components/schemas/SzBaseRelatedEntity' - type: object properties: - data: - $ref: '#/components/schemas/SzEntityPathData' - SzEntityNetworkResponse: + disclosed: + description: >- + A boolean flag indicating if this related entity + represents a disclosed relationship. + type: boolean + ambiguous: + description: >- + A boolean flag indicating if this related entity + represents an ambiguous relationship. + type: boolean + relationType: + $ref: '#/components/schemas/SzRelationshipType' + SzEntityData: + description: >- + Describes an entity and the entities related to that entity at + one degree of separation. + type: object + properties: + resolvedEntity: + description: The ResolvedEntity describing the primary entity. + $ref: '#/components/schemas/SzResolvedEntity' + relatedEntities: + description: >- + The array of RelatedEntity instances describing the possible + matches, discovered relationships, and disclosed relationships. + type: array + items: + $ref: '#/components/schemas/SzRelatedEntity' + SzAttributeSearchResultType: + description: >- + Describes how the entity matching the search attributes would have + entity resolved against those attributes (either a match, possible + match, discovered relationship or name only match). + type: string + enum: + - MATCH + - POSSIBLE_MATCH + - POSSIBLE_RELATION + - NAME_ONLY_MATCH + SzAttributeSearchResult: + description: >- + Describes an entity that matched attribute search criteria and how + it matched against that criteria. allOf: - - $ref: '#/components/schemas/SzResponseWithRawData' + - $ref: '#/components/schemas/SzBaseRelatedEntity' - type: object properties: - data: - $ref: '#/components/schemas/SzEntityNetworkData' - SzError: + resultType: + $ref: '#/components/schemas/SzAttributeSearchResultType' + relatedEntities: + description: >- + The array of RelatedEntity instances describing the possible + matches, discovered relationships, and disclosed relationships. + type: array + items: + $ref: '#/components/schemas/SzRelatedEntity' + SzEntityPath: description: >- - Describes an error. + Describes a path between two entities using the entity IDs of the + entities in the path. type: object properties: - code: - description: The internal error code. - type: string - nullable: true - message: - description: The message describing the error. - type: string - SzEntityIdentifier: - description: >- - Identifies an entity by either its entity ID or by the data source - code and record ID of one of its constituent records. - oneOf: - - type: integer + startEntityId: + description: The starting entity ID for the path. + nullable: false + type: integer format: int64 - - $ref: '#/components/schemas/SzRecordId' - SzEntityIdentifiers: - description: >- - Identifies zero or more entities by either its entity ID or by the - data source code and record ID of one of their constituent records. - Identifiers in the array are homogeneous, either all entity IDs or - all RecordId instances containing the data-source-code/record-id pair. - oneOf: - - type: array - items: + endEntityId: + description: The ending entity ID for the path. + nullable: false type: integer format: int64 - - type: array - items: - $ref: '#/components/schemas/SzRecordId' - SzRecordId: + entityIds: + description: >- + The array of entity IDs identifying the entities on the path + in order of how are they are connected on the path. This is + null if there is no path between the entities. + nullable: true + type: array + items: + type: integer + format: int64 + SzEntityPathData: description: >- - Identifies a record by its data source code and record identifier. - This abbreviated format is used in query parameters to identify - records via JSON strings. + Describes a path between two entities using the entity IDs of the + entities in the path and includes the data from the actual entities + on the path. type: object properties: - src: + entityPath: + $ref: '#/components/schemas/SzEntityPath' + entities: description: >- - The data source code that uniquely identifies the data source - associated with the record. - type: string - id: + The array of `SzEntityData` objects describing the entities on the + path. This will include partial information on the first-degree + related entities to the entity. + type: array + items: + $ref: '#/components/schemas/SzEntityData' + SzEntityNetworkData: + description: >- + Describes a network of paths between entities using the entity IDs of + the entities in the path and includes the data from the actual entities + in the network. + type: object + properties: + entityPaths: description: >- - The record ID that uniquely identifies a record within the - respective data source. - type: string - SzLicenseInfo: + The array of `SzEntityPath` objects describing the paths that make + up the entity network (including island networks). + type: array + items: + $ref: '#/components/schemas/SzEntityPath' + entities: + description: >- + The array of `SzEntityData` objects describing the entities on the + path. This may only include partial information on the entities at + the edge of the network. + type: array + items: + $ref: '#/components/schemas/SzEntityData' + SzServerInfo: description: >- - Describes the Senzing product license. + Provides information about which server features are enabled and which + are not enabled. type: object properties: - customer: - type: string - description: >- - The customer information associated with the license. - contract: - type: string + concurrency: description: >- - The contract information associated with the license. - licenseType: - type: string + The number of Senzing worker threads pooled for handling requests. + type: integer + format: int32 + nullable: false + activeConfigId: description: >- - The description of the type of license. - licenseLevel: - type: string + The active configuration ID being used by the API server. This + is still available if the server was started with a static file + configuration via the `G2CONFIGFILE` initialization property. + type: integer + format: int32 + nullable: false + dynamicConfig: description: >- - The description of the license level. - billing: - type: string + Whether or not the server will automatically pickup the latest + default configuration if it changes. + type: boolean + nullable: false + readOnly: description: >- - The billing information associated with the license - issuanceDate: - type: string - format: date-time + Whether or not the server was started in read-only mode. If in + read-only mode then operations that modify the repository (e.g.: + loading records or configuring new data sources) are not allowed. + type: boolean + nullable: false + adminEnabled: description: >- - The issuance date for the license. - expirationDate: + Whether or not admin features are enabled. If admin features are + not enabled then the configuration cannot be modified. + type: boolean + nullable: false + SzDataSource: + description: Describes a data source. + type: object + properties: + dataSourceCode: + description: The data source code. type: string - format: date-time + nullable: false + dataSourceId: description: >- - The expiration date for the license. - recordLimit: + The data source ID. The value can be null when used for input in + creating a data source to indicate that the data source ID should + be auto-generated. type: integer - format: int64 - description: >- - The record limit associated with the license. - SzEntityRecord: - description: >- - Describes a record (aka: observed entity) that has been loaded for - a particular data source. + format: int32 + nullable: true + SzEntityType: + description: Describes an entity type. type: object properties: - dataSource: + entityTypeCode: + description: The entity type code. type: string - description: >- - The data source code identifying the source from which the record - was loaded. - recordId: + nullable: false + entityClassCode: + description: The entity class code associated with the entity type. type: string + nullable: false + entityTypeId: description: >- - The identifier that uniquely identifies this record from other - records from the same data source. This may have been loaded with - the record or automatically generated from the record's data. - addressData: - description: >- - An array of addresses associated with the record that are formatted - for readability. These may be prefixed by a "usage type" if one - was provided (e.g.: "HOME: 101 Main Street") - type: array - items: - type: string - attributeData: - description: >- - An array of attributes associated with the record that are formatted - for readability. These will be prefixed by an attribtue type and - optionally by a "usage type" if one was provided. - type: array - items: - type: string - identifierData: - description: >- - An array of entity data associated with the record where the items - are formatted for readability. These will be prefixed by an - identifier type and may be prefixed by a "usage type" if one was - provided (e.g.: "ID: 123456789" or "EMAIL: WORK: joe@nowhere.com") - type: array - items: - type: string - nameData: - description: >- - An array of names associated with the record that are formatted for - readability. These may be prefixed by a "usage type" if one was - provided (e.g.: "Joe Schmoe" or "AKA: Joseph P. Schmoe") - type: array - items: - type: string - phoneData: - description: >- - An array of phone numbers associated with the record that are - formatted for readability. These may be prefixed by a "usage type" - if one was provided (e.g.: "HOME: 702-555-1212") - type: array - items: - type: string - relationshipData: - description: >- - An array of relationship data items associated with the record that - describes disclosed relationships. - type: array - items: - type: string - otherData: + The entity type ID. The value can be null when used for input in + creating an entity type to indicate that the entity type ID should + be auto-generated. + type: integer + format: int32 + nullable: true + SzEntityClass: + description: Describes an entity class. + type: object + properties: + entityClassCode: + description: The entity class code. + type: string + nullable: false + entityClassId: description: >- - An array of associated data items that were loaded with the record - but not normally recognized or used for entity resolution. This - array usually contains useful information from the source system. - type: array - items: - type: string - originalSourceData: + The entity class ID. The value can be null when used for input in + creating an entity class to indicate that the entity class ID + should be auto-generated. + type: integer + format: int32 + nullable: true + resolving: description: >- - The JSON representation of the original data record that was - loaded. - type: object - additionalProperties: {} - SzDataSourceRecordSummary: + Whether or not entities having entity types belong to this entity + class will resolve with each other. This is `true` if they will + resolve and `false` if they will not. + type: boolean + nullable: true + SzDataSourceDescriptor: description: >- - Describes the number of records associated with a specific data source - for a given resolved entity. Optionally, if the complete set of records - has been retrieved for the associated entity, then this may also contain - the "top 10" record IDs for the associated data source. + Describes a data source either as only its data source code or as an + `SzDataSource` object. + oneOf: + - type: string + - $ref: '#/components/schemas/SzDataSource' + SzEntityTypeDescriptor: + description: >- + Describes an entity type either as only its entity type code or as an + `SzEntityType` object. + oneOf: + - type: string + - $ref: '#/components/schemas/SzEntityType' + SzEntityClassDescriptor: + description: >- + Describes an entity class either as only its entity class code or as an + `SzEntityClass` object. + oneOf: + - type: string + - $ref: '#/components/schemas/SzEntityClass' + SzDataSourceRecordAnalysis: + description: >- + Provides statistics specific to a given data source of the records + found in bulk data. type: object properties: dataSource: description: >- The data source code identifying the data source for which the - record breakdown is being described. + statistics are being provided. This is `null` if the statistics + pertain to those records with no data source defined in the + source data. type: string + nullable: true recordCount: description: >- - The number of records from the respective data source that are - part of the associated resolved entity. + The number of records having the associated data source. type: integer format: int32 - topRecordIds: + recordsWithRecordIdCount: description: >- - The optional array of string record ID's identifying the top 10 - records for the associated entity from the respective data source. - This may be null or an empty array if the data was not available. - type: array - nullable: true - items: - type: string - SzEntityFeature: + The number of records having the associated data source that + include a `RECORD_ID` value. + nullable: false + type: integer + format: int32 + recordsWithEntityTypeCount: + description: >- + The number of records having the associated data source that + include an `ENTITY_TYPE` value. + nullable: false + type: integer + format: int32 + SzEntityTypeRecordAnalysis: description: >- - Describes a feature for an entity as well as including any close values - for the feature that were considered to be duplicate values for - entity resolution purposes. + Provides statistics specific to a given entity type of the records + found in bulk data. type: object properties: - primaryValue: - type: string - usageType: + entityType: description: >- - The optional associated usage type (e.g.: "HOME" or "WORK") + The entity type code identifying the entity type for which the + statistics are being provided. This is `null` if the statistics + pertain to those records with no entity type defined in the + source data. type: string nullable: true - duplicateValues: + recordCount: description: >- - The array of values that are close enough to the primary value - for the feature that they are considered to be duplicate values for - the purpose of entity resolution. - type: array - items: - type: string - SzResolvedEntity: + The number of records having the associated entity type. + type: integer + format: int32 + recordsWithRecordIdCount: + description: >- + The number of records having the associated entity type that + include a `RECORD_ID` value. + nullable: false + type: integer + format: int32 + recordsWithDataSourceCount: + description: >- + The number of records having the associated entity type that + include a `DATA_SOURCE` value. + nullable: false + type: integer + format: int32 + SzBaseBulkLoadResult: description: >- - Describes a resolved entity that is made up of one or more EntityRecord - instances. + Provides statistics specific common to all bulk load results regardless + of how they are aggregated. type: object properties: - entityId: + recordCount: description: >- - The unique numeric ID identifying the entity. + The number of records found in the bulk data set with the aggregate + group. This may not match the number of "observed entities" once + loaded since some records may be exact duplicates. type: integer - format: int64 - entityName: + format: int32 + loadedRecordCount: description: >- - The name associated with this entity that is considered the - best name among all the associated names. - type: string - bestName: + The number of records successfully loaded from the bulk data set + within the aggregate group. This may not match the number + of "observed entities" loaded since some records may be exact + duplicates. + type: integer + format: int32 + incompleteRecordCount: description: >- - Usually the same as the entityName property, but this may differ - if the entity was found based on a name search. In such a case, - this field represents the name that most closely matches the name - that was searched on. - type: string - recordSummaries: + The number of records from the bulk data set within the aggregate + group that are missing either a `DATA_SOURCE` value or `ENTITY_TYPE` + value. + type: integer + format: int32 + failedRecordCount: description: >- - The array of DataSourceRecordSummary instances describing the - number of records associated with each data source that contributes - to this entity. - type: array - items: - $ref: '#/components/schemas/SzDataSourceRecordSummary' - nameData: + The number of records from the bulk data set within the aggregate + group that failed to load. + type: integer + format: int32 + topErrors: description: >- - An array of names associated with the entity that are formatted for - readability. These may be prefixed by a "usage type" if one was - provided (e.g.: "Joe Schmoe" or "AKA: Joseph P. Schmoe") + The array of top error occurrences with the number of times they + occurred when loading records with the associated data source. type: array items: - type: string - attributeData: + $ref: '#/components/schemas/SzBulkLoadError' + SzDataSourceBulkLoadResult: + description: >- + Provides bulk data load statistics specific to a given data source. + allOf: + - $ref: '#/components/schemas/SzBaseBulkLoadResult' + - type: object + properties: + dataSource: + description: >- + The data source code identifying the data source for which the + load statistics are being provided. + type: string + nullable: false + SzEntityTypeBulkLoadResult: + description: >- + Provides bulk data load statistics specific to a given enitty type. + allOf: + - $ref: '#/components/schemas/SzBaseBulkLoadResult' + - type: object + properties: + entityType: + description: >- + The entity type code identifying the entity type for which the + load statistics are being provided. + type: string + nullable: false + SzBulkDataStatus: + description: >- + Describes the status of a bulk data operation: + * `NOT_STARTED` - The bulk data operation has not started. + * `IN_PROGRESS` - If bulk data operation is in progress. + * `ABORTED` - The bulk data operation was aborted. + * `COMPLETED` - The bulk data operation completed normally. + type: string + enum: + - NOT_STARTED + - IN_PROGRESS + - ABORTED + - COMPLETED + SzBulkDataAnalysis: + description: >- + Describes the analysis performed against a set of bulk data records + described as a JSON array, JSON Lines format or CSV format. + type: object + properties: + status: description: >- - An array of attributes associated with the entity that are formatted - for readability. These will be prefixed by an attribtue type and - optionally by a "usage type" if one was provided. - type: array - items: - type: string - addressData: + The state of the bulk load. + $ref: '#/components/schemas/SzBulkDataStatus' + characterEncoding: description: >- - An array of addresses associated with the entity that are formatted - for readability. These may be prefixed by a "usage type" if one - was provided (e.g.: "HOME: 101 Main Street") - type: array - items: - type: string - phoneData: + The character encoding used to process the bulk data. + nullable: false + type: string + mediaType: + description: >- + The media type of the bulk data. + nullable: false + type: string + recordCount: + description: >- + The number of records found in the bulk data. This may not match + the number of "observed entities" once loaded since some records + may be exact duplicates. + nullable: false + type: integer + format: int32 + recordsWithRecordIdCount: description: >- - An array of phone numbers associated with the entity that are - formatted for readability. These may be prefixed by a "usage type" - if one was provided (e.g.: "HOME: 702-555-1212") - type: array - items: - type: string - identifierData: + The number of records provided that include a `RECORD_ID` value. + nullable: false + type: integer + format: int32 + recordsWithDataSourceCount: description: >- - An array of entity data associated with the record where the items - are formatted for readability. These will be prefixed by an - identifier type and may be prefixed by a "usage type" if one was - provided (e.g.: "ID: 123456789" or "EMAIL: WORK: joe@nowhere.com") + The number of records provided that include a `DATA_SOURCE` value. + nullable: false + type: integer + format: int32 + recordsWithEntityTypeCount: + description: >- + The number of records provided that include a `ENTITY_TYPE` value. + nullable: false + type: integer + format: int32 + analysisByDataSource: + description: >- + The array of `SzDataSourceRecordAnalysis` elements providing statistics on the records by data source. + nullable: false type: array items: - type: string - records: + $ref: '#/components/schemas/SzDataSourceRecordAnalysis' + analysisByEntityType: description: >- - The array of EntityRecord instances describing the records - associated with this entity. + The array of `SzEntityTypeRecordAnalysis` elements providing statistics on the records by entity type. + nullable: false type: array items: - $ref: '#/components/schemas/SzEntityRecord' - features: - description: >- - The map of string feature names to arrays of EntityFeature instances - describing the values associated with each respective feature name. - type: object - additionalProperties: - type: array - items: - $ref: '#/components/schemas/SzEntityFeature' - SzBaseRelatedEntity: + $ref: '#/components/schemas/SzEntityTypeRecordAnalysis' + SzBulkLoadResult: description: >- - Provides the additional fields to a ResolvedEntity that describe - an entity's relationship to another. This serves as a basis for - AttributeSearchResult and RelatedEntity. + Describes the result from loading a set of bulk data records + described as a JSON array, JSON Lines format or CSV format. allOf: - - $ref: '#/components/schemas/SzResolvedEntity' + - $ref: '#/components/schemas/SzBaseBulkLoadResult' - type: object properties: - matchLevel: - description: >- - The integer "match level" describing how the related entity - matched to the primary resolved entity. - type: integer - format: int32 - fullNameScore: - description: >- - The full name score between the primary resolved entity and - this related entity. The higher the score the closer the - name match. - type: integer - format: int32 - matchScore: - description: >- - The match score between the primary resolved entity and - this related entity. The higher the score the closer - the match. - type: integer - format: int32 - disclosed: - description: >- - A boolean flag indicating if this related entity - represents a disclosed relationship. - type: boolean - ambiguous: + status: description: >- - A boolean flag indicating if this related entity - represents an ambiguous relationship. - type: boolean - matchKey: + The state of the bulk load. + $ref: '#/components/schemas/SzBulkDataStatus' + characterEncoding: description: >- - The match key describing what features matched between - the primary resolved entity and the related entity. + The character encoding used to process the bulk data. + nullable: false type: string - resolutionRuleCode: + mediaType: description: >- - The code identifying the resolution rule that related - this entity to the primary resolved entity. + The media type of the bulk data. + nullable: false type: string - refScore: + missingDataSourceCount: description: >- - The ref score between the primary resolved entity and - this related entity. + The number of records that are incomplete because they are + missing the `DATA_SOURCE` field. + nullable: false type: integer format: int32 - partial: + missingEntityTypeCount: description: >- - If true then this RelatedEntity has complete features and - records, otherwise they are not provided. Also, the - recordSummary items will be missing the topRecordIds if partial - is true. - type: boolean - SzRelationshipType: + The number of records that are incomplete because they are + missing the `ENTITY_TYPE` field. + nullable: false + type: integer + format: int32 + resultsByDataSource: + description: >- + The array of `SzDataSourceBulkDataResult` elements describing + the load statistics by data source. + nullable: false + type: array + items: + $ref: '#/components/schemas/SzDataSourceBulkLoadResult' + resultsByEntityType: + description: >- + The array of `SzEntityTypeBulkDataResult` elements describing + the load statistics by entity type. + nullable: false + type: array + items: + $ref: '#/components/schemas/SzEntityTypeBulkLoadResult' + SzFocusRecordId: description: >- - Describes how an entity is related to another (either a possible match, - a discovered possible relationship or a disclosed relationship) + Identifies a focus record for an `SzWhyResult`. + type: object + properties: + dataSource: + description: >- + The data source code that uniquely identifies the data source + associated with the record. + type: string + recordId: + description: >- + The record ID that uniquely identifies a record within the + respective data source. + type: string + SzScoringFrequency: + description: >- + Enumerates the various scoring behavior frequencies for entity features. + This indicates the number of entities that would typically share the + same value for a feature of this type. The possible values are: + * `ALWAYS_ONE` - The feature value belongs to exactly one entity so + if two records share this value they will always + merge together. + * `ONE` - The feature value typically belongs to one entity (like a + Social Security Number, Tax ID or Drivers License Number) + * `FEW` - The feature value typically belongs to at most a few + entities (like an Address or Phone Number). + * `MANY` - The feature value can belong to many entities (like a + date of birth) + * `VERY_MANY` - The feature can belong to very many entities (like + a gender). + * `NAME` - A special frequency used for name features since they have + unique properties. type: string enum: - - POSSIBLE_MATCH - - POSSIBLE_RELATION - - DISCLOSED_RELATION - SzRelatedEntity: - description: >- - Provides a description of an entity that is related to a - ResolvedEntity. This describes how the entity is related and may - be missing the complete features and record list of a ResolvedEntity. - allOf: - - type: object - properties: - relationType: - $ref: '#/components/schemas/SzRelationshipType' - - $ref: '#/components/schemas/SzBaseRelatedEntity' - SzEntityData: + - ALWAYS_ONE + - ONE + - FEW + - MANY + - VERY_MANY + - NAME + SzScoringBehavior: description: >- - Describes an entity and the entities related to that entity at - one degree of separation. + Describes the scoring behavior for a feature / feature type. type: object properties: - resolvedEntity: - description: The ResolvedEntity describing the primary entity. - $ref: '#/components/schemas/SzResolvedEntity' - relatedEntities: + code: description: >- - The array of RelatedEntity instances describing the possible - matches, discovered relationships, and disclosed relationships. - type: array - items: - $ref: '#/components/schemas/SzRelatedEntity' - SzAttributeSearchResultType: + The code identifying the behavior. + type: string + frequency: + description: >- + The number of entities that that would typically share the same + value for a feature of type. This value can only be `null` if the + frequency is unknown for the scoring behavior code that is returned. + nullable: true + $ref: '#/components/schemas/SzScoringFrequency' + exclusive: + description: >- + `true` if an entity should typically have only one value for + a feature of this type (like a Social Security Number, Date of + Birth) and `false` if the entity can typically have multiple values + for the feature type (like Address or Phone Number). This value is + `null` if exclusivity is not applicable to the scoring behavior such + as with special scoring behaviors like `NAME`. + type: boolean + nullable: true + stable: + description: >- + `true` if the feature value for the feature type remains constant + for an entity over time (like a Date of Birth), and `false` if it + can can change for the entity over time (like a Home Address). This + is `null` if the stability is not applicable to the scoring behavior + such as with special behaviors like `NAME`. + type: boolean + nullable: true + SzScoringBucket: description: >- - Describes how the entity matching the search attributes would have - entity resolved against those attributes (either a match, possible - match, discovered relationship or name only match). + Describes the scoring bucket that a feature score falls into. The + range of scores constitute different buckets depending on the feature + type.. The possible values are: + * `SAME` - The two feature values are considered to be the same. + * `CLOSE` - The two feature values are considered to be close. + * `LIKELY` - The two feature values are similar, but not enough to + be considered `CLOSE`. + * `PLAUSIBLE` - It's possible that the two feature values are the + same but almost just as likely that they are not. + * `UNLIKELY` - It's unlikely that the two feature values represent + the same value. + * `NO_CHANCE` - The two feature values obviously represent different + values. type: string enum: - - MATCH - - POSSIBLE_MATCH - - POSSIBLE_RELATION - - NAME_ONLY_MATCH - SzAttributeSearchResult: + - SAME + - CLOSE + - LIKELY + - PLAUSIBLE + - UNLIKELY + - NO_CHANCE + SzScoredFeature: description: >- - Describes an entity that matched attribute search criteria and how - it matched against that criteria. - allOf: - - type: object - properties: - resultType: - $ref: '#/components/schemas/SzAttributeSearchResultType' - - $ref: '#/components/schemas/SzBaseRelatedEntity' - SzEntityPath: + A description of a feature that has been scored against another feature. + type: object + properties: + featureId: + description: >- + The identifier uniquely identifying the feature. + type: integer + format: int64 + featureType: + description: >- + The feature type of the feature. + type: string + featureValue: + description: >- + The value of the feature that was scored. + type: string + usageType: + description: >- + The usage type assigned to the feature value. + type: string + SzFeatureScore: description: >- - Describes a path between two entities using the entity IDs of the - entities in the path. + Describes the scoring between two `SzScoredFeature` instances. type: object properties: - startEntityId: - description: The starting entity ID for the path. + featureType: + description: >- + The feature type of the features being scored. + type: string + inboundFeature: + description: >- + The inbound feature described as an `SzScoredFeature`. + $ref: '#/components/schemas/SzScoredFeature' + candidateFeature: + description: >- + The feature that was a candidate match for the inbound feature (also + described as an `SzScoredFeature`). + $ref: '#/components/schemas/SzScoredFeature' + score: + description: >- + The integer score between the two feature values (typically from 0 + to 100) + type: integer + format: int32 + scoringBucket: + description: >- + The `SzScoringBucket` describing the meaning of the `score`. + $ref: '#/components/schemas/SzScoringBucket' + scoringBehavior: + description: >- + The `SzScoringBehavior` describing the scoring behavior for the + features. + $ref: '#/components/schemas/SzScoringBehavior' + SzCandidateKey: + description: >- + Describes a candidate key that triggered the scoring of two entities. + type: object + properties: + featureId: + description: >- + The identifier for the candidate feature. + type: integer + format: int64 + featureType: + description: >- + The feature type for the candidate feature. + type: string + featureValue: + description: >- + The feature value for the candidate feature. + type: string + SzMatchInfo: + description: >- + The match info describing why two entities (or records) resolve or + relate to one another. + type: object + properties: + whyKey: + description: >- + The why key indicating the components of the match (similar to the + match key). + nullable: false + type: string + resolutionRule: + description: >- + The resolution rule that triggered the match. + nullable: false + type: string + candidateKeys: + description: >- + The map of feature types to arrays of `SzCandidateKey` instances + for that feature type. + nullable: false + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/SzCandidateKey' + featureScores: + description: >- + The map of feature types to arrays of `SzFeatureScore` instances + for that feature type. + nullable: false + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/SzFeatureScore' + SzWhyPerspective: + description: >- + Describes the perspective used in evaluating why an entity resolved + or why two records may or may not resolve. The answer to "why" is + dependent on which "record" you are comparing against the other + "records". Internally, it is not always based on "record" because + multiple records that are effectively identical collapse into a single + perspective. + properties: + internalId: + description: >- + The internal ID uniquely identifying this perspective from others + in the complete "why" response. nullable: false type: integer format: int64 - endEntityId: - description: The ending entity ID for the path. + entityId: + description: >- + The associated entity ID for the perspective. nullable: false type: integer format: int64 - entityIDs: + focusRecords: description: >- - The array of entity IDs identifying the entities on the path - in order of how are they are connected on the path. This is - null if there is no path between the entities. - nullable: true + The array of `SzFocusRecordId` instances identifying the effectively + identical records that are being compared against the other records. + nullable: false type: array items: - type: integer - format: int64 - SzEntityPathData: + $ref: '#/components/schemas/SzFocusRecordId' + SzWhyEntityResult: description: >- - Describes a path between two entities using the entity IDs of the - entities in the path and includes the data from the actual entities - on the path. + Describes why an entity resolved. type: object properties: - entityPath: - $ref: '#/components/schemas/SzEntityPath' - entities: + perspective: description: >- - The array of EntityData objects describing the entities on the - path. This will include partial information on the first-degree - related entities to the entity. - type: array - items: - $ref: '#/components/schemas/SzEntityData' - SzEntityNetworkData: + The `SzWhyPerspective` identifying and describing the perspective + for this why result. + $ref: '#/components/schemas/SzWhyPerspective' + matchInfo: + description: >- + The `SzMatchInfo` providing the details of the result. + nullable: false + $ref: '#/components/schemas/SzMatchInfo' + SzWhyRecordsResult: description: >- - Describes a network of paths between entities using the entity IDs of - the entities in the path and includes the data from the actual entities - in the network. + Describes why two records might resolve. type: object properties: - entityPaths: + perspective1: description: >- - The array of EntityPath objects describing the paths that make up - the entity network (including island networks). - type: array - items: - $ref: '#/components/schemas/SzEntityPath' - entities: + The `SzWhyPerspective` identifying and describing the perspective + from the first record. + $ref: '#/components/schemas/SzWhyPerspective' + perspective2: description: >- - The array of EntityData objects describing the entities on the - path. This may only include partial information on the entities at - the edge of the network. - type: array - items: - $ref: '#/components/schemas/SzEntityData' + The `SzWhyPerspective` identifying and describing the perspective + from the second record. + $ref: '#/components/schemas/SzWhyPerspective' + matchInfo: + description: >- + The `SzMatchInfo` providing the details of the result. + nullable: false + $ref: '#/components/schemas/SzMatchInfo' tags: - name: Admin description: Administrative operations. @@ -1132,4 +5416,5 @@ tags: description: Entity and record data operations. - name: Entity Graph description: Entity relationship connections for graphing. - + - name: Bulk Data + description: Preparation and loading of bulk data.