Data Import Converter Storage (v1.0)

http://localhost

Table of contents

Data Import Converter Storage API

API for managing data import profiles

/data-import-profiles

POST /data-import-profiles/jobProfiles

Create a new jobProfile item.

POST /data-import-profiles/jobProfiles
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Job Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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"
    ]
  },
  "deleted": 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": ""
  }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created jobProfile item

Body

Media type: application/json

Type: any

Example:

{
  "id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
  "name": "Load vendor order records",
  "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
  "dataType": "MARC",
  "tags": {
    "tagList": [
      "acq", "daily"
    ]
  },
  "deleted": 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": ""
  }
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to add jobProfile -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create jobProfiles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /data-import-profiles/jobProfiles

Retrieve a list of jobProfile items.

GET /data-import-profiles/jobProfiles
Query Parameters
  • showDeleted: (boolean - default: false)

    selection condition of Job Profiles by field 'deleted'

    Example:

    false
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    with valid searchable fields: for example userInfo.lastName=Doe

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of jobProfile items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Collection of Job Profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "jobProfiles": {
      "description": "List of Job Profiles",
      "type": "array",
      "id": "jobProfileList",
      "items": {
        "type": "object",
        "$ref": "jobProfile.json"
      }
    },
    "totalRecords": {
      "description": "Total number of Job Profiles",
      "type": "integer"
    }
  },
  "excludedFromEqualsAndHashCode": [
    "totalRecords"
  ],
  "required": [
    "jobProfiles",
    "totalRecords"
  ]
}

Example:

{
  "jobProfiles": [
    {
      "id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
      "name": "Load vendor order records",
      "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
      "dataType": "MARC",
      "tags": {
        "tagList": [
          "acq", "daily"
        ]
      },
      "deleted": false,
      "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"
        ]
      },
      "deleted": false,
      "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"
        ]
      },
      "deleted": false,
      "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"
        ]
      },
      "deleted": false,
      "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": []
      },
      "deleted": false,
      "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"
        ]
      },
      "deleted": false,
      "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"
        ]
      },
      "deleted": false,
      "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"
        ]
      },
      "deleted": false,
      "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"
        ]
      },
      "deleted": false,
      "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"
        ]
      },
      "deleted": false,
      "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
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

unable to list jobProfiles -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list jobProfiles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

GET /data-import-profiles/jobProfiles/{id}

Retrieve jobProfile item with given {jobProfileId}

GET /data-import-profiles/jobProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Job Profile schema",
  "additionalProperties": false,
  "type": "object",
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$ref": "../common/uuid.json"
    },
    "name": {
      "description": "Job Profile name",
      "type": "string"
    },
    "description": {
      "description": "Job Profile description",
      "type": "string"
    },
    "dataType": {
      "description": "Data type",
      "type": "string",
      "$ref": "../common/dataType.json"
    },
    "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",
      "$ref": "../../raml-util/schemas/tags.schema"
    },
    "deleted": {
      "description": "Flag indicates that the Job Profile marked as deleted",
      "type": "boolean",
      "default": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Job Profile",
      "type": "object",
      "$ref": "../common/userInfo.json"
    },
    "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": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "$ref": "../../raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "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"
    ]
  },
  "deleted": 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": ""
  }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"jobProfile not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /data-import-profiles/jobProfiles/{id}

Update jobProfile item with given {jobProfileId}

PUT /data-import-profiles/jobProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Job Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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"
    ]
  },
  "deleted": 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": ""
  }
}

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Job Profile schema",
  "additionalProperties": false,
  "type": "object",
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$ref": "../common/uuid.json"
    },
    "name": {
      "description": "Job Profile name",
      "type": "string"
    },
    "description": {
      "description": "Job Profile description",
      "type": "string"
    },
    "dataType": {
      "description": "Data type",
      "type": "string",
      "$ref": "../common/dataType.json"
    },
    "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",
      "$ref": "../../raml-util/schemas/tags.schema"
    },
    "deleted": {
      "description": "Flag indicates that the Job Profile marked as deleted",
      "type": "boolean",
      "default": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Job Profile",
      "type": "object",
      "$ref": "../common/userInfo.json"
    },
    "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": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "$ref": "../../raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "required": [
    "name",
    "dataType"
  ]
}

