Data Import Converter Storage version v1.0
http://localhost
Data Import Converter Storage API
API for managing data import profiles
/data-import-profiles
API for managing Job Profiles
Create a new jobProfile item.
Retrieve a list of jobProfile items.
post /data-import-profiles/jobProfiles
Create a new jobProfile item.
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Job Profile Update/Create schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Profile identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profile": {
"description": "Job Profile object",
"javaType": "org.folio.rest.jaxrs.model.JobProfile"
},
"addedRelations": {
"description": "Job profile added relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"deletedRelations": {
"description": "Job profile deleted relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
}
},
"required": [
"profile"
]
}
Example:
{
"id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataType": "MARC",
"tags": {
"tagList": [
"acq", "daily"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
HTTP status code 201
Returns a newly created item, with server-controlled fields like 'id' populated
Headers
- Location: required(string)
URI to the created jobProfile item
Body
Media type: application/json
Type: any
Example:
{
"id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataType": "MARC",
"tags": {
"tagList": [
"acq", "daily"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to add jobProfile -- malformed JSON at 13:3"
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to create jobProfiles -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
get /data-import-profiles/jobProfiles
Retrieve a list of jobProfile items.
Query Parameters
- showHidden: (boolean - default: false)
selection condition of Job Profiles by field 'hidden'
Example:
false
- withRelations: (boolean - default: false)
Load profile with related child and parent profiles
Example:
false
- query: (string)
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
with valid searchable fields: for example userInfo.lastName=Doe
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode userInfo.lastName=Doe
- totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)
How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
none
- offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)
Skip over a number of elements by specifying an offset value for the query
Example:
0
- limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)
Limit the number of elements returned in the response
Example:
10
HTTP status code 200
Returns a list of jobProfile items
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Collection of Job Profiles",
"type": "object",
"additionalProperties": false,
"properties": {
"jobProfiles": {
"description": "List of Job Profiles",
"type": "array",
"id": "jobProfileList",
"items": {
"type": "object",
"$ref": "jobProfile.json"
}
},
"totalRecords": {
"description": "Total number of Job Profiles",
"type": "integer"
}
},
"excludedFromEqualsAndHashCode": [
"totalRecords"
],
"required": [
"jobProfiles",
"totalRecords"
]
}
Example:
{
"jobProfiles": [
{
"id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataType": "MARC",
"tags": {
"tagList": [
"acq", "daily"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "295e28b4-aea2-4458-9073-385a31e1da05",
"name": "Load shelfready cataloging records",
"description": "Overlay brief bibs, update holdings and item records, create invoice",
"dataType": "MARC",
"tags": {
"tagList": [
"cat", "weekly"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-10-30T12:42:18.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-11-03T10:01:30.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "bb689511-5365-4050-8084-a03d94728d88",
"name": "Approval plan records",
"description": "Create bibs, holdings, items, orders, and invoices",
"dataType": "MARC",
"tags": {
"tagList": [
"acq", "cat", "weekly"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-10-30T12:45:33.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-11-03T11:22:30.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "3e705998-9169-4f31-b048-90ffdcbd24c1",
"name": "Load KB eResource records",
"description": "Create, update, delete existing eContent bib records",
"dataType": "MARC",
"tags": {
"tagList": [
"monthly", "KB"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-11-01T10:12:51.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-12-02T09:05:30.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "15426802-bb0d-4dfb-8eee-90f64fed0cf1",
"name": "ETL Bib records",
"description": "Reload bib records that were exported and updated outside of FOLIO",
"dataType": "MARC",
"tags": {
"tagList": []
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-11-01T10:37:53.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-12-03T11:45:21.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "87e4ad58-d677-43dd-8b04-9795741b2103",
"name": "Loading authority records",
"description": "Load new and updated MARC authority records",
"dataType": "MARC",
"tags": {
"tagList": [
"cat", "monthly"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-11-02T10:20:32.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-12-02T10:45:21.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "72af7eb7-d7e2-4d16-93ac-682b9a58a94c",
"name": "DDA discovery records",
"description": "Load DDA discovery MARC records to create bib and holdings",
"dataType": "MARC",
"tags": {
"tagList": [
"weekly", "DDA"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-11-02T10:18:44.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-12-03T14:20:21.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "4d1b5024-2c49-42bd-b781-4330d14cefb0",
"name": "Create orders from spreadsheets",
"description": "Selector-provided spreadsheet creates instance, holdings, item, and order",
"dataType": "Delimited",
"tags": {
"tagList": [
"acq"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-11-01T10:09:51.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-12-01T15:21:28.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "b32e79bc-01d9-4d31-bc08-a3621fcfc1aa",
"name": "Load EDI Invoice",
"description": "",
"dataType": "EDIFACT",
"tags": {
"tagList": [
"acq"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-11-01T10:18:42.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-12-05T13:08:12.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
},
{
"id": "828a787c-bcf3-4c28-891a-9e6f3ba5068b",
"name": "Load MARC, then throw away",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; then discard MARC",
"dataType": "MARC",
"tags": {
"tagList": [
"acq", "daily"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-11-01T11:08:21.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-12-01T19:01:41.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
],
"totalRecords": 10
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
unable to list jobProfiles -- malformed parameter 'query', syntax error at column 6
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to list jobProfiles -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Get, Delete or Update a specific Job Profile
Retrieve jobProfile item with given {jobProfileId}
Update jobProfile item with given {jobProfileId}
Delete jobProfile item with given {jobProfileId}
get /data-import-profiles/jobProfiles/{id}
Retrieve jobProfile item with given {jobProfileId}
URI Parameters
- id: required(string)
Query Parameters
- withRelations: (boolean - default: false)
Load profile with related child and parent profiles
Example:
false
HTTP status code 200
Returns item with a given ID
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Job Profile schema",
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"name": {
"description": "Job Profile name",
"type": "string"
},
"description": {
"description": "Job Profile description",
"type": "string"
},
"dataType": {
"description": "Data type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"Delimited",
"EDIFACT",
"MARC"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"type": "string",
"enum": [
"MATCH",
"NON-MATCH"
]
},
"tags": {
"description": "Set of tags assigned to the current Job Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"userInfo": {
"description": "First name, last name and username of the user, who updated the Job Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"firstName": {
"description": "User first name",
"type": "string"
},
"lastName": {
"description": "User last name",
"type": "string"
},
"userName": {
"description": "User name (nickname)",
"type": "string"
}
}
},
"parentProfiles": {
"description": "Associated parent profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"type": "object",
"$ref": "./profileSnapshotWrapper.json"
}
},
"childProfiles": {
"description": "Associated children profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"$ref": "profileSnapshotWrapper.json",
"type": "object"
}
},
"hidden": {
"description": "Flag indicates that the Job Profile will be hidden on UI",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"name",
"dataType"
]
}
Example:
{
"id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataType": "MARC",
"tags": {
"tagList": [
"acq", "daily"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"jobProfile not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
put /data-import-profiles/jobProfiles/{id}
Update jobProfile item with given {jobProfileId}
URI Parameters
- id: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Job Profile Update/Create schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Profile identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profile": {
"description": "Job Profile object",
"javaType": "org.folio.rest.jaxrs.model.JobProfile"
},
"addedRelations": {
"description": "Job profile added relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"deletedRelations": {
"description": "Job profile deleted relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
}
},
"required": [
"profile"
]
}
Example:
{
"id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataType": "MARC",
"tags": {
"tagList": [
"acq", "daily"
]
},
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Job Profile schema",
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"name": {
"description": "Job Profile name",
"type": "string"
},
"description": {
"description": "Job Profile description",
"type": "string"
},
"dataType": {
"description": "Data type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"Delimited",
"EDIFACT",
"MARC"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"type": "string",
"enum": [
"MATCH",
"NON-MATCH"
]
},
"tags": {
"description": "Set of tags assigned to the current Job Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"userInfo": {
"description": "First name, last name and username of the user, who updated the Job Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"firstName": {
"description": "User first name",
"type": "string"
},
"lastName": {
"description": "User last name",
"type": "string"
},
"userName": {
"description": "User name (nickname)",
"type": "string"
}
}
},
"parentProfiles": {
"description": "Associated parent profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"type": "object",
"$ref": "./profileSnapshotWrapper.json"
}
},
"childProfiles": {
"description": "Associated children profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"$ref": "profileSnapshotWrapper.json",
"type": "object"
}
},
"hidden": {
"description": "Flag indicates that the Job Profile will be hidden on UI",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"name",
"dataType"
]
}
HTTP status code 204
Item successfully updated
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to update jobProfile -- malformed JSON at 13:4"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"jobProfile not found"
HTTP status code 409
Optimistic locking version conflict
Body
Media type: text/plain
Type: any
Example:
version conflict
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
delete /data-import-profiles/jobProfiles/{id}
Delete jobProfile item with given {jobProfileId}
URI Parameters
- id: required(string)
HTTP status code 204
Item deleted successfully
Body
Media type: text/plain
Type: any
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to delete jobProfile -- constraint violation"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"jobProfile not found"
HTTP status code 409
Body
Media type: text/plain
Type: any
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
API for managing Match Profiles
Create a new matchProfile item.
Retrieve a list of matchProfile items.
post /data-import-profiles/matchProfiles
Create a new matchProfile item.
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Match Profile Update/Create schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Profile identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profile": {
"description": "Match Profile object",
"javaType": "org.folio.rest.jaxrs.model.MatchProfile"
},
"addedRelations": {
"description": "Match profile added relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"deletedRelations": {
"description": "Match profile deleted relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
}
},
"required": [
"profile"
]
}
Example:
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "POL-MARC",
"description": "Use for POL in 990 p",
"tags": {
"tagList": [
"pol"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"matchDetails": [
{
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"incomingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "990"
},
{
"label": "indicator1",
"value": " "
},
{
"label": "indicator2",
"value": " "
},
{
"label": "recordSubfield",
"value": "p"
}
]
},
"matchCriterion": "EXACTLY_MATCHES",
"existingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "PO_LINE_NUMBER"
}
]
}
}
],
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "@janedoe",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": "@janedoe"
}
}
HTTP status code 201
Returns a newly created item, with server-controlled fields like 'id' populated
Headers
- Location: required(string)
URI to the created matchProfile item
Body
Media type: application/json
Type: any
Example:
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "POL-MARC",
"description": "Use for POL in 990 p",
"tags": {
"tagList": [
"pol"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"matchDetails": [
{
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"incomingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "990"
},
{
"label": "indicator1",
"value": " "
},
{
"label": "indicator2",
"value": " "
},
{
"label": "recordSubfield",
"value": "p"
}
]
},
"matchCriterion": "EXACTLY_MATCHES",
"existingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "PO_LINE_NUMBER"
}
]
}
}
],
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "@janedoe",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": "@janedoe"
}
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to add matchProfile -- malformed JSON at 13:3"
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to create matchProfiles -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
get /data-import-profiles/matchProfiles
Retrieve a list of matchProfile items.
Query Parameters
- showHidden: (boolean - default: false)
selection condition of Match Profiles by field 'hidden'
Example:
false
- withRelations: (boolean - default: false)
Load profile with related child and parent profiles
Example:
false
- query: (string)
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
with valid searchable fields: for example userInfo.lastName=Doe
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode userInfo.lastName=Doe
- totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)
How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
none
- offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)
Skip over a number of elements by specifying an offset value for the query
Example:
0
- limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)
Limit the number of elements returned in the response
Example:
10
HTTP status code 200
Returns a list of matchProfile items
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Collection of Match Profiles",
"type": "object",
"additionalProperties": false,
"properties": {
"matchProfiles": {
"description": "List of Match Profiles",
"type": "array",
"id": "matchProfileList",
"items": {
"type": "object",
"$ref": "matchProfile.json"
}
},
"totalRecords": {
"description": "Total number of Match Profiles",
"type": "integer"
}
},
"excludedFromEqualsAndHashCode": [
"totalRecords"
],
"required": [
"matchProfiles",
"totalRecords"
]
}
Example:
{
"matchProfiles": [
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "POL-MARC",
"description": "Use for POL in 990 p",
"tags": {
"tagList": [
"pol"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"matchDetails": [
{
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"incomingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "990"
},
{
"label": "indicator1",
"value": " "
},
{
"label": "indicator2",
"value": " "
},
{
"label": "recordSubfield",
"value": "p"
}
]
},
"matchCriterion": "EXACTLY_MATCHES",
"existingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "PO_LINE_NUMBER"
}
]
}
}
],
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "@janedoe",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": "@janedoe"
}
}
],
"totalRecords": 1
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
unable to list matchProfiles -- malformed parameter 'query', syntax error at column 6
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to list matchProfiles -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Get, Delete or Update a specific Match Profile
Retrieve matchProfile item with given {matchProfileId}
Update matchProfile item with given {matchProfileId}
Delete matchProfile item with given {matchProfileId}
get /data-import-profiles/matchProfiles/{id}
Retrieve matchProfile item with given {matchProfileId}
URI Parameters
- id: required(string)
Query Parameters
- withRelations: (boolean - default: false)
Load profile with related child and parent profiles
Example:
false
HTTP status code 200
Returns item with a given ID
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Match Profile schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"name": {
"description": "Match Profile name",
"type": "string"
},
"description": {
"description": "Match Profile description",
"type": "string"
},
"tags": {
"description": "Set of tags assigned to the current Match Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"incomingRecordType": {
"description": "Incoming record type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"existingRecordType": {
"description": "Existing record type to match",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"matchDetails": {
"description": "Match profile details list",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Match profile detail",
"additionalProperties": false,
"properties": {
"incomingRecordType": {
"description": "Incoming record type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"existingRecordType": {
"description": "Existing record type to match",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"incomingMatchExpression": {
"description": "Incoming data match expression definition",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.MatchExpression",
"additionalProperties": false,
"properties": {
"dataValueType": {
"description": "Data value type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"VALUE_FROM_RECORD",
"STATIC_VALUE"
]
},
"fields": {
"description": "Only if dataValueType = VALUE_FROM_RECORD",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Record field definition for marc and non marc records",
"additionalProperties": false,
"properties": {
"label": {
"description": "Label from UI form which describes field or subfield in record",
"type": "string"
},
"value": {
"description": "Field or subfield name in record",
"type": "string",
"default": ""
}
},
"required": [
"label",
"value"
]
}
},
"staticValueDetails": {
"description": "Static value details",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"staticValueType": {
"description": "Static value type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"TEXT",
"NUMBER",
"DATE_RANGE",
"EXACT_DATE"
]
},
"text": {
"description": "Only if staticValueType = TEXT",
"type": "string"
},
"number": {
"description": "Only if staticValueType = NUMBER",
"type": "string"
},
"fromDate": {
"description": "Only if staticValueType = DATE_RANGE",
"type": "string",
"format": "date-time"
},
"toDate": {
"description": "Only if staticValueType = DATE_RANGE",
"type": "string",
"format": "date-time"
},
"exactDate": {
"description": "Only if staticValueType = EXACT_DATE",
"type": "string",
"format": "date-time"
}
}
},
"qualifier": {
"description": "Qualifier for data which will be used in matching, optional",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"qualifierType": {
"description": "Qualifier type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"BEGINS_WITH",
"ENDS_WITH",
"CONTAINS"
]
},
"qualifierValue": {
"description": "Qualifier value, only if qualifierType is specified",
"type": "string"
},
"comparisonPart": {
"description": "Part of the value to compare",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"NUMERICS_ONLY",
"ALPHANUMERICS_ONLY"
]
}
}
}
},
"required": [
"dataValueType"
]
},
"matchCriterion": {
"description": "Matching criteria",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"EXACTLY_MATCHES",
"EXISTING_VALUE_CONTAINS_INCOMING_VALUE",
"INCOMING_VALUE_CONTAINS_EXISTING_VALUE",
"EXISTING_VALUE_BEGINS_WITH_INCOMING_VALUE",
"INCOMING_VALUE_BEGINS_WITH_EXISTING_VALUE",
"EXISTING_VALUE_ENDS_WITH_INCOMING_VALUE",
"INCOMING_VALUE_ENDS_WITH_EXISTING_VALUE"
]
},
"existingMatchExpression": {
"description": "Existing data match expression definition",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.MatchExpression",
"additionalProperties": false,
"properties": {
"dataValueType": {
"description": "Data value type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"VALUE_FROM_RECORD",
"STATIC_VALUE"
]
},
"fields": {
"description": "Only if dataValueType = VALUE_FROM_RECORD",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Record field definition for marc and non marc records",
"additionalProperties": false,
"properties": {
"label": {
"description": "Label from UI form which describes field or subfield in record",
"type": "string"
},
"value": {
"description": "Field or subfield name in record",
"type": "string",
"default": ""
}
},
"required": [
"label",
"value"
]
}
},
"staticValueDetails": {
"description": "Static value details",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"staticValueType": {
"description": "Static value type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"TEXT",
"NUMBER",
"DATE_RANGE",
"EXACT_DATE"
]
},
"text": {
"description": "Only if staticValueType = TEXT",
"type": "string"
},
"number": {
"description": "Only if staticValueType = NUMBER",
"type": "string"
},
"fromDate": {
"description": "Only if staticValueType = DATE_RANGE",
"type": "string",
"format": "date-time"
},
"toDate": {
"description": "Only if staticValueType = DATE_RANGE",
"type": "string",
"format": "date-time"
},
"exactDate": {
"description": "Only if staticValueType = EXACT_DATE",
"type": "string",
"format": "date-time"
}
}
},
"qualifier": {
"description": "Qualifier for data which will be used in matching, optional",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"qualifierType": {
"description": "Qualifier type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"BEGINS_WITH",
"ENDS_WITH",
"CONTAINS"
]
},
"qualifierValue": {
"description": "Qualifier value, only if qualifierType is specified",
"type": "string"
},
"comparisonPart": {
"description": "Part of the value to compare",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"NUMERICS_ONLY",
"ALPHANUMERICS_ONLY"
]
}
}
}
},
"required": [
"dataValueType"
]
},
"booleanOperation": {
"description": "Used to add sub-matches to an existing match profile",
"type": "string",
"enum": [
"AND",
"AND NOT",
"OR"
]
}
},
"required": [
"incomingRecordType",
"existingRecordType",
"incomingMatchExpression",
"matchCriterion",
"existingMatchExpression"
]
}
},
"userInfo": {
"description": "First name, last name and username of the user, who updated the Match Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"firstName": {
"description": "User first name",
"type": "string"
},
"lastName": {
"description": "User last name",
"type": "string"
},
"userName": {
"description": "User name (nickname)",
"type": "string"
}
}
},
"parentProfiles": {
"description": "Associated parent profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"type": "object",
"$ref": "./profileSnapshotWrapper.json"
}
},
"childProfiles": {
"description": "Associated children profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"$ref": "profileSnapshotWrapper.json",
"type": "object"
}
},
"hidden": {
"description": "Flag indicates that the Match Profile will be hidden on UI",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"name",
"incomingRecordType",
"existingRecordType"
]
}
Example:
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "POL-MARC",
"description": "Use for POL in 990 p",
"tags": {
"tagList": [
"pol"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"matchDetails": [
{
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"incomingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "990"
},
{
"label": "indicator1",
"value": " "
},
{
"label": "indicator2",
"value": " "
},
{
"label": "recordSubfield",
"value": "p"
}
]
},
"matchCriterion": "EXACTLY_MATCHES",
"existingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "PO_LINE_NUMBER"
}
]
}
}
],
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "@janedoe",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": "@janedoe"
}
}
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"matchProfile not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
put /data-import-profiles/matchProfiles/{id}
Update matchProfile item with given {matchProfileId}
URI Parameters
- id: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Match Profile Update/Create schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Profile identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profile": {
"description": "Match Profile object",
"javaType": "org.folio.rest.jaxrs.model.MatchProfile"
},
"addedRelations": {
"description": "Match profile added relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"deletedRelations": {
"description": "Match profile deleted relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
}
},
"required": [
"profile"
]
}
Example:
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "POL-MARC",
"description": "Use for POL in 990 p",
"tags": {
"tagList": [
"pol"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"matchDetails": [
{
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "ORDER",
"incomingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "990"
},
{
"label": "indicator1",
"value": " "
},
{
"label": "indicator2",
"value": " "
},
{
"label": "recordSubfield",
"value": "p"
}
]
},
"matchCriterion": "EXACTLY_MATCHES",
"existingMatchExpression": {
"dataValueType": "VALUE_FROM_RECORD",
"fields": [
{
"label": "field",
"value": "PO_LINE_NUMBER"
}
]
}
}
],
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "@janedoe",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": "@janedoe"
}
}
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Match Profile schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"name": {
"description": "Match Profile name",
"type": "string"
},
"description": {
"description": "Match Profile description",
"type": "string"
},
"tags": {
"description": "Set of tags assigned to the current Match Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"incomingRecordType": {
"description": "Incoming record type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"existingRecordType": {
"description": "Existing record type to match",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"matchDetails": {
"description": "Match profile details list",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Match profile detail",
"additionalProperties": false,
"properties": {
"incomingRecordType": {
"description": "Incoming record type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"existingRecordType": {
"description": "Existing record type to match",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"incomingMatchExpression": {
"description": "Incoming data match expression definition",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.MatchExpression",
"additionalProperties": false,
"properties": {
"dataValueType": {
"description": "Data value type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"VALUE_FROM_RECORD",
"STATIC_VALUE"
]
},
"fields": {
"description": "Only if dataValueType = VALUE_FROM_RECORD",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Record field definition for marc and non marc records",
"additionalProperties": false,
"properties": {
"label": {
"description": "Label from UI form which describes field or subfield in record",
"type": "string"
},
"value": {
"description": "Field or subfield name in record",
"type": "string",
"default": ""
}
},
"required": [
"label",
"value"
]
}
},
"staticValueDetails": {
"description": "Static value details",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"staticValueType": {
"description": "Static value type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"TEXT",
"NUMBER",
"DATE_RANGE",
"EXACT_DATE"
]
},
"text": {
"description": "Only if staticValueType = TEXT",
"type": "string"
},
"number": {
"description": "Only if staticValueType = NUMBER",
"type": "string"
},
"fromDate": {
"description": "Only if staticValueType = DATE_RANGE",
"type": "string",
"format": "date-time"
},
"toDate": {
"description": "Only if staticValueType = DATE_RANGE",
"type": "string",
"format": "date-time"
},
"exactDate": {
"description": "Only if staticValueType = EXACT_DATE",
"type": "string",
"format": "date-time"
}
}
},
"qualifier": {
"description": "Qualifier for data which will be used in matching, optional",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"qualifierType": {
"description": "Qualifier type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"BEGINS_WITH",
"ENDS_WITH",
"CONTAINS"
]
},
"qualifierValue": {
"description": "Qualifier value, only if qualifierType is specified",
"type": "string"
},
"comparisonPart": {
"description": "Part of the value to compare",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"NUMERICS_ONLY",
"ALPHANUMERICS_ONLY"
]
}
}
}
},
"required": [
"dataValueType"
]
},
"matchCriterion": {
"description": "Matching criteria",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"EXACTLY_MATCHES",
"EXISTING_VALUE_CONTAINS_INCOMING_VALUE",
"INCOMING_VALUE_CONTAINS_EXISTING_VALUE",
"EXISTING_VALUE_BEGINS_WITH_INCOMING_VALUE",
"INCOMING_VALUE_BEGINS_WITH_EXISTING_VALUE",
"EXISTING_VALUE_ENDS_WITH_INCOMING_VALUE",
"INCOMING_VALUE_ENDS_WITH_EXISTING_VALUE"
]
},
"existingMatchExpression": {
"description": "Existing data match expression definition",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.MatchExpression",
"additionalProperties": false,
"properties": {
"dataValueType": {
"description": "Data value type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"VALUE_FROM_RECORD",
"STATIC_VALUE"
]
},
"fields": {
"description": "Only if dataValueType = VALUE_FROM_RECORD",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Record field definition for marc and non marc records",
"additionalProperties": false,
"properties": {
"label": {
"description": "Label from UI form which describes field or subfield in record",
"type": "string"
},
"value": {
"description": "Field or subfield name in record",
"type": "string",
"default": ""
}
},
"required": [
"label",
"value"
]
}
},
"staticValueDetails": {
"description": "Static value details",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"staticValueType": {
"description": "Static value type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"TEXT",
"NUMBER",
"DATE_RANGE",
"EXACT_DATE"
]
},
"text": {
"description": "Only if staticValueType = TEXT",
"type": "string"
},
"number": {
"description": "Only if staticValueType = NUMBER",
"type": "string"
},
"fromDate": {
"description": "Only if staticValueType = DATE_RANGE",
"type": "string",
"format": "date-time"
},
"toDate": {
"description": "Only if staticValueType = DATE_RANGE",
"type": "string",
"format": "date-time"
},
"exactDate": {
"description": "Only if staticValueType = EXACT_DATE",
"type": "string",
"format": "date-time"
}
}
},
"qualifier": {
"description": "Qualifier for data which will be used in matching, optional",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"qualifierType": {
"description": "Qualifier type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"BEGINS_WITH",
"ENDS_WITH",
"CONTAINS"
]
},
"qualifierValue": {
"description": "Qualifier value, only if qualifierType is specified",
"type": "string"
},
"comparisonPart": {
"description": "Part of the value to compare",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"enum": [
"NUMERICS_ONLY",
"ALPHANUMERICS_ONLY"
]
}
}
}
},
"required": [
"dataValueType"
]
},
"booleanOperation": {
"description": "Used to add sub-matches to an existing match profile",
"type": "string",
"enum": [
"AND",
"AND NOT",
"OR"
]
}
},
"required": [
"incomingRecordType",
"existingRecordType",
"incomingMatchExpression",
"matchCriterion",
"existingMatchExpression"
]
}
},
"userInfo": {
"description": "First name, last name and username of the user, who updated the Match Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"firstName": {
"description": "User first name",
"type": "string"
},
"lastName": {
"description": "User last name",
"type": "string"
},
"userName": {
"description": "User name (nickname)",
"type": "string"
}
}
},
"parentProfiles": {
"description": "Associated parent profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"type": "object",
"$ref": "./profileSnapshotWrapper.json"
}
},
"childProfiles": {
"description": "Associated children profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"$ref": "profileSnapshotWrapper.json",
"type": "object"
}
},
"hidden": {
"description": "Flag indicates that the Match Profile will be hidden on UI",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"name",
"incomingRecordType",
"existingRecordType"
]
}
HTTP status code 204
Item successfully updated
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to update matchProfile -- malformed JSON at 13:4"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"matchProfile not found"
HTTP status code 409
Optimistic locking version conflict
Body
Media type: text/plain
Type: any
Example:
version conflict
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
delete /data-import-profiles/matchProfiles/{id}
Delete matchProfile item with given {matchProfileId}
URI Parameters
- id: required(string)
HTTP status code 204
Item deleted successfully
Body
Media type: text/plain
Type: any
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to delete matchProfile -- constraint violation"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"matchProfile not found"
HTTP status code 409
Body
Media type: text/plain
Type: any
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
API for managing Mapping Profiles
Create a new mappingProfile item.
Retrieve a list of mappingProfile items.
post /data-import-profiles/mappingProfiles
Create a new mappingProfile item.
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Mapping Profile Update/Create schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Profile identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profile": {
"description": "Mapping Profile object",
"javaType": "org.folio.rest.jaxrs.model.MappingProfile"
},
"addedRelations": {
"description": "Mapping profile added relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"deletedRelations": {
"description": "Mapping profile deleted relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
}
},
"required": [
"profile"
]
}
Example:
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "MARC brief instance 1",
"description": "Preliminary instance from CoolVendor MARC order record",
"tags": {
"tagList": [
"cool-vendor"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "INSTANCE",
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"marcFieldProtectionSettings": [
{
"id": "2d706874-8a10-4d3e-a190-33c301d157e3",
"field": "050",
"indicator1": "",
"indicator2": "",
"subfield": "",
"data": "*",
"source": "USER",
"override": true,
"metadata": {
"createdDate": "2020-08-13T14:44:07Z",
"createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"createdByUsername": "@janedoe",
"updatedDate": "2020-08-13T14:44:07Z",
"updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"updatedByUsername": "@janedoe"
}
},
{
"id": "82d0b904-f8b0-4cc2-b238-7d8cddef7b7e",
"field": "700",
"indicator1": "",
"indicator2": "",
"subfield": "*",
"data": "*",
"source": "USER",
"override": false,
"metadata": {
"createdDate": "2020-08-13T14:44:07Z",
"createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"createdByUsername": "@janedoe",
"updatedDate": "2020-08-13T14:44:07Z",
"updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"updatedByUsername": "@janedoe"
}
}
],
"parentProfiles": [
{
"id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType": "JOB_PROFILE",
"content": {
"id": "dc4ac439-57ae-4779-872e-1892b163bb47",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes": [
"MARC_BIB"
],
"tags": {
"tagList": [
"acq",
"daily"
]
}
}
}
],
"childProfiles": [
{
"id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType": "JOB_PROFILE",
"content": {
"id": "dc4ac439-57ae-4779-872e-1892b163bb47",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes": [
"MARC_BIB"
],
"tags": {
"tagList": [
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2019-01-01T11:550:09Z",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2019-01-12T14:21:11Z",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
HTTP status code 201
Returns a newly created item, with server-controlled fields like 'id' populated
Headers
- Location: required(string)
URI to the created mappingProfile item
Body
Media type: application/json
Type: any
Example:
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "MARC brief instance 1",
"description": "Preliminary instance from CoolVendor MARC order record",
"tags": {
"tagList": [
"cool-vendor"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "INSTANCE",
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"marcFieldProtectionSettings": [
{
"id": "2d706874-8a10-4d3e-a190-33c301d157e3",
"field": "050",
"indicator1": "",
"indicator2": "",
"subfield": "",
"data": "*",
"source": "USER",
"override": true,
"metadata": {
"createdDate": "2020-08-13T14:44:07Z",
"createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"createdByUsername": "@janedoe",
"updatedDate": "2020-08-13T14:44:07Z",
"updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"updatedByUsername": "@janedoe"
}
},
{
"id": "82d0b904-f8b0-4cc2-b238-7d8cddef7b7e",
"field": "700",
"indicator1": "",
"indicator2": "",
"subfield": "*",
"data": "*",
"source": "USER",
"override": false,
"metadata": {
"createdDate": "2020-08-13T14:44:07Z",
"createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"createdByUsername": "@janedoe",
"updatedDate": "2020-08-13T14:44:07Z",
"updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"updatedByUsername": "@janedoe"
}
}
],
"parentProfiles": [
{
"id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType": "JOB_PROFILE",
"content": {
"id": "dc4ac439-57ae-4779-872e-1892b163bb47",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes": [
"MARC_BIB"
],
"tags": {
"tagList": [
"acq",
"daily"
]
}
}
}
],
"childProfiles": [
{
"id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType": "JOB_PROFILE",
"content": {
"id": "dc4ac439-57ae-4779-872e-1892b163bb47",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes": [
"MARC_BIB"
],
"tags": {
"tagList": [
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2019-01-01T11:550:09Z",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2019-01-12T14:21:11Z",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to add mappingProfile -- malformed JSON at 13:3"
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to create mappingProfiles -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
get /data-import-profiles/mappingProfiles
Retrieve a list of mappingProfile items.
Query Parameters
- showHidden: (boolean - default: false)
selection condition of Mapping Profiles by field 'hidden'
Example:
false
- withRelations: (boolean - default: false)
Load profile with related child and parent profiles
Example:
false
- query: (string)
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
with valid searchable fields: for example userInfo.lastName=Doe
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode userInfo.lastName=Doe
- totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)
How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
none
- offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)
Skip over a number of elements by specifying an offset value for the query
Example:
0
- limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)
Limit the number of elements returned in the response
Example:
10
HTTP status code 200
Returns a list of mappingProfile items
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Collection of Mapping Profiles",
"type": "object",
"additionalProperties": false,
"properties": {
"mappingProfiles": {
"description": "List of Mapping Profiles",
"type": "array",
"id": "mappingProfileList",
"items": {
"type": "object",
"$ref": "mappingProfile.json"
}
},
"totalRecords": {
"description": "Total number of Mapping Profiles",
"type": "integer"
}
},
"excludedFromEqualsAndHashCode": [
"totalRecords"
],
"required": [
"mappingProfiles",
"totalRecords"
]
}
Example:
{
"mappingProfiles": [
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "MARC brief instance 1",
"description": "Preliminary instance from CoolVendor MARC order record",
"tags": {
"tagList": [
"cool-vendor"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "INSTANCE",
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"metadata": {
"createdDate": "2019-01-01T11:550:09Z",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2019-01-12T14:21:11Z",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
],
"totalRecords": 1
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
unable to list mappingProfiles -- malformed parameter 'query', syntax error at column 6
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to list mappingProfiles -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Get, Delete or Update a specific Mapping Profile
Retrieve mappingProfile item with given {mappingProfileId}
Update mappingProfile item with given {mappingProfileId}
Delete mappingProfile item with given {mappingProfileId}
get /data-import-profiles/mappingProfiles/{id}
Retrieve mappingProfile item with given {mappingProfileId}
URI Parameters
- id: required(string)
Query Parameters
- withRelations: (boolean - default: false)
Load profile with related child and parent profiles
Example:
false
HTTP status code 200
Returns item with a given ID
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Mapping Profile schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"name": {
"description": "Mapping Profile name",
"type": "string"
},
"description": {
"description": "Mapping Profile description",
"type": "string"
},
"tags": {
"description": "Set of tags assigned to the current Mapping Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"incomingRecordType": {
"description": "Incoming record type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"existingRecordType": {
"description": "FOLIO record type to mapping",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"userInfo": {
"description": "First name, last name and username of the user, who updated the Mapping Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"firstName": {
"description": "User first name",
"type": "string"
},
"lastName": {
"description": "User last name",
"type": "string"
},
"userName": {
"description": "User name (nickname)",
"type": "string"
}
}
},
"marcFieldProtectionSettings": {
"description": "MARC field protection settings",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.MarcFieldProtectionSetting>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "MARC field protection setting schema",
"javaType": "org.folio.rest.jaxrs.model.MarcFieldProtectionSetting",
"additionalProperties": false,
"properties": {
"id": {
"description": "MARC field protection setting id",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"field": {
"description": "Field",
"type": "string"
},
"indicator1": {
"description": "Indicator 1",
"type": "string"
},
"indicator2": {
"description": "Indicator 2",
"type": "string"
},
"subfield": {
"description": "Subfield",
"type": "string"
},
"data": {
"description": "Data",
"type": "string"
},
"source": {
"description": "Source",
"type": "string",
"enum": [
"SYSTEM",
"USER"
]
},
"override": {
"description": "Indicates whether field can be overridden or not, always false for SYSTEM protection settings",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"field"
]
}
},
"parentProfiles": {
"description": "Associated parent profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"type": "object",
"$ref": "./profileSnapshotWrapper.json"
}
},
"childProfiles": {
"description": "Associated children profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"$ref": "profileSnapshotWrapper.json",
"type": "object"
}
},
"mappingDetails": {
"description": "Mapping details with mapping rules",
"$ref": "mapping-profile-detail/mappingDetail.json"
},
"hidden": {
"description": "Flag indicates that the Mapping Profile will be hidden on UI",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"name",
"incomingRecordType"
]
}
Example:
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "MARC brief instance 1",
"description": "Preliminary instance from CoolVendor MARC order record",
"tags": {
"tagList": [
"cool-vendor"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "INSTANCE",
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"marcFieldProtectionSettings": [
{
"id": "2d706874-8a10-4d3e-a190-33c301d157e3",
"field": "050",
"indicator1": "",
"indicator2": "",
"subfield": "",
"data": "*",
"source": "USER",
"override": true,
"metadata": {
"createdDate": "2020-08-13T14:44:07Z",
"createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"createdByUsername": "@janedoe",
"updatedDate": "2020-08-13T14:44:07Z",
"updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"updatedByUsername": "@janedoe"
}
},
{
"id": "82d0b904-f8b0-4cc2-b238-7d8cddef7b7e",
"field": "700",
"indicator1": "",
"indicator2": "",
"subfield": "*",
"data": "*",
"source": "USER",
"override": false,
"metadata": {
"createdDate": "2020-08-13T14:44:07Z",
"createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"createdByUsername": "@janedoe",
"updatedDate": "2020-08-13T14:44:07Z",
"updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"updatedByUsername": "@janedoe"
}
}
],
"parentProfiles": [
{
"id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType": "JOB_PROFILE",
"content": {
"id": "dc4ac439-57ae-4779-872e-1892b163bb47",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes": [
"MARC_BIB"
],
"tags": {
"tagList": [
"acq",
"daily"
]
}
}
}
],
"childProfiles": [
{
"id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType": "JOB_PROFILE",
"content": {
"id": "dc4ac439-57ae-4779-872e-1892b163bb47",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes": [
"MARC_BIB"
],
"tags": {
"tagList": [
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2019-01-01T11:550:09Z",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2019-01-12T14:21:11Z",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"mappingProfile not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
put /data-import-profiles/mappingProfiles/{id}
Update mappingProfile item with given {mappingProfileId}
URI Parameters
- id: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Mapping Profile Update/Create schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Profile identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profile": {
"description": "Mapping Profile object",
"javaType": "org.folio.rest.jaxrs.model.MappingProfile"
},
"addedRelations": {
"description": "Mapping profile added relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"deletedRelations": {
"description": "Mapping profile deleted relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
}
},
"required": [
"profile"
]
}
Example:
{
"id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
"name": "MARC brief instance 1",
"description": "Preliminary instance from CoolVendor MARC order record",
"tags": {
"tagList": [
"cool-vendor"
]
},
"incomingRecordType": "MARC_BIBLIOGRAPHIC",
"existingRecordType": "INSTANCE",
"userInfo": {
"firstName": "Jane",
"lastName": "Doe",
"userName": "@janedoe"
},
"marcFieldProtectionSettings": [
{
"id": "2d706874-8a10-4d3e-a190-33c301d157e3",
"field": "050",
"indicator1": "",
"indicator2": "",
"subfield": "",
"data": "*",
"source": "USER",
"override": true,
"metadata": {
"createdDate": "2020-08-13T14:44:07Z",
"createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"createdByUsername": "@janedoe",
"updatedDate": "2020-08-13T14:44:07Z",
"updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"updatedByUsername": "@janedoe"
}
},
{
"id": "82d0b904-f8b0-4cc2-b238-7d8cddef7b7e",
"field": "700",
"indicator1": "",
"indicator2": "",
"subfield": "*",
"data": "*",
"source": "USER",
"override": false,
"metadata": {
"createdDate": "2020-08-13T14:44:07Z",
"createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"createdByUsername": "@janedoe",
"updatedDate": "2020-08-13T14:44:07Z",
"updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
"updatedByUsername": "@janedoe"
}
}
],
"parentProfiles": [
{
"id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType": "JOB_PROFILE",
"content": {
"id": "dc4ac439-57ae-4779-872e-1892b163bb47",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes": [
"MARC_BIB"
],
"tags": {
"tagList": [
"acq",
"daily"
]
}
}
}
],
"childProfiles": [
{
"id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType": "JOB_PROFILE",
"content": {
"id": "dc4ac439-57ae-4779-872e-1892b163bb47",
"name": "Load vendor order records",
"description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes": [
"MARC_BIB"
],
"tags": {
"tagList": [
"acq",
"daily"
]
}
}
}
],
"metadata": {
"createdDate": "2019-01-01T11:550:09Z",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2019-01-12T14:21:11Z",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Mapping Profile schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"name": {
"description": "Mapping Profile name",
"type": "string"
},
"description": {
"description": "Mapping Profile description",
"type": "string"
},
"tags": {
"description": "Set of tags assigned to the current Mapping Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"incomingRecordType": {
"description": "Incoming record type",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"existingRecordType": {
"description": "FOLIO record type to mapping",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.EntityType",
"additionalProperties": false,
"enum": [
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY",
"EDIFACT_INVOICE",
"DELIMITED",
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"STATIC_VALUE",
"PO_LINE"
]
},
"userInfo": {
"description": "First name, last name and username of the user, who updated the Mapping Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"firstName": {
"description": "User first name",
"type": "string"
},
"lastName": {
"description": "User last name",
"type": "string"
},
"userName": {
"description": "User name (nickname)",
"type": "string"
}
}
},
"marcFieldProtectionSettings": {
"description": "MARC field protection settings",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.MarcFieldProtectionSetting>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "MARC field protection setting schema",
"javaType": "org.folio.rest.jaxrs.model.MarcFieldProtectionSetting",
"additionalProperties": false,
"properties": {
"id": {
"description": "MARC field protection setting id",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"field": {
"description": "Field",
"type": "string"
},
"indicator1": {
"description": "Indicator 1",
"type": "string"
},
"indicator2": {
"description": "Indicator 2",
"type": "string"
},
"subfield": {
"description": "Subfield",
"type": "string"
},
"data": {
"description": "Data",
"type": "string"
},
"source": {
"description": "Source",
"type": "string",
"enum": [
"SYSTEM",
"USER"
]
},
"override": {
"description": "Indicates whether field can be overridden or not, always false for SYSTEM protection settings",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"field"
]
}
},
"parentProfiles": {
"description": "Associated parent profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"type": "object",
"$ref": "./profileSnapshotWrapper.json"
}
},
"childProfiles": {
"description": "Associated children profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"$ref": "profileSnapshotWrapper.json",
"type": "object"
}
},
"mappingDetails": {
"description": "Mapping details with mapping rules",
"$ref": "mapping-profile-detail/mappingDetail.json"
},
"hidden": {
"description": "Flag indicates that the Mapping Profile will be hidden on UI",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"name",
"incomingRecordType"
]
}
HTTP status code 204
Item successfully updated
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to update mappingProfile -- malformed JSON at 13:4"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"mappingProfile not found"
HTTP status code 409
Optimistic locking version conflict
Body
Media type: text/plain
Type: any
Example:
version conflict
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
delete /data-import-profiles/mappingProfiles/{id}
Delete mappingProfile item with given {mappingProfileId}
URI Parameters
- id: required(string)
HTTP status code 204
Item deleted successfully
Body
Media type: text/plain
Type: any
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to delete mappingProfile -- constraint violation"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"mappingProfile not found"
HTTP status code 409
Body
Media type: text/plain
Type: any
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
API for managing Action Profiles
Create a new actionProfile item.
Retrieve a list of actionProfile items.
post /data-import-profiles/actionProfiles
Create a new actionProfile item.
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Action Profile Update/Create schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Profile identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profile": {
"description": "Action Profile object",
"javaType": "org.folio.rest.jaxrs.model.ActionProfile"
},
"addedRelations": {
"description": "Action profile added relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"deletedRelations": {
"description": "Action profile deleted relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
}
},
"required": [
"profile"
]
}
Example:
{
"id":"cf3d7393-8534-44fb-93fd-7495d220f4f6",
"name":"Create preliminary instance",
"description":"Brief instance created by order, will be updated later",
"tags":{
"tagList":[
"acq-related",
"preliminary"
]
},
"reactTo":"NON-MATCH",
"action":"CREATE",
"folioRecord":"INSTANCE",
"remove9Subfields":false,
"userInfo":{
"firstName":"DIKU",
"lastName":"ADMINISTRATOR",
"userName":"diku_admin"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata":{
"createdDate":"2018-10-30T12:41:22.000",
"createdByUserId":"",
"createdByUsername":"",
"updatedDate":"2018-11-02T12:09:51.000",
"updatedByUserId":"",
"updatedByUsername":""
}
}
HTTP status code 201
Returns a newly created item, with server-controlled fields like 'id' populated
Headers
- Location: required(string)
URI to the created actionProfile item
Body
Media type: application/json
Type: any
Example:
{
"id":"cf3d7393-8534-44fb-93fd-7495d220f4f6",
"name":"Create preliminary instance",
"description":"Brief instance created by order, will be updated later",
"tags":{
"tagList":[
"acq-related",
"preliminary"
]
},
"reactTo":"NON-MATCH",
"action":"CREATE",
"folioRecord":"INSTANCE",
"remove9Subfields":false,
"userInfo":{
"firstName":"DIKU",
"lastName":"ADMINISTRATOR",
"userName":"diku_admin"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata":{
"createdDate":"2018-10-30T12:41:22.000",
"createdByUserId":"",
"createdByUsername":"",
"updatedDate":"2018-11-02T12:09:51.000",
"updatedByUserId":"",
"updatedByUsername":""
}
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to add actionProfile -- malformed JSON at 13:3"
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to create actionProfiles -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
get /data-import-profiles/actionProfiles
Retrieve a list of actionProfile items.
Query Parameters
- showHidden: (boolean - default: false)
selection condition of Action Profiles by field 'hidden'
Example:
false
- withRelations: (boolean - default: false)
Load profile with related child and parent profiles
Example:
false
- query: (string)
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
with valid searchable fields: for example userInfo.lastName=Doe
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode userInfo.lastName=Doe
- totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)
How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
none
- offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)
Skip over a number of elements by specifying an offset value for the query
Example:
0
- limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)
Limit the number of elements returned in the response
Example:
10
HTTP status code 200
Returns a list of actionProfile items
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Collection of Action Profiles",
"type": "object",
"additionalProperties": false,
"properties": {
"actionProfiles": {
"description": "List of Action Profiles",
"type": "array",
"id": "actionProfileList",
"items": {
"type": "object",
"$ref": "actionProfile.json"
}
},
"totalRecords": {
"description": "Total number of Action Profiles",
"type": "integer"
}
},
"excludedFromEqualsAndHashCode": [
"totalRecords"
],
"required": [
"actionProfiles",
"totalRecords"
]
}
Example:
{
"actionProfiles": [
{
"id": "cf3d7393-8534-44fb-93fd-7495d220f4f6",
"name": "Create preliminary instance",
"description": "Brief instance created by order, will be updated later",
"tags": {
"tagList": [
"acq-related", "preliminary"
]
},
"reactTo": "NON-MATCH",
"action": "CREATE",
"folioRecord": "INSTANCE",
"userInfo": {
"firstName": "DIKU",
"lastName": "ADMINISTRATOR",
"userName": "diku_admin"
},
"metadata": {
"createdDate": "2018-10-30T12:41:22.000",
"createdByUserId": "",
"createdByUsername": "",
"updatedDate": "2018-11-02T12:09:51.000",
"updatedByUserId": "",
"updatedByUsername": ""
}
}
],
"totalRecords": 1
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
unable to list actionProfiles -- malformed parameter 'query', syntax error at column 6
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to list actionProfiles -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Get, Delete or Update a specific Action Profile
Retrieve actionProfile item with given {actionProfileId}
Update actionProfile item with given {actionProfileId}
Delete actionProfile item with given {actionProfileId}
get /data-import-profiles/actionProfiles/{id}
Retrieve actionProfile item with given {actionProfileId}
URI Parameters
- id: required(string)
Query Parameters
- withRelations: (boolean - default: false)
Load profile with related child and parent profiles
Example:
false
HTTP status code 200
Returns item with a given ID
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Action Profile schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"name": {
"description": "Action Profile name",
"type": "string"
},
"description": {
"description": "Action Profile description",
"type": "string"
},
"tags": {
"description": "Set of tags assigned to the current Action Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"type": "string",
"enum": [
"MATCH",
"NON-MATCH"
]
},
"action": {
"description": "Action type. CREATE allowed for all record types. UPDATE allowed for all record types except Orders, Invoices. DELETE allowed for all records types. MODIFY allowed for MARC records only",
"type": "string",
"enum": [
"CREATE",
"UPDATE",
"DELETE",
"MODIFY"
]
},
"folioRecord": {
"description": "Record type",
"type": "string",
"enum": [
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY"
]
},
"userInfo": {
"description": "First name, last name and username of the user, who updated the Action Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"firstName": {
"description": "User first name",
"type": "string"
},
"lastName": {
"description": "User last name",
"type": "string"
},
"userName": {
"description": "User name (nickname)",
"type": "string"
}
}
},
"parentProfiles": {
"description": "Associated parent profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"type": "object",
"$ref": "./profileSnapshotWrapper.json"
}
},
"childProfiles": {
"description": "Associated children profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"$ref": "profileSnapshotWrapper.json",
"type": "object"
}
},
"hidden": {
"description": "Flag indicates that the Action Profile will be hidden on UI",
"type": "boolean",
"default": false
},
"remove9Subfields": {
"description": "Flag indicates that 9 subfield should be removed from all linkable MARC bib fields for Action Profile",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"name",
"action",
"folioRecord"
]
}
Example:
{
"id":"cf3d7393-8534-44fb-93fd-7495d220f4f6",
"name":"Create preliminary instance",
"description":"Brief instance created by order, will be updated later",
"tags":{
"tagList":[
"acq-related",
"preliminary"
]
},
"reactTo":"NON-MATCH",
"action":"CREATE",
"folioRecord":"INSTANCE",
"remove9Subfields":false,
"userInfo":{
"firstName":"DIKU",
"lastName":"ADMINISTRATOR",
"userName":"diku_admin"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata":{
"createdDate":"2018-10-30T12:41:22.000",
"createdByUserId":"",
"createdByUsername":"",
"updatedDate":"2018-11-02T12:09:51.000",
"updatedByUserId":"",
"updatedByUsername":""
}
}
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"actionProfile not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
put /data-import-profiles/actionProfiles/{id}
Update actionProfile item with given {actionProfileId}
URI Parameters
- id: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Action Profile Update/Create schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Profile identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profile": {
"description": "Action Profile object",
"javaType": "org.folio.rest.jaxrs.model.ActionProfile"
},
"addedRelations": {
"description": "Action profile added relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"deletedRelations": {
"description": "Action profile deleted relations",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
}
},
"required": [
"profile"
]
}
Example:
{
"id":"cf3d7393-8534-44fb-93fd-7495d220f4f6",
"name":"Create preliminary instance",
"description":"Brief instance created by order, will be updated later",
"tags":{
"tagList":[
"acq-related",
"preliminary"
]
},
"reactTo":"NON-MATCH",
"action":"CREATE",
"folioRecord":"INSTANCE",
"remove9Subfields":false,
"userInfo":{
"firstName":"DIKU",
"lastName":"ADMINISTRATOR",
"userName":"diku_admin"
},
"parentProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"childProfiles":[
{
"id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
"profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
"contentType":"JOB_PROFILE",
"content":{
"id":"dc4ac439-57ae-4779-872e-1892b163bb47",
"name":"Load vendor order records",
"description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
"dataTypes":[
"MARC_BIB"
],
"tags":{
"tagList":[
"acq",
"daily"
]
}
}
}
],
"metadata":{
"createdDate":"2018-10-30T12:41:22.000",
"createdByUserId":"",
"createdByUsername":"",
"updatedDate":"2018-11-02T12:09:51.000",
"updatedByUserId":"",
"updatedByUsername":""
}
}
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Action Profile schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"name": {
"description": "Action Profile name",
"type": "string"
},
"description": {
"description": "Action Profile description",
"type": "string"
},
"tags": {
"description": "Set of tags assigned to the current Action Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"type": "string",
"enum": [
"MATCH",
"NON-MATCH"
]
},
"action": {
"description": "Action type. CREATE allowed for all record types. UPDATE allowed for all record types except Orders, Invoices. DELETE allowed for all records types. MODIFY allowed for MARC records only",
"type": "string",
"enum": [
"CREATE",
"UPDATE",
"DELETE",
"MODIFY"
]
},
"folioRecord": {
"description": "Record type",
"type": "string",
"enum": [
"INSTANCE",
"HOLDINGS",
"AUTHORITY",
"ITEM",
"ORDER",
"INVOICE",
"MARC_BIBLIOGRAPHIC",
"MARC_HOLDINGS",
"MARC_AUTHORITY"
]
},
"userInfo": {
"description": "First name, last name and username of the user, who updated the Action Profile",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"properties": {
"firstName": {
"description": "User first name",
"type": "string"
},
"lastName": {
"description": "User last name",
"type": "string"
},
"userName": {
"description": "User name (nickname)",
"type": "string"
}
}
},
"parentProfiles": {
"description": "Associated parent profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"type": "object",
"$ref": "./profileSnapshotWrapper.json"
}
},
"childProfiles": {
"description": "Associated children profiles. Not required field that uses only for batch update/create",
"javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
"items": {
"$ref": "profileSnapshotWrapper.json",
"type": "object"
}
},
"hidden": {
"description": "Flag indicates that the Action Profile will be hidden on UI",
"type": "boolean",
"default": false
},
"remove9Subfields": {
"description": "Flag indicates that 9 subfield should be removed from all linkable MARC bib fields for Action Profile",
"type": "boolean",
"default": false
},
"metadata": {
"description": "Metadata provided by the server",
"type": "object",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"name",
"action",
"folioRecord"
]
}
HTTP status code 204
Item successfully updated
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to update actionProfile -- malformed JSON at 13:4"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"actionProfile not found"
HTTP status code 409
Optimistic locking version conflict
Body
Media type: text/plain
Type: any
Example:
version conflict
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
delete /data-import-profiles/actionProfiles/{id}
Delete actionProfile item with given {actionProfileId}
URI Parameters
- id: required(string)
HTTP status code 204
Item deleted successfully
Body
Media type: text/plain
Type: any
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to delete actionProfile -- constraint violation"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"actionProfile not found"
HTTP status code 409
Body
Media type: text/plain
Type: any
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
API for managing Profile associations. Correct ProfileAssociation types are ACTION_PROFILE_TO_ACTION_PROFILE, ACTION_PROFILE_TO_MAPPING_PROFILE, ACTION_PROFILE_TO_MATCH_PROFILE, JOB_PROFILE_TO_ACTION_PROFILE, JOB_PROFILE_TO_MATCH_PROFILE, MATCH_PROFILE_TO_ACTION_PROFILE, MATCH_PROFILE_TO_MATCH_PROFILE.
Create a new profileAssociation item.
Retrieve a list of profileAssociation items.
post /data-import-profiles/profileAssociations
Create a new profileAssociation item.
Query Parameters
- master: required(string)
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
- detail: required(string)
It needs to identify detail profile type in association
Example:
ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
Example:
{
"id": "d79c0c7f-1dca-4523-b438-dd00a5a1f9a6",
"masterProfileId": "4623d797-6987-46ed-925d-0e8c6fe6678a",
"detailProfileId": "6146e173-c664-4404-9d58-c913d89e7114",
"order": 2,
"triggered": "true"
}
HTTP status code 201
Returns a newly created item, with server-controlled fields like 'id' populated
Headers
- Location: required(string)
URI to the created profileAssociation item
Body
Media type: application/json
Type: any
Example:
{
"id": "d79c0c7f-1dca-4523-b438-dd00a5a1f9a6",
"masterProfileId": "4623d797-6987-46ed-925d-0e8c6fe6678a",
"detailProfileId": "6146e173-c664-4404-9d58-c913d89e7114",
"order": 2,
"triggered": "true"
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to add profileAssociation -- malformed JSON at 13:3"
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to create profileAssociations -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
get /data-import-profiles/profileAssociations
Retrieve a list of profileAssociation items.
Query Parameters
- master: required(string)
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
- detail: required(string)
It needs to identify detail profile type in association
Example:
ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
HTTP status code 200
Returns a list of profileAssociation items
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Collection of Profile associations",
"type": "object",
"additionalProperties": false,
"properties": {
"profileAssociations": {
"description": "List of Profile associations",
"type": "array",
"id": "profileAssociationList",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
},
"totalRecords": {
"description": "Total number of Profile associations",
"type": "integer"
}
},
"excludedFromEqualsAndHashCode": [
"totalRecords"
],
"required": [
"profileAssociations",
"totalRecords"
]
}
Example:
{
"profileAssociations": [
{
"id": "d79c0c7f-1dca-4523-b438-dd00a5a1f9a6",
"masterProfileId": "4623d797-6987-46ed-925d-0e8c6fe6678a",
"detailProfileId": "6146e173-c664-4404-9d58-c913d89e7114",
"order": 0,
"triggered": "false"
}
],
"totalRecords": 1
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
unable to list profileAssociations -- malformed parameter 'query', syntax error at column 6
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to list profileAssociations -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Get, Delete or Update a specific Profile association. Correct ProfileAssociation types are ACTION_PROFILE_TO_ACTION_PROFILE, ACTION_PROFILE_TO_MAPPING_PROFILE, ACTION_PROFILE_TO_MATCH_PROFILE, JOB_PROFILE_TO_ACTION_PROFILE, JOB_PROFILE_TO_MATCH_PROFILE, MATCH_PROFILE_TO_ACTION_PROFILE, MATCH_PROFILE_TO_MATCH_PROFILE.
Retrieve profileAssociation item with given {profileAssociationId}
Update profileAssociation item with given {profileAssociationId}
Delete profileAssociation item with given {profileAssociationId}
get /data-import-profiles/profileAssociations/{id}
Retrieve profileAssociation item with given {profileAssociationId}
URI Parameters
- id: required(string)
Query Parameters
- master: required(string)
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
- detail: required(string)
It needs to identify detail profile type in association
Example:
ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
HTTP status code 200
Returns item with a given ID
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
Example:
{
"id": "d79c0c7f-1dca-4523-b438-dd00a5a1f9a6",
"masterProfileId": "4623d797-6987-46ed-925d-0e8c6fe6678a",
"detailProfileId": "6146e173-c664-4404-9d58-c913d89e7114",
"order": 2,
"triggered": "true"
}
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"profileAssociation not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
put /data-import-profiles/profileAssociations/{id}
Update profileAssociation item with given {profileAssociationId}
URI Parameters
- id: required(string)
Query Parameters
- master: required(string)
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
- detail: required(string)
It needs to identify detail profile type in association
Example:
ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
Example:
{
"id": "d79c0c7f-1dca-4523-b438-dd00a5a1f9a6",
"masterProfileId": "4623d797-6987-46ed-925d-0e8c6fe6678a",
"detailProfileId": "6146e173-c664-4404-9d58-c913d89e7114",
"order": 2,
"triggered": "true"
}
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"masterProfileId": {
"description": "Unique identifier of the 'master' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailProfileId": {
"description": "Unique identifier of the 'detail' profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"detail": {
"description": "Detail profile content (plain Object)"
},
"triggered": {
"description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
"type": "boolean",
"default": false
},
"masterProfileType": {
"description": "Type of master profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"detailProfileType": {
"description": "Type of detail profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"masterWrapperId": {
"description": "Unique identifier of the 'master' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"detailWrapperId": {
"description": "Unique identifier of the 'detail' wrapper profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"jobProfileId": {
"description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"required": [
"masterProfileId",
"detailProfileId",
"order"
]
}
HTTP status code 204
Item successfully updated
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to update profileAssociation -- malformed JSON at 13:4"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"profileAssociation not found"
HTTP status code 409
Optimistic locking version conflict
Body
Media type: text/plain
Type: any
Example:
version conflict
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
delete /data-import-profiles/profileAssociations/{id}
Delete profileAssociation item with given {profileAssociationId}
URI Parameters
- id: required(string)
Query Parameters
- master: required(string)
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
- detail: required(string)
It needs to identify detail profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
HTTP status code 204
Item deleted successfully
Body
Media type: text/plain
Type: any
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to delete profileAssociation -- constraint violation"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"profileAssociation not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Retrives details profiles by master profile id Note that master-detail relationship is sort of parent-child relationship but one detail instance can be associated with many master instances. Correct ProfileAssociation types are ACTION_PROFILE_TO_ACTION_PROFILE, ACTION_PROFILE_TO_MAPPING_PROFILE, ACTION_PROFILE_TO_MATCH_PROFILE, JOB_PROFILE_TO_ACTION_PROFILE, JOB_PROFILE_TO_MATCH_PROFILE, MATCH_PROFILE_TO_ACTION_PROFILE, MATCH_PROFILE_TO_MATCH_PROFILE.
get /data-import-profiles/profileAssociations/{id}/details
URI Parameters
- id: required(string)
Query Parameters
- masterType: required(string)
It needs to identify master profile type for an id
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
- detailType: (string)
It filters returned type of details. For example you need to get only MATCH_PROFILEs for a JOB_PROFILE but the JOB_PROFILE has ACTION_PROFILEs too. So use it as filter for a return type
Example:
ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE
- query: (string)
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
with valid searchable fields: for example userInfo.lastName=Doe
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode userInfo.lastName=Doe
- totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)
How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
none
- offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)
Skip over a number of elements by specifying an offset value for the query
Example:
0
- limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)
Limit the number of elements returned in the response
Example:
10
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema describes Job Profile snapshot entity",
"javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Snapshot wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileId": {
"description": "Profile unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileWrapperId": {
"description": "Profile wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"contentType": {
"description": "Type of the content",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"content": {
"description": "Profile content (plain Object)"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"childSnapshotWrappers": {
"description": "Set of children profile snapshots",
"type": "array",
"items": {
"$ref": "profileSnapshotWrapper.json"
}
}
},
"required": [
"contentType",
"content"
],
"excludedFromEqualsAndHashCode": [
"content"
]
}
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Retrives masters profiles by detail profile id. Note that master-detail relationship is sort of parent-child relationship but one detail instance can be associated with many master instances. Correct ProfileAssociation types are ACTION_PROFILE_TO_ACTION_PROFILE, ACTION_PROFILE_TO_MAPPING_PROFILE, ACTION_PROFILE_TO_MATCH_PROFILE, JOB_PROFILE_TO_ACTION_PROFILE, JOB_PROFILE_TO_MATCH_PROFILE, MATCH_PROFILE_TO_ACTION_PROFILE, MATCH_PROFILE_TO_MATCH_PROFILE.
get /data-import-profiles/profileAssociations/{id}/masters
URI Parameters
- id: required(string)
Query Parameters
- detailType: required(string)
Type of detail profile
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE
- masterType: (string)
It filters returned type of masters. For example you need to get only JOB_PROFILEs for a MATCH_PROFILE but the MATCH_PROFILE has ACTION_PROFILEs too. So use it as filter for a return type
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE
- query: (string)
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
with valid searchable fields: for example userInfo.lastName=Doe
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode userInfo.lastName=Doe
- totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)
How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
none
- offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)
Skip over a number of elements by specifying an offset value for the query
Example:
0
- limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)
Limit the number of elements returned in the response
Example:
10
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema describes Job Profile snapshot entity",
"javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Snapshot wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileId": {
"description": "Profile unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileWrapperId": {
"description": "Profile wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"contentType": {
"description": "Type of the content",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"content": {
"description": "Profile content (plain Object)"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"childSnapshotWrappers": {
"description": "Set of children profile snapshots",
"type": "array",
"items": {
"$ref": "profileSnapshotWrapper.json"
}
}
},
"required": [
"contentType",
"content"
],
"excludedFromEqualsAndHashCode": [
"content"
]
}
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
API for managing Job Profile Snapshots
Method to get Job Profile Snapshot by id
Method to create Job Profile Snapshot by Job Profile id
get /data-import-profiles/jobProfileSnapshots/{id}
Method to get Job Profile Snapshot by id
URI Parameters
- id: required(string)
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema describes Job Profile snapshot entity",
"javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Snapshot wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileId": {
"description": "Profile unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileWrapperId": {
"description": "Profile wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"contentType": {
"description": "Type of the content",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"content": {
"description": "Profile content (plain Object)"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"childSnapshotWrappers": {
"description": "Set of children profile snapshots",
"type": "array",
"items": {
"$ref": "profileSnapshotWrapper.json"
}
}
},
"required": [
"contentType",
"content"
],
"excludedFromEqualsAndHashCode": [
"content"
]
}
post /data-import-profiles/jobProfileSnapshots/{id}
Method to create Job Profile Snapshot by Job Profile id
URI Parameters
- id: required(string)
HTTP status code 201
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema describes Job Profile snapshot entity",
"javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Snapshot wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileId": {
"description": "Profile unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileWrapperId": {
"description": "Profile wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"contentType": {
"description": "Type of the content",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"content": {
"description": "Profile content (plain Object)"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"childSnapshotWrappers": {
"description": "Set of children profile snapshots",
"type": "array",
"items": {
"$ref": "profileSnapshotWrapper.json"
}
}
},
"required": [
"contentType",
"content"
],
"excludedFromEqualsAndHashCode": [
"content"
]
}
HTTP status code 400
Bad request
Body
Media type: text/plain
Type: any
Example:
Bad request
HTTP status code 500
Internal server error
Body
Media type: text/plain
Type: any
Example:
Internal server error
Get a list of entity types
get /data-import-profiles/entityTypes
Get a list of entity types
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Collection of entity types",
"type": "object",
"additionalProperties": false,
"properties": {
"entityTypes": {
"description": "Set of entity types",
"type": "array",
"id": "entityTypeList",
"items": {
"type": "string"
}
},
"totalRecords": {
"description": "Total number of entity types",
"type": "integer"
}
},
"excludedFromEqualsAndHashCode": [
"totalRecords"
],
"required": [
"entityTypes",
"totalRecords"
]
}
HTTP status code 400
Bad request
Body
Media type: text/plain
Type: any
Example:
Bad request
HTTP status code 500
Internal server error
Body
Media type: text/plain
Type: any
Example:
Internal server error
API for managing a Profile Snapshots.
Method to import profile snapshot with related profiles.
post /data-import-profiles/profileSnapshots
Method to import profile snapshot with related profiles.
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema describes Job Profile snapshot entity",
"javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Snapshot wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileId": {
"description": "Profile unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileWrapperId": {
"description": "Profile wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"contentType": {
"description": "Type of the content",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"content": {
"description": "Profile content (plain Object)"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"childSnapshotWrappers": {
"description": "Set of children profile snapshots",
"type": "array",
"items": {
"$ref": "profileSnapshotWrapper.json"
}
}
},
"required": [
"contentType",
"content"
],
"excludedFromEqualsAndHashCode": [
"content"
]
}
HTTP status code 201
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema describes Job Profile snapshot entity",
"javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Snapshot wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileId": {
"description": "Profile unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileWrapperId": {
"description": "Profile wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"contentType": {
"description": "Type of the content",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"content": {
"description": "Profile content (plain Object)"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"childSnapshotWrappers": {
"description": "Set of children profile snapshots",
"type": "array",
"items": {
"$ref": "profileSnapshotWrapper.json"
}
}
},
"required": [
"contentType",
"content"
],
"excludedFromEqualsAndHashCode": [
"content"
]
}
HTTP status code 400
Bad request
Body
Media type: text/plain
Type: any
Example:
Bad request
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error
Body
Media type: text/plain
Type: any
Example:
Internal server error
Get a profile snapshot structure for specified profile id and type. Acceptable profileType values are JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE.
get /data-import-profiles/profileSnapshots/{profileId}
Get a profile snapshot structure for specified profile id and type. Acceptable profileType values are JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE.
URI Parameters
- profileId: required(string)
Query Parameters
- profileType: required(string)
Indicates profile type
Example:
JOB_PROFILE
- jobProfileId: (string)
Indicates job profile id, should be specified when {profileType} parameter has value JOB_PROFILE or MATCH_PROFILE
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "This schema describes Job Profile snapshot entity",
"javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Snapshot wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileId": {
"description": "Profile unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"profileWrapperId": {
"description": "Profile wrapper unique identifier",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"contentType": {
"description": "Type of the content",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ProfileType",
"type": "string",
"additionalProperties": false,
"enum": [
"ACTION_PROFILE",
"MAPPING_PROFILE",
"MATCH_PROFILE",
"JOB_PROFILE"
]
},
"reactTo": {
"description": "Non-match also used when there is no match profile in the job",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "org.folio.rest.jaxrs.model.ReactToType",
"type": "string",
"additionalProperties": false,
"enum": [
"MATCH",
"NON_MATCH"
]
},
"content": {
"description": "Profile content (plain Object)"
},
"order": {
"description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
"type": "integer",
"default": 0
},
"childSnapshotWrappers": {
"description": "Set of children profile snapshots",
"type": "array",
"items": {
"$ref": "profileSnapshotWrapper.json"
}
}
},
"required": [
"contentType",
"content"
],
"excludedFromEqualsAndHashCode": [
"content"
]
}
HTTP status code 400
Bad request
Body
Media type: text/plain
Type: any
Example:
Bad request
HTTP status code 500
Internal server error
Body
Media type: text/plain
Type: any
Example:
Internal server error