http://localhost
API for managing data import profiles
Create a new jobProfile item.
POST /data-import-profiles/jobProfiles
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": ""
}
}
Returns a newly created item, with server-controlled fields like 'id' populated
URI to the created jobProfile item
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": ""
}
}
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.
Media type: text/plain
Type: any
Example:
"unable to add jobProfile -- malformed JSON at 13:3"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to create jobProfiles -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Retrieve a list of jobProfile items.
GET /data-import-profiles/jobProfiles
selection condition of Job Profiles by field 'hidden'
Example:
false
Load profile with related child and parent profiles
Example:
false
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
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
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
Returns a list of jobProfile items
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
}
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.
Media type: text/plain
Type: any
Example:
unable to list jobProfiles -- malformed parameter 'query', syntax error at column 6
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to list jobProfiles -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Retrieve jobProfile item with given {jobProfileId}
GET /data-import-profiles/jobProfiles/{id}
Load profile with related child and parent profiles
Example:
false
Returns item with a given ID
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": ""
}
}
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"jobProfile not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Update jobProfile item with given {jobProfileId}
PUT /data-import-profiles/jobProfiles/{id}
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": ""
}
}
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"
]
}
Item successfully updated
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.
Media type: text/plain
Type: any
Example:
"unable to update jobProfile -- malformed JSON at 13:4"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"jobProfile not found"
Optimistic locking version conflict
Media type: text/plain
Type: any
Example:
version conflict
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Delete jobProfile item with given {jobProfileId}
DELETE /data-import-profiles/jobProfiles/{id}
Item deleted successfully
Media type: text/plain
Type: any
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.
Media type: text/plain
Type: any
Example:
"unable to delete jobProfile -- constraint violation"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"jobProfile not found"
Media type: text/plain
Type: any
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Create a new matchProfile item.
POST /data-import-profiles/matchProfiles
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"
}
}
Returns a newly created item, with server-controlled fields like 'id' populated
URI to the created matchProfile item
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"
}
}
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.
Media type: text/plain
Type: any
Example:
"unable to add matchProfile -- malformed JSON at 13:3"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to create matchProfiles -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Retrieve a list of matchProfile items.
GET /data-import-profiles/matchProfiles
selection condition of Match Profiles by field 'hidden'
Example:
false
Load profile with related child and parent profiles
Example:
false
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
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
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
Returns a list of matchProfile items
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
}
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.
Media type: text/plain
Type: any
Example:
unable to list matchProfiles -- malformed parameter 'query', syntax error at column 6
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to list matchProfiles -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Retrieve matchProfile item with given {matchProfileId}
GET /data-import-profiles/matchProfiles/{id}
Load profile with related child and parent profiles
Example:
false
Returns item with a given ID
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"
}
}
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"matchProfile not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Update matchProfile item with given {matchProfileId}
PUT /data-import-profiles/matchProfiles/{id}
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"
}
}
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"
]
}
Item successfully updated
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.
Media type: text/plain
Type: any
Example:
"unable to update matchProfile -- malformed JSON at 13:4"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"matchProfile not found"
Optimistic locking version conflict
Media type: text/plain
Type: any
Example:
version conflict
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Delete matchProfile item with given {matchProfileId}
DELETE /data-import-profiles/matchProfiles/{id}
Item deleted successfully
Media type: text/plain
Type: any
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.
Media type: text/plain
Type: any
Example:
"unable to delete matchProfile -- constraint violation"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"matchProfile not found"
Media type: text/plain
Type: any
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Create a new mappingProfile item.
POST /data-import-profiles/mappingProfiles
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": ""
}
}
Returns a newly created item, with server-controlled fields like 'id' populated
URI to the created mappingProfile item
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": ""
}
}
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.
Media type: text/plain
Type: any
Example:
"unable to add mappingProfile -- malformed JSON at 13:3"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to create mappingProfiles -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Retrieve a list of mappingProfile items.
GET /data-import-profiles/mappingProfiles
selection condition of Mapping Profiles by field 'hidden'
Example:
false
Load profile with related child and parent profiles
Example:
false
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
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
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
Returns a list of mappingProfile items
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
}
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.
Media type: text/plain
Type: any
Example:
unable to list mappingProfiles -- malformed parameter 'query', syntax error at column 6
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to list mappingProfiles -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Retrieve mappingProfile item with given {mappingProfileId}
GET /data-import-profiles/mappingProfiles/{id}
Load profile with related child and parent profiles
Example:
false
Returns item with a given ID
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": ""
}
}
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"mappingProfile not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Update mappingProfile item with given {mappingProfileId}
PUT /data-import-profiles/mappingProfiles/{id}
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": ""
}
}
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"
]
}
Item successfully updated
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.
Media type: text/plain
Type: any
Example:
"unable to update mappingProfile -- malformed JSON at 13:4"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"mappingProfile not found"
Optimistic locking version conflict
Media type: text/plain
Type: any
Example:
version conflict
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Delete mappingProfile item with given {mappingProfileId}
DELETE /data-import-profiles/mappingProfiles/{id}
Item deleted successfully
Media type: text/plain
Type: any
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.
Media type: text/plain
Type: any
Example:
"unable to delete mappingProfile -- constraint violation"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"mappingProfile not found"
Media type: text/plain
Type: any
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Create a new actionProfile item.
POST /data-import-profiles/actionProfiles
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":""
}
}
Returns a newly created item, with server-controlled fields like 'id' populated
URI to the created actionProfile item
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":""
}
}
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.
Media type: text/plain
Type: any
Example:
"unable to add actionProfile -- malformed JSON at 13:3"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to create actionProfiles -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Retrieve a list of actionProfile items.
GET /data-import-profiles/actionProfiles
selection condition of Action Profiles by field 'hidden'
Example:
false
Load profile with related child and parent profiles
Example:
false
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
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
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
Returns a list of actionProfile items
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
}
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.
Media type: text/plain
Type: any
Example:
unable to list actionProfiles -- malformed parameter 'query', syntax error at column 6
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to list actionProfiles -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Retrieve actionProfile item with given {actionProfileId}
GET /data-import-profiles/actionProfiles/{id}
Load profile with related child and parent profiles
Example:
false
Returns item with a given ID
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":""
}
}
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"actionProfile not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Update actionProfile item with given {actionProfileId}
PUT /data-import-profiles/actionProfiles/{id}
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":""
}
}
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"
]
}
Item successfully updated
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.
Media type: text/plain
Type: any
Example:
"unable to update actionProfile -- malformed JSON at 13:4"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"actionProfile not found"
Optimistic locking version conflict
Media type: text/plain
Type: any
Example:
version conflict
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Delete actionProfile item with given {actionProfileId}
DELETE /data-import-profiles/actionProfiles/{id}
Item deleted successfully
Media type: text/plain
Type: any
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.
Media type: text/plain
Type: any
Example:
"unable to delete actionProfile -- constraint violation"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"actionProfile not found"
Media type: text/plain
Type: any
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Create a new profileAssociation item.
POST /data-import-profiles/profileAssociations
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
It needs to identify detail profile type in association
Example:
ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
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"
}
Returns a newly created item, with server-controlled fields like 'id' populated
URI to the created profileAssociation item
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"
}
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.
Media type: text/plain
Type: any
Example:
"unable to add profileAssociation -- malformed JSON at 13:3"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to create profileAssociations -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Retrieve a list of profileAssociation items.
GET /data-import-profiles/profileAssociations
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
It needs to identify detail profile type in association
Example:
ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
Returns a list of profileAssociation items
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
}
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.
Media type: text/plain
Type: any
Example:
unable to list profileAssociations -- malformed parameter 'query', syntax error at column 6
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to list profileAssociations -- unauthorized
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Retrieve profileAssociation item with given {profileAssociationId}
GET /data-import-profiles/profileAssociations/{id}
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
It needs to identify detail profile type in association
Example:
ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
Returns item with a given ID
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"
}
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"profileAssociation not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Update profileAssociation item with given {profileAssociationId}
PUT /data-import-profiles/profileAssociations/{id}
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
It needs to identify detail profile type in association
Example:
ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
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"
}
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"
]
}
Item successfully updated
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.
Media type: text/plain
Type: any
Example:
"unable to update profileAssociation -- malformed JSON at 13:4"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"profileAssociation not found"
Optimistic locking version conflict
Media type: text/plain
Type: any
Example:
version conflict
Validation errors
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"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Delete profileAssociation item with given {profileAssociationId}
DELETE /data-import-profiles/profileAssociations/{id}
It needs to identify master profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
It needs to identify detail profile type in association
Example:
JOB_PROFILE, ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
Item deleted successfully
Media type: text/plain
Type: any
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.
Media type: text/plain
Type: any
Example:
"unable to delete profileAssociation -- constraint violation"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"profileAssociation not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
GET /data-import-profiles/profileAssociations/{id}/details
It needs to identify master profile type for an id
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
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
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
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
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
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"
]
}
Validation errors
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"
}
]
}
]
}
GET /data-import-profiles/profileAssociations/{id}/masters
Type of detail profile
Example:
JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE
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
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
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
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
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"
]
}
Validation errors
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"
}
]
}
]
}
Method to get Job Profile Snapshot by id
GET /data-import-profiles/jobProfileSnapshots/{id}
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"
]
}
Method to create Job Profile Snapshot by Job Profile id
POST /data-import-profiles/jobProfileSnapshots/{id}
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"
]
}
Bad request
Media type: text/plain
Type: any
Example:
Bad request
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Get a list of entity types
GET /data-import-profiles/entityTypes
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"
]
}
Bad request
Media type: text/plain
Type: any
Example:
Bad request
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Method to import profile snapshot with related profiles.
POST /data-import-profiles/profileSnapshots
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"
]
}
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"
]
}
Bad request
Media type: text/plain
Type: any
Example:
Bad request
Validation errors
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"
}
]
}
]
}
Internal server error
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}
Indicates profile type
Example:
JOB_PROFILE
Indicates job profile id, should be specified when {profileType} parameter has value JOB_PROFILE or MATCH_PROFILE
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"
]
}
Bad request
Media type: text/plain
Type: any
Example:
Bad request
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error