Response 204

Item successfully updated

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to update jobProfile -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"jobProfile not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /data-import-profiles/jobProfiles/{id}

Delete jobProfile item with given {jobProfileId}

DELETE /data-import-profiles/jobProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Body

Media type: text/plain

Type: any

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to delete jobProfile -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"jobProfile not found"

Response 409

Body

Media type: text/plain

Type: any

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

POST /data-import-profiles/matchProfiles

Create a new matchProfile item.

POST /data-import-profiles/matchProfiles
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Match Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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"
          }
        ]
      }
    }
  ],
  "deleted": false,
  "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"
  }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created matchProfile item

Body

Media type: application/json

Type: any

Example:

{
  "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
  "name": "POL-MARC",
  "description": "Use for POL in 990 p",
  "tags": {
    "tagList": [
      "pol"
    ]
  },
  "incomingRecordType": "MARC_BIBLIOGRAPHIC",
  "existingRecordType": "ORDER",
  "matchDetails": [
    {
      "incomingRecordType": "MARC_BIBLIOGRAPHIC",
      "existingRecordType": "ORDER",
      "incomingMatchExpression": {
        "dataValueType": "VALUE_FROM_RECORD",
        "fields": [
          {
            "label": "field",
            "value": "990"
          },
          {
            "label": "indicator1",
            "value": " "
          },
          {
            "label": "indicator2",
            "value": " "
          },
          {
            "label": "recordSubfield",
            "value": "p"
          }
        ]
      },
      "matchCriterion": "EXACTLY_MATCHES",
      "existingMatchExpression": {
        "dataValueType": "VALUE_FROM_RECORD",
        "fields": [
          {
            "label": "field",
            "value": "PO_LINE_NUMBER"
          }
        ]
      }
    }
  ],
  "deleted": false,
  "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"
  }
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to add matchProfile -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create matchProfiles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /data-import-profiles/matchProfiles

Retrieve a list of matchProfile items.

GET /data-import-profiles/matchProfiles
Query Parameters
  • showDeleted: (boolean - default: false)

    selection condition of Match Profiles by field 'deleted'

    Example:

    false
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    with valid searchable fields: for example userInfo.lastName=Doe

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of matchProfile items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Collection of Match Profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "matchProfiles": {
      "description": "List of Match Profiles",
      "type": "array",
      "id": "matchProfileList",
      "items": {
        "type": "object",
        "$ref": "matchProfile.json"
      }
    },
    "totalRecords": {
      "description": "Total number of Match Profiles",
      "type": "integer"
    }
  },
  "excludedFromEqualsAndHashCode": [
    "totalRecords"
  ],
  "required": [
    "matchProfiles",
    "totalRecords"
  ]
}

Example:

{
  "matchProfiles": [
    {
      "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
      "name": "POL-MARC",
      "description": "Use for POL in 990 p",
      "tags": {
        "tagList": [
          "pol"
        ]
      },
      "incomingRecordType": "MARC_BIBLIOGRAPHIC",
      "existingRecordType": "ORDER",
      "matchDetails": [
        {
          "incomingRecordType": "MARC_BIBLIOGRAPHIC",
          "existingRecordType": "ORDER",
          "incomingMatchExpression": {
            "dataValueType": "VALUE_FROM_RECORD",
            "fields": [
              {
                "label": "field",
                "value": "990"
              },
              {
                "label": "indicator1",
                "value": " "
              },
              {
                "label": "indicator2",
                "value": " "
              },
              {
                "label": "recordSubfield",
                "value": "p"
              }
            ]
          },
          "matchCriterion": "EXACTLY_MATCHES",
          "existingMatchExpression": {
            "dataValueType": "VALUE_FROM_RECORD",
            "fields": [
              {
                "label": "field",
                "value": "PO_LINE_NUMBER"
              }
            ]
          }
        }
      ],
      "deleted": false,
      "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
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

unable to list matchProfiles -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list matchProfiles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

GET /data-import-profiles/matchProfiles/{id}

Retrieve matchProfile item with given {matchProfileId}

GET /data-import-profiles/matchProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Match Profile schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$ref": "../common/uuid.json"
    },
    "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",
      "$ref": "../../raml-util/schemas/tags.schema"
    },
    "incomingRecordType": {
      "description": "Incoming record type",
      "type": "string",
      "$ref": "entityType.json"
    },
    "existingRecordType": {
      "description": "Existing record type to match",
      "type": "string",
      "$ref": "entityType.json"
    },
    "matchDetails": {
      "description": "Match profile details list",
      "type": "array",
      "items": {
        "type": "object",
        "$ref": "match-profile-detail/matchDetail.json"
      }
    },
    "deleted": {
      "description": "Flag indicates that the Match Profile marked as deleted",
      "type": "boolean",
      "default": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Match Profile",
      "type": "object",
      "$ref": "../common/userInfo.json"
    },
    "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": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "$ref": "../../raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "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"
          }
        ]
      }
    }
  ],
  "deleted": false,
  "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"
  }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"matchProfile not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /data-import-profiles/matchProfiles/{id}

Update matchProfile item with given {matchProfileId}

PUT /data-import-profiles/matchProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Match Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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"
          }
        ]
      }
    }
  ],
  "deleted": false,
  "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"
  }
}

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Match Profile schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$ref": "../common/uuid.json"
    },
    "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",
      "$ref": "../../raml-util/schemas/tags.schema"
    },
    "incomingRecordType": {
      "description": "Incoming record type",
      "type": "string",
      "$ref": "entityType.json"
    },
    "existingRecordType": {
      "description": "Existing record type to match",
      "type": "string",
      "$ref": "entityType.json"
    },
    "matchDetails": {
      "description": "Match profile details list",
      "type": "array",
      "items": {
        "type": "object",
        "$ref": "match-profile-detail/matchDetail.json"
      }
    },
    "deleted": {
      "description": "Flag indicates that the Match Profile marked as deleted",
      "type": "boolean",
      "default": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Match Profile",
      "type": "object",
      "$ref": "../common/userInfo.json"
    },
    "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": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "$ref": "../../raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "required": [
    "name",
    "incomingRecordType",
    "existingRecordType"
  ]
}

Response 204

Item successfully updated

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to update matchProfile -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"matchProfile not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /data-import-profiles/matchProfiles/{id}

Delete matchProfile item with given {matchProfileId}

DELETE /data-import-profiles/matchProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Body

Media type: text/plain

Type: any

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to delete matchProfile -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"matchProfile not found"

Response 409

Body

Media type: text/plain

Type: any

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

POST /data-import-profiles/mappingProfiles

Create a new mappingProfile item.

POST /data-import-profiles/mappingProfiles
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Mapping Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
  "deleted": false,
  "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": ""
  }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created mappingProfile item

Body

Media type: application/json

Type: any

Example:

{
  "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
  "name": "MARC brief instance 1",
  "description": "Preliminary instance from CoolVendor MARC order record",
  "tags": {
    "tagList": [
      "cool-vendor"
    ]
  },
  "incomingRecordType": "MARC_BIBLIOGRAPHIC",
  "existingRecordType": "INSTANCE",
  "deleted": false,
  "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": ""
  }
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to add mappingProfile -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create mappingProfiles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /data-import-profiles/mappingProfiles

Retrieve a list of mappingProfile items.

GET /data-import-profiles/mappingProfiles
Query Parameters
  • showDeleted: (boolean - default: false)

    selection condition of Mapping Profiles by field 'deleted'

    Example:

    false
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    with valid searchable fields: for example userInfo.lastName=Doe

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of mappingProfile items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Collection of Mapping Profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "mappingProfiles": {
      "description": "List of Mapping Profiles",
      "type": "array",
      "id": "mappingProfileList",
      "items": {
        "type": "object",
        "$ref": "mappingProfile.json"
      }
    },
    "totalRecords": {
      "description": "Total number of Mapping Profiles",
      "type": "integer"
    }
  },
  "excludedFromEqualsAndHashCode": [
    "totalRecords"
  ],
  "required": [
    "mappingProfiles",
    "totalRecords"
  ]
}

Example:

{
  "mappingProfiles": [
    {
      "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
      "name": "MARC brief instance 1",
      "description": "Preliminary instance from CoolVendor MARC order record",
      "tags": {
        "tagList": [
          "cool-vendor"
        ]
      },
      "incomingRecordType": "MARC_BIBLIOGRAPHIC",
      "existingRecordType": "INSTANCE",
      "deleted": false,
      "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
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

unable to list mappingProfiles -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list mappingProfiles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

GET /data-import-profiles/mappingProfiles/{id}

Retrieve mappingProfile item with given {mappingProfileId}

GET /data-import-profiles/mappingProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Mapping Profile schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$ref": "../common/uuid.json"
    },
    "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",
      "$ref": "../../raml-util/schemas/tags.schema"
    },
    "incomingRecordType": {
      "description": "Incoming record type",
      "type": "string",
      "$ref": "./entityType.json"
    },
    "existingRecordType": {
      "description": "FOLIO record type to mapping",
      "type": "string",
      "$ref": "./entityType.json"
    },
    "deleted": {
      "description": "Flag indicates that the Mapping Profile marked as deleted",
      "type": "boolean",
      "default": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Mapping Profile",
      "type": "object",
      "$ref": "../common/userInfo.json"
    },
    "marcFieldProtectionSettings": {
      "description": "MARC field protection settings",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.MarcFieldProtectionSetting>",
      "items": {
        "type": "object",
        "$ref": "marc-field-protection/marcFieldProtectionSetting.json"
      }
    },
    "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": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "mappingDetails": {
      "description": "Mapping details with mapping rules",
      "$ref": "mapping-profile-detail/mappingDetail.json"
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "$ref": "../../raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "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",
  "deleted": false,
  "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": ""
  }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"mappingProfile not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /data-import-profiles/mappingProfiles/{id}

Update mappingProfile item with given {mappingProfileId}

PUT /data-import-profiles/mappingProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Mapping Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
  "deleted": false,
  "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": ""
  }
}

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Mapping Profile schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$ref": "../common/uuid.json"
    },
    "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",
      "$ref": "../../raml-util/schemas/tags.schema"
    },
    "incomingRecordType": {
      "description": "Incoming record type",
      "type": "string",
      "$ref": "./entityType.json"
    },
    "existingRecordType": {
      "description": "FOLIO record type to mapping",
      "type": "string",
      "$ref": "./entityType.json"
    },
    "deleted": {
      "description": "Flag indicates that the Mapping Profile marked as deleted",
      "type": "boolean",
      "default": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Mapping Profile",
      "type": "object",
      "$ref": "../common/userInfo.json"
    },
    "marcFieldProtectionSettings": {
      "description": "MARC field protection settings",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.MarcFieldProtectionSetting>",
      "items": {
        "type": "object",
        "$ref": "marc-field-protection/marcFieldProtectionSetting.json"
      }
    },
    "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": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "mappingDetails": {
      "description": "Mapping details with mapping rules",
      "$ref": "mapping-profile-detail/mappingDetail.json"
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "$ref": "../../raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "required": [
    "name",
    "incomingRecordType"
  ]
}

Response 204

Item successfully updated

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to update mappingProfile -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"mappingProfile not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /data-import-profiles/mappingProfiles/{id}

Delete mappingProfile item with given {mappingProfileId}

DELETE /data-import-profiles/mappingProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Body

Media type: text/plain

Type: any

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to delete mappingProfile -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"mappingProfile not found"

Response 409

Body

Media type: text/plain

Type: any

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

POST /data-import-profiles/actionProfiles

Create a new actionProfile item.

POST /data-import-profiles/actionProfiles
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Action Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
   "deleted":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":""
   }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created actionProfile item

Body

Media type: application/json

Type: any

Example:

{
   "id":"cf3d7393-8534-44fb-93fd-7495d220f4f6",
   "name":"Create preliminary instance",
   "description":"Brief instance created by order, will be updated later",
   "tags":{
      "tagList":[
         "acq-related",
         "preliminary"
      ]
   },
   "reactTo":"NON-MATCH",
   "action":"CREATE",
   "folioRecord":"INSTANCE",
   "deleted":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":""
   }
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to add actionProfile -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create actionProfiles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /data-import-profiles/actionProfiles

Retrieve a list of actionProfile items.

GET /data-import-profiles/actionProfiles
Query Parameters
  • showDeleted: (boolean - default: false)

    selection condition of Action Profiles by field 'deleted'

    Example:

    false
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    with valid searchable fields: for example userInfo.lastName=Doe

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of actionProfile items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Collection of Action Profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "actionProfiles": {
      "description": "List of Action Profiles",
      "type": "array",
      "id": "actionProfileList",
      "items": {
        "type": "object",
        "$ref": "actionProfile.json"
      }
    },
    "totalRecords": {
      "description": "Total number of Action Profiles",
      "type": "integer"
    }
  },
  "excludedFromEqualsAndHashCode": [
    "totalRecords"
  ],
  "required": [
    "actionProfiles",
    "totalRecords"
  ]
}

Example:

{
  "actionProfiles": [
    {
      "id": "cf3d7393-8534-44fb-93fd-7495d220f4f6",
      "name": "Create preliminary instance",
      "description": "Brief instance created by order, will be updated later",
      "tags": {
        "tagList": [
          "acq-related", "preliminary"
        ]
      },
      "reactTo": "NON-MATCH",
      "action": "CREATE",
      "folioRecord": "INSTANCE",
      "deleted": false,
      "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
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

unable to list actionProfiles -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list actionProfiles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

GET /data-import-profiles/actionProfiles/{id}

Retrieve actionProfile item with given {actionProfileId}

GET /data-import-profiles/actionProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Action Profile schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$ref": "../common/uuid.json"
    },
    "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",
      "$ref": "../../raml-util/schemas/tags.schema"
    },
    "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",
        "ITEM",
        "ORDER",
        "INVOICE",
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY"
      ]
    },
    "deleted": {
      "description": "Flag indicates that the Action Profile marked as deleted",
      "type": "boolean",
      "default": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Action Profile",
      "type": "object",
      "$ref": "../common/userInfo.json"
    },
    "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": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "$ref": "../../raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "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",
   "deleted":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":""
   }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"actionProfile not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /data-import-profiles/actionProfiles/{id}

Update actionProfile item with given {actionProfileId}

PUT /data-import-profiles/actionProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Action Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
   "deleted":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":""
   }
}

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Action Profile schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$ref": "../common/uuid.json"
    },
    "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",
      "$ref": "../../raml-util/schemas/tags.schema"
    },
    "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",
        "ITEM",
        "ORDER",
        "INVOICE",
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY"
      ]
    },
    "deleted": {
      "description": "Flag indicates that the Action Profile marked as deleted",
      "type": "boolean",
      "default": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Action Profile",
      "type": "object",
      "$ref": "../common/userInfo.json"
    },
    "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": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "$ref": "../../raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "required": [
    "name",
    "action",
    "folioRecord"
  ]
}

Response 204

Item successfully updated

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to update actionProfile -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"actionProfile not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /data-import-profiles/actionProfiles/{id}

Delete actionProfile item with given {actionProfileId}

DELETE /data-import-profiles/actionProfiles/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Body

Media type: text/plain

Type: any

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to delete actionProfile -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"actionProfile not found"

Response 409

Body

Media type: text/plain

Type: any

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

POST /data-import-profiles/profileAssociations

Create a new profileAssociation item.

POST /data-import-profiles/profileAssociations
Query Parameters
  • master: required (string)

    It needs to identify master profile type in association

    Example:

    JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
  • detail: required (string)

    It needs to identify detail profile type in association

    Example:

    ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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",
      "type": "string",
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "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",
      "type": "string",
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "detailProfileType": {
      "description": "Type of master profile",
      "type": "string",
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created profileAssociation item

Body

Media type: application/json

Type: any

Example:

{
  "id": "d79c0c7f-1dca-4523-b438-dd00a5a1f9a6",
  "masterProfileId": "4623d797-6987-46ed-925d-0e8c6fe6678a",
  "detailProfileId": "6146e173-c664-4404-9d58-c913d89e7114",
  "order": 2,
  "triggered": "true"
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to add profileAssociation -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create profileAssociations -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /data-import-profiles/profileAssociations

Retrieve a list of profileAssociation items.

GET /data-import-profiles/profileAssociations
Query Parameters
  • master: required (string)

    It needs to identify master profile type in association

    Example:

    JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
  • detail: required (string)

    It needs to identify detail profile type in association

    Example:

    ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of profileAssociation items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Collection of Profile associations",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "profileAssociations": {
      "description": "List of Profile associations",
      "type": "array",
      "id": "profileAssociationList",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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",
            "type": "string",
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "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",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of master profile",
            "type": "string",
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "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#",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{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
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

unable to list profileAssociations -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list profileAssociations -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

GET /data-import-profiles/profileAssociations/{id}

Retrieve profileAssociation item with given {profileAssociationId}

GET /data-import-profiles/profileAssociations/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • master: required (string)

    It needs to identify master profile type in association

    Example:

    JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
  • detail: required (string)

    It needs to identify detail profile type in association

    Example:

    ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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",
      "type": "string",
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "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",
      "type": "string",
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "detailProfileType": {
      "description": "Type of master profile",
      "type": "string",
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"profileAssociation not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /data-import-profiles/profileAssociations/{id}

Update profileAssociation item with given {profileAssociationId}

PUT /data-import-profiles/profileAssociations/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • master: required (string)

    It needs to identify master profile type in association

    Example:

    JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
  • detail: required (string)

    It needs to identify detail profile type in association

    Example:

    ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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",
      "type": "string",
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "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",
      "type": "string",
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "detailProfileType": {
      "description": "Type of master profile",
      "type": "string",
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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"
}

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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",
      "type": "string",
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "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",
      "type": "string",
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "detailProfileType": {
      "description": "Type of master profile",
      "type": "string",
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "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#",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{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"
  ]
}

Response 204

Item successfully updated

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to update profileAssociation -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"profileAssociation not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /data-import-profiles/profileAssociations/{id}

Delete profileAssociation item with given {profileAssociationId}

DELETE /data-import-profiles/profileAssociations/{id}
URI Parameters
  • id: required (string)
Query Parameters
  • master: required (string)

    It needs to identify master profile type in association

    Example:

    JOB_PROFILE, ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
  • detail: required (string)

    It needs to identify detail profile type in association

    Example:

    JOB_PROFILE, ACTION_PROFILE, MAPPING_PROFILE, MATCH_PROFILE
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Body

Media type: text/plain

Type: any

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to delete profileAssociation -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"profileAssociation not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /data-import-profiles/profileAssociations/{id}/details

GET /data-import-profiles/profileAssociations/{id}/details
URI Parameters
  • id: required (string)
Query Parameters
  • masterType: required (string)

    It needs to identify master profile type for an id

    Example:

    JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE
  • detailType: (string)

    It filters returned type of details. For example you need to get only MATCH_PROFILEs for a JOB_PROFILE but the JOB_PROFILE has ACTION_PROFILEs too. So use it as filter for a return type

    Example:

    ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    with valid searchable fields: for example userInfo.lastName=Doe

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema describes Job Profile snapshot entity",
  "javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Snapshot wrapper unique identifier",
      "$ref": "../common/uuid.json"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$ref": "../common/uuid.json"
    },
    "contentType": {
      "description": "Type of the content",
      "type": "string",
      "$ref": "profileSnapshotType.json"
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "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"
  ]
}

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

GET /data-import-profiles/profileAssociations/{id}/masters

GET /data-import-profiles/profileAssociations/{id}/masters
URI Parameters
  • id: required (string)
Query Parameters
  • detailType: required (string)

    Type of detail profile

    Example:

    JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE
  • masterType: (string)

    It filters returned type of masters. For example you need to get only JOB_PROFILEs for a MATCH_PROFILE but the MATCH_PROFILE has ACTION_PROFILEs too. So use it as filter for a return type

    Example:

    JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    with valid searchable fields: for example userInfo.lastName=Doe

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema describes Job Profile snapshot entity",
  "javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Snapshot wrapper unique identifier",
      "$ref": "../common/uuid.json"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$ref": "../common/uuid.json"
    },
    "contentType": {
      "description": "Type of the content",
      "type": "string",
      "$ref": "profileSnapshotType.json"
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "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"
  ]
}

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

GET /data-import-profiles/jobProfileSnapshots/{id}

Method to get Job Profile Snapshot by id

GET /data-import-profiles/jobProfileSnapshots/{id}
URI Parameters
  • id: required (string)

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema describes Job Profile snapshot entity",
  "javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Snapshot wrapper unique identifier",
      "$ref": "../common/uuid.json"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$ref": "../common/uuid.json"
    },
    "contentType": {
      "description": "Type of the content",
      "type": "string",
      "$ref": "profileSnapshotType.json"
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "content": {
      "description": "Profile content (plain Object)"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "childSnapshotWrappers": {
      "description": "Set of children profile snapshots",
      "type": "array",
      "items": {
        "$ref": "profileSnapshotWrapper.json"
      }
    }
  },
  "required": [
    "contentType",
    "content"
  ],
  "excludedFromEqualsAndHashCode": [
    "content"
  ]
}

POST /data-import-profiles/jobProfileSnapshots/{id}

Method to create Job Profile Snapshot by Job Profile id

POST /data-import-profiles/jobProfileSnapshots/{id}
URI Parameters
  • id: required (string)

Response 201

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema describes Job Profile snapshot entity",
  "javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Snapshot wrapper unique identifier",
      "$ref": "../common/uuid.json"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$ref": "../common/uuid.json"
    },
    "contentType": {
      "description": "Type of the content",
      "type": "string",
      "$ref": "profileSnapshotType.json"
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "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"
  ]
}

Response 400

Bad request

Body

Media type: text/plain

Type: any

Example:

Bad request

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /data-import-profiles/entityTypes

Get a list of entity types

GET /data-import-profiles/entityTypes

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Collection of entity types",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "entityTypes": {
      "description": "Set of entity types",
      "type": "array",
      "id": "entityTypeList",
      "items": {
        "type": "string"
      }
    },
    "totalRecords": {
      "description": "Total number of entity types",
      "type": "integer"
    }
  },
  "excludedFromEqualsAndHashCode": [
    "totalRecords"
  ],
  "required": [
    "entityTypes",
    "totalRecords"
  ]
}

Response 400

Bad request

Body

Media type: text/plain

Type: any

Example:

Bad request

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /data-import-profiles/profileSnapshots/{profileId}

Get a profile snapshot structure for specified profile id and type. Acceptable profileType values are JOB_PROFILE, ACTION_PROFILE, MATCH_PROFILE, MAPPING_PROFILE.

GET /data-import-profiles/profileSnapshots/{profileId}
URI Parameters
  • profileId: required (string)
Query Parameters
  • profileType: required (string)

    Indicates profile type

    Example:

    JOB_PROFILE
  • jobProfileId: (string)

    Indicates job profile id, should be specified when {profileType} parameter has value JOB_PROFILE or MATCH_PROFILE

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema describes Job Profile snapshot entity",
  "javaType": "org.folio.rest.jaxrs.model.ProfileSnapshotWrapper",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Snapshot wrapper unique identifier",
      "$ref": "../common/uuid.json"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$ref": "../common/uuid.json"
    },
    "contentType": {
      "description": "Type of the content",
      "type": "string",
      "$ref": "profileSnapshotType.json"
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "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"
  ]
}

Response 400

Bad request

Body

Media type: text/plain

Type: any

Example:

Bad request

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error