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
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Job Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profile": {
      "description": "Job Profile object",
      "javaType": "org.folio.rest.jaxrs.model.JobProfile"
    },
    "addedRelations": {
      "description": "Job profile added relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "deletedRelations": {
      "description": "Job profile deleted relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    }
  },
  "required": [
    "profile"
  ]
}

Example:

{
  "id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
  "name": "Load vendor order records",
  "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
  "dataType": "MARC",
  "tags": {
    "tagList": [
      "acq", "daily"
    ]
  },
  "userInfo": {
    "firstName": "DIKU",
    "lastName": "ADMINISTRATOR",
    "userName": "diku_admin"
  },
     "parentProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC_BIB"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
     "childProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC_BIB"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
  "metadata": {
    "createdDate": "2018-10-30T12:41:22.000",
    "createdByUserId": "",
    "createdByUsername": "",
    "updatedDate": "2018-11-02T12:09:51.000",
    "updatedByUserId": "",
    "updatedByUsername": ""
  }
}

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"
    ]
  },
  "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
  • showHidden: (boolean - default: false)

    selection condition of Job Profiles by field 'hidden'

    Example:

    false
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • query: (string)

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

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

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)

    How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords

    Example:

    none
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

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

    Example:

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

    Limit the number of elements returned in the response

    Example:

    10

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"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-10-30T12:41:22.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-11-02T12:09:51.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "295e28b4-aea2-4458-9073-385a31e1da05",
      "name": "Load shelfready cataloging records",
      "description": "Overlay brief bibs, update holdings and item records, create invoice",
      "dataType": "MARC",
      "tags": {
        "tagList": [
          "cat", "weekly"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-10-30T12:42:18.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-11-03T10:01:30.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "bb689511-5365-4050-8084-a03d94728d88",
      "name": "Approval plan records",
      "description": "Create bibs, holdings, items, orders, and invoices",
      "dataType": "MARC",
      "tags": {
        "tagList": [
          "acq", "cat", "weekly"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-10-30T12:45:33.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-11-03T11:22:30.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "3e705998-9169-4f31-b048-90ffdcbd24c1",
      "name": "Load KB eResource records",
      "description": "Create, update, delete existing eContent bib records",
      "dataType": "MARC",
      "tags": {
        "tagList": [
          "monthly", "KB"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-11-01T10:12:51.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-12-02T09:05:30.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "15426802-bb0d-4dfb-8eee-90f64fed0cf1",
      "name": "ETL Bib records",
      "description": "Reload bib records that were exported and updated outside of FOLIO",
      "dataType": "MARC",
      "tags": {
        "tagList": []
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-11-01T10:37:53.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-12-03T11:45:21.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "87e4ad58-d677-43dd-8b04-9795741b2103",
      "name": "Loading authority records",
      "description": "Load new and updated MARC authority records",
      "dataType": "MARC",
      "tags": {
        "tagList": [
          "cat", "monthly"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-11-02T10:20:32.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-12-02T10:45:21.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "72af7eb7-d7e2-4d16-93ac-682b9a58a94c",
      "name": "DDA discovery records",
      "description": "Load DDA discovery MARC records to create bib and holdings",
      "dataType": "MARC",
      "tags": {
        "tagList": [
          "weekly", "DDA"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-11-02T10:18:44.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-12-03T14:20:21.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "4d1b5024-2c49-42bd-b781-4330d14cefb0",
      "name": "Create orders from spreadsheets",
      "description": "Selector-provided spreadsheet creates instance, holdings, item, and order",
      "dataType": "Delimited",
      "tags": {
        "tagList": [
          "acq"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-11-01T10:09:51.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-12-01T15:21:28.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "b32e79bc-01d9-4d31-bc08-a3621fcfc1aa",
      "name": "Load EDI Invoice",
      "description": "",
      "dataType": "EDIFACT",
      "tags": {
        "tagList": [
          "acq"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-11-01T10:18:42.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-12-05T13:08:12.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    },
    {
      "id": "828a787c-bcf3-4c28-891a-9e6f3ba5068b",
      "name": "Load MARC, then throw away",
      "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; then discard MARC",
      "dataType": "MARC",
      "tags": {
        "tagList": [
          "acq", "daily"
        ]
      },
      "userInfo": {
        "firstName": "DIKU",
        "lastName": "ADMINISTRATOR",
        "userName": "diku_admin"
      },
      "metadata": {
        "createdDate": "2018-11-01T11:08:21.000",
        "createdByUserId": "",
        "createdByUsername": "",
        "updatedDate": "2018-12-01T19:01:41.000",
        "updatedByUserId": "",
        "updatedByUsername": ""
      }
    }
  ],
  "totalRecords": 10
}

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

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "name": {
      "description": "Job Profile name",
      "type": "string"
    },
    "description": {
      "description": "Job Profile description",
      "type": "string"
    },
    "dataType": {
      "description": "Data type",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "enum": [
        "Delimited",
        "EDIFACT",
        "MARC"
      ]
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "enum": [
        "MATCH",
        "NON-MATCH"
      ]
    },
    "tags": {
      "description": "Set of tags assigned to the current Job Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Job Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "firstName": {
          "description": "User first name",
          "type": "string"
        },
        "lastName": {
          "description": "User last name",
          "type": "string"
        },
        "userName": {
          "description": "User name (nickname)",
          "type": "string"
        }
      }
    },
    "parentProfiles": {
      "description": "Associated parent profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "childProfiles": {
      "description": "Associated children profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "$ref": "profileSnapshotWrapper.json",
        "type": "object"
      }
    },
    "hidden": {
      "description": "Flag indicates that the Job Profile will be hidden on UI",
      "type": "boolean",
      "default": false
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "required": [
    "name",
    "dataType"
  ]
}

Example:

{
  "id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
  "name": "Load vendor order records",
  "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
  "dataType": "MARC",
  "tags": {
    "tagList": [
      "acq", "daily"
    ]
  },
  "userInfo": {
    "firstName": "DIKU",
    "lastName": "ADMINISTRATOR",
    "userName": "diku_admin"
  },
     "parentProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC_BIB"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
     "childProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC_BIB"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
  "metadata": {
    "createdDate": "2018-10-30T12:41:22.000",
    "createdByUserId": "",
    "createdByUsername": "",
    "updatedDate": "2018-11-02T12:09:51.000",
    "updatedByUserId": "",
    "updatedByUsername": ""
  }
}

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)
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Job Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profile": {
      "description": "Job Profile object",
      "javaType": "org.folio.rest.jaxrs.model.JobProfile"
    },
    "addedRelations": {
      "description": "Job profile added relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "deletedRelations": {
      "description": "Job profile deleted relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    }
  },
  "required": [
    "profile"
  ]
}

Example:

{
  "id": "448ae575-daec-49c1-8041-d64c8ed8e5b1",
  "name": "Load vendor order records",
  "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
  "dataType": "MARC",
  "tags": {
    "tagList": [
      "acq", "daily"
    ]
  },
  "userInfo": {
    "firstName": "DIKU",
    "lastName": "ADMINISTRATOR",
    "userName": "diku_admin"
  },
     "parentProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC_BIB"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
     "childProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC_BIB"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
  "metadata": {
    "createdDate": "2018-10-30T12:41:22.000",
    "createdByUserId": "",
    "createdByUsername": "",
    "updatedDate": "2018-11-02T12:09:51.000",
    "updatedByUserId": "",
    "updatedByUsername": ""
  }
}

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "name": {
      "description": "Job Profile name",
      "type": "string"
    },
    "description": {
      "description": "Job Profile description",
      "type": "string"
    },
    "dataType": {
      "description": "Data type",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "enum": [
        "Delimited",
        "EDIFACT",
        "MARC"
      ]
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "enum": [
        "MATCH",
        "NON-MATCH"
      ]
    },
    "tags": {
      "description": "Set of tags assigned to the current Job Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Job Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "firstName": {
          "description": "User first name",
          "type": "string"
        },
        "lastName": {
          "description": "User last name",
          "type": "string"
        },
        "userName": {
          "description": "User name (nickname)",
          "type": "string"
        }
      }
    },
    "parentProfiles": {
      "description": "Associated parent profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "childProfiles": {
      "description": "Associated children profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "$ref": "profileSnapshotWrapper.json",
        "type": "object"
      }
    },
    "hidden": {
      "description": "Flag indicates that the Job Profile will be hidden on UI",
      "type": "boolean",
      "default": false
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "required": [
    "name",
    "dataType"
  ]
}

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 409

Optimistic locking version conflict

Body

Media type: text/plain

Type: any

Example:

version conflict

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)

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
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Match Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profile": {
      "description": "Match Profile object",
      "javaType": "org.folio.rest.jaxrs.model.MatchProfile"
    },
    "addedRelations": {
      "description": "Match profile added relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "deletedRelations": {
      "description": "Match profile deleted relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    }
  },
  "required": [
    "profile"
  ]
}

Example:

{
  "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
  "name": "POL-MARC",
  "description": "Use for POL in 990 p",
  "tags": {
    "tagList": [
      "pol"
    ]
  },
  "incomingRecordType": "MARC_BIBLIOGRAPHIC",
  "existingRecordType": "ORDER",
  "matchDetails": [
    {
      "incomingRecordType": "MARC_BIBLIOGRAPHIC",
      "existingRecordType": "ORDER",
      "incomingMatchExpression": {
        "dataValueType": "VALUE_FROM_RECORD",
        "fields": [
          {
            "label": "field",
            "value": "990"
          },
          {
            "label": "indicator1",
            "value": " "
          },
          {
            "label": "indicator2",
            "value": " "
          },
          {
            "label": "recordSubfield",
            "value": "p"
          }
        ]
      },
      "matchCriterion": "EXACTLY_MATCHES",
      "existingMatchExpression": {
        "dataValueType": "VALUE_FROM_RECORD",
        "fields": [
          {
            "label": "field",
            "value": "PO_LINE_NUMBER"
          }
        ]
      }
    }
  ],
  "userInfo": {
    "firstName": "Jane",
    "lastName": "Doe",
    "userName": "@janedoe"
  },
     "parentProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
     "childProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
  "metadata": {
    "createdDate": "2018-10-30T12:41:22.000",
    "createdByUserId": "",
    "createdByUsername": "@janedoe",
    "updatedDate": "2018-11-02T12:09:51.000",
    "updatedByUserId": "",
    "updatedByUsername": "@janedoe"
  }
}

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"
          }
        ]
      }
    }
  ],
  "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
  • showHidden: (boolean - default: false)

    selection condition of Match Profiles by field 'hidden'

    Example:

    false
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • query: (string)

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

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

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)

    How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords

    Example:

    none
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

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

    Example:

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

    Limit the number of elements returned in the response

    Example:

    10

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"
              }
            ]
          }
        }
      ],
      "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

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "name": {
      "description": "Match Profile name",
      "type": "string"
    },
    "description": {
      "description": "Match Profile description",
      "type": "string"
    },
    "tags": {
      "description": "Set of tags assigned to the current Match Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "incomingRecordType": {
      "description": "Incoming record type",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.EntityType",
      "additionalProperties": false,
      "enum": [
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY",
        "EDIFACT_INVOICE",
        "DELIMITED",
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "STATIC_VALUE",
        "PO_LINE"
      ]
    },
    "existingRecordType": {
      "description": "Existing record type to match",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.EntityType",
      "additionalProperties": false,
      "enum": [
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY",
        "EDIFACT_INVOICE",
        "DELIMITED",
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "STATIC_VALUE",
        "PO_LINE"
      ]
    },
    "matchDetails": {
      "description": "Match profile details list",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Match profile detail",
        "additionalProperties": false,
        "properties": {
          "incomingRecordType": {
            "description": "Incoming record type",
            "type": "string",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.EntityType",
            "additionalProperties": false,
            "enum": [
              "MARC_BIBLIOGRAPHIC",
              "MARC_HOLDINGS",
              "MARC_AUTHORITY",
              "EDIFACT_INVOICE",
              "DELIMITED",
              "INSTANCE",
              "HOLDINGS",
              "AUTHORITY",
              "ITEM",
              "ORDER",
              "INVOICE",
              "STATIC_VALUE",
              "PO_LINE"
            ]
          },
          "existingRecordType": {
            "description": "Existing record type to match",
            "type": "string",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.EntityType",
            "additionalProperties": false,
            "enum": [
              "MARC_BIBLIOGRAPHIC",
              "MARC_HOLDINGS",
              "MARC_AUTHORITY",
              "EDIFACT_INVOICE",
              "DELIMITED",
              "INSTANCE",
              "HOLDINGS",
              "AUTHORITY",
              "ITEM",
              "ORDER",
              "INVOICE",
              "STATIC_VALUE",
              "PO_LINE"
            ]
          },
          "incomingMatchExpression": {
            "description": "Incoming data match expression definition",
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.MatchExpression",
            "additionalProperties": false,
            "properties": {
              "dataValueType": {
                "description": "Data value type",
                "type": "string",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "enum": [
                  "VALUE_FROM_RECORD",
                  "STATIC_VALUE"
                ]
              },
              "fields": {
                "description": "Only if dataValueType = VALUE_FROM_RECORD",
                "type": "array",
                "items": {
                  "type": "object",
                  "$schema": "http://json-schema.org/draft-04/schema#",
                  "description": "Record field definition for marc and non marc records",
                  "additionalProperties": false,
                  "properties": {
                    "label": {
                      "description": "Label from UI form which describes field or subfield in record",
                      "type": "string"
                    },
                    "value": {
                      "description": "Field or subfield name in record",
                      "type": "string",
                      "default": ""
                    }
                  },
                  "required": [
                    "label",
                    "value"
                  ]
                }
              },
              "staticValueDetails": {
                "description": "Static value details",
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "staticValueType": {
                    "description": "Static value type",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "TEXT",
                      "NUMBER",
                      "DATE_RANGE",
                      "EXACT_DATE"
                    ]
                  },
                  "text": {
                    "description": "Only if staticValueType = TEXT",
                    "type": "string"
                  },
                  "number": {
                    "description": "Only if staticValueType = NUMBER",
                    "type": "string"
                  },
                  "fromDate": {
                    "description": "Only if staticValueType = DATE_RANGE",
                    "type": "string",
                    "format": "date-time"
                  },
                  "toDate": {
                    "description": "Only if staticValueType = DATE_RANGE",
                    "type": "string",
                    "format": "date-time"
                  },
                  "exactDate": {
                    "description": "Only if staticValueType = EXACT_DATE",
                    "type": "string",
                    "format": "date-time"
                  }
                }
              },
              "qualifier": {
                "description": "Qualifier for data which will be used in matching, optional",
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "qualifierType": {
                    "description": "Qualifier type",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "BEGINS_WITH",
                      "ENDS_WITH",
                      "CONTAINS"
                    ]
                  },
                  "qualifierValue": {
                    "description": "Qualifier value, only if qualifierType is specified",
                    "type": "string"
                  },
                  "comparisonPart": {
                    "description": "Part of the value to compare",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "NUMERICS_ONLY",
                      "ALPHANUMERICS_ONLY"
                    ]
                  }
                }
              }
            },
            "required": [
              "dataValueType"
            ]
          },
          "matchCriterion": {
            "description": "Matching criteria",
            "type": "string",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "enum": [
              "EXACTLY_MATCHES",
              "EXISTING_VALUE_CONTAINS_INCOMING_VALUE",
              "INCOMING_VALUE_CONTAINS_EXISTING_VALUE",
              "EXISTING_VALUE_BEGINS_WITH_INCOMING_VALUE",
              "INCOMING_VALUE_BEGINS_WITH_EXISTING_VALUE",
              "EXISTING_VALUE_ENDS_WITH_INCOMING_VALUE",
              "INCOMING_VALUE_ENDS_WITH_EXISTING_VALUE"
            ]
          },
          "existingMatchExpression": {
            "description": "Existing data match expression definition",
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.MatchExpression",
            "additionalProperties": false,
            "properties": {
              "dataValueType": {
                "description": "Data value type",
                "type": "string",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "enum": [
                  "VALUE_FROM_RECORD",
                  "STATIC_VALUE"
                ]
              },
              "fields": {
                "description": "Only if dataValueType = VALUE_FROM_RECORD",
                "type": "array",
                "items": {
                  "type": "object",
                  "$schema": "http://json-schema.org/draft-04/schema#",
                  "description": "Record field definition for marc and non marc records",
                  "additionalProperties": false,
                  "properties": {
                    "label": {
                      "description": "Label from UI form which describes field or subfield in record",
                      "type": "string"
                    },
                    "value": {
                      "description": "Field or subfield name in record",
                      "type": "string",
                      "default": ""
                    }
                  },
                  "required": [
                    "label",
                    "value"
                  ]
                }
              },
              "staticValueDetails": {
                "description": "Static value details",
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "staticValueType": {
                    "description": "Static value type",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "TEXT",
                      "NUMBER",
                      "DATE_RANGE",
                      "EXACT_DATE"
                    ]
                  },
                  "text": {
                    "description": "Only if staticValueType = TEXT",
                    "type": "string"
                  },
                  "number": {
                    "description": "Only if staticValueType = NUMBER",
                    "type": "string"
                  },
                  "fromDate": {
                    "description": "Only if staticValueType = DATE_RANGE",
                    "type": "string",
                    "format": "date-time"
                  },
                  "toDate": {
                    "description": "Only if staticValueType = DATE_RANGE",
                    "type": "string",
                    "format": "date-time"
                  },
                  "exactDate": {
                    "description": "Only if staticValueType = EXACT_DATE",
                    "type": "string",
                    "format": "date-time"
                  }
                }
              },
              "qualifier": {
                "description": "Qualifier for data which will be used in matching, optional",
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "qualifierType": {
                    "description": "Qualifier type",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "BEGINS_WITH",
                      "ENDS_WITH",
                      "CONTAINS"
                    ]
                  },
                  "qualifierValue": {
                    "description": "Qualifier value, only if qualifierType is specified",
                    "type": "string"
                  },
                  "comparisonPart": {
                    "description": "Part of the value to compare",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "NUMERICS_ONLY",
                      "ALPHANUMERICS_ONLY"
                    ]
                  }
                }
              }
            },
            "required": [
              "dataValueType"
            ]
          },
          "booleanOperation": {
            "description": "Used to add sub-matches to an existing match profile",
            "type": "string",
            "enum": [
              "AND",
              "AND NOT",
              "OR"
            ]
          }
        },
        "required": [
          "incomingRecordType",
          "existingRecordType",
          "incomingMatchExpression",
          "matchCriterion",
          "existingMatchExpression"
        ]
      }
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Match Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "firstName": {
          "description": "User first name",
          "type": "string"
        },
        "lastName": {
          "description": "User last name",
          "type": "string"
        },
        "userName": {
          "description": "User name (nickname)",
          "type": "string"
        }
      }
    },
    "parentProfiles": {
      "description": "Associated parent profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "childProfiles": {
      "description": "Associated children profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "$ref": "profileSnapshotWrapper.json",
        "type": "object"
      }
    },
    "hidden": {
      "description": "Flag indicates that the Match Profile will be hidden on UI",
      "type": "boolean",
      "default": false
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "required": [
    "name",
    "incomingRecordType",
    "existingRecordType"
  ]
}

Example:

{
  "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
  "name": "POL-MARC",
  "description": "Use for POL in 990 p",
  "tags": {
    "tagList": [
      "pol"
    ]
  },
  "incomingRecordType": "MARC_BIBLIOGRAPHIC",
  "existingRecordType": "ORDER",
  "matchDetails": [
    {
      "incomingRecordType": "MARC_BIBLIOGRAPHIC",
      "existingRecordType": "ORDER",
      "incomingMatchExpression": {
        "dataValueType": "VALUE_FROM_RECORD",
        "fields": [
          {
            "label": "field",
            "value": "990"
          },
          {
            "label": "indicator1",
            "value": " "
          },
          {
            "label": "indicator2",
            "value": " "
          },
          {
            "label": "recordSubfield",
            "value": "p"
          }
        ]
      },
      "matchCriterion": "EXACTLY_MATCHES",
      "existingMatchExpression": {
        "dataValueType": "VALUE_FROM_RECORD",
        "fields": [
          {
            "label": "field",
            "value": "PO_LINE_NUMBER"
          }
        ]
      }
    }
  ],
  "userInfo": {
    "firstName": "Jane",
    "lastName": "Doe",
    "userName": "@janedoe"
  },
     "parentProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
     "childProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
  "metadata": {
    "createdDate": "2018-10-30T12:41:22.000",
    "createdByUserId": "",
    "createdByUsername": "@janedoe",
    "updatedDate": "2018-11-02T12:09:51.000",
    "updatedByUserId": "",
    "updatedByUsername": "@janedoe"
  }
}

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)
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Match Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profile": {
      "description": "Match Profile object",
      "javaType": "org.folio.rest.jaxrs.model.MatchProfile"
    },
    "addedRelations": {
      "description": "Match profile added relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "deletedRelations": {
      "description": "Match profile deleted relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    }
  },
  "required": [
    "profile"
  ]
}

Example:

{
  "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
  "name": "POL-MARC",
  "description": "Use for POL in 990 p",
  "tags": {
    "tagList": [
      "pol"
    ]
  },
  "incomingRecordType": "MARC_BIBLIOGRAPHIC",
  "existingRecordType": "ORDER",
  "matchDetails": [
    {
      "incomingRecordType": "MARC_BIBLIOGRAPHIC",
      "existingRecordType": "ORDER",
      "incomingMatchExpression": {
        "dataValueType": "VALUE_FROM_RECORD",
        "fields": [
          {
            "label": "field",
            "value": "990"
          },
          {
            "label": "indicator1",
            "value": " "
          },
          {
            "label": "indicator2",
            "value": " "
          },
          {
            "label": "recordSubfield",
            "value": "p"
          }
        ]
      },
      "matchCriterion": "EXACTLY_MATCHES",
      "existingMatchExpression": {
        "dataValueType": "VALUE_FROM_RECORD",
        "fields": [
          {
            "label": "field",
            "value": "PO_LINE_NUMBER"
          }
        ]
      }
    }
  ],
  "userInfo": {
    "firstName": "Jane",
    "lastName": "Doe",
    "userName": "@janedoe"
  },
     "parentProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
     "childProfiles":[
        {
           "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
           "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
           "contentType":"JOB_PROFILE",
           "content":{
              "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
              "name":"Load vendor order records",
              "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
              "dataTypes":[
                 "MARC"
              ],
              "tags":{
                 "tagList":[
                    "acq",
                    "daily"
                 ]
              }
           }
        }
     ],
  "metadata": {
    "createdDate": "2018-10-30T12:41:22.000",
    "createdByUserId": "",
    "createdByUsername": "@janedoe",
    "updatedDate": "2018-11-02T12:09:51.000",
    "updatedByUserId": "",
    "updatedByUsername": "@janedoe"
  }
}

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "name": {
      "description": "Match Profile name",
      "type": "string"
    },
    "description": {
      "description": "Match Profile description",
      "type": "string"
    },
    "tags": {
      "description": "Set of tags assigned to the current Match Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "incomingRecordType": {
      "description": "Incoming record type",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.EntityType",
      "additionalProperties": false,
      "enum": [
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY",
        "EDIFACT_INVOICE",
        "DELIMITED",
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "STATIC_VALUE",
        "PO_LINE"
      ]
    },
    "existingRecordType": {
      "description": "Existing record type to match",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.EntityType",
      "additionalProperties": false,
      "enum": [
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY",
        "EDIFACT_INVOICE",
        "DELIMITED",
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "STATIC_VALUE",
        "PO_LINE"
      ]
    },
    "matchDetails": {
      "description": "Match profile details list",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Match profile detail",
        "additionalProperties": false,
        "properties": {
          "incomingRecordType": {
            "description": "Incoming record type",
            "type": "string",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.EntityType",
            "additionalProperties": false,
            "enum": [
              "MARC_BIBLIOGRAPHIC",
              "MARC_HOLDINGS",
              "MARC_AUTHORITY",
              "EDIFACT_INVOICE",
              "DELIMITED",
              "INSTANCE",
              "HOLDINGS",
              "AUTHORITY",
              "ITEM",
              "ORDER",
              "INVOICE",
              "STATIC_VALUE",
              "PO_LINE"
            ]
          },
          "existingRecordType": {
            "description": "Existing record type to match",
            "type": "string",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.EntityType",
            "additionalProperties": false,
            "enum": [
              "MARC_BIBLIOGRAPHIC",
              "MARC_HOLDINGS",
              "MARC_AUTHORITY",
              "EDIFACT_INVOICE",
              "DELIMITED",
              "INSTANCE",
              "HOLDINGS",
              "AUTHORITY",
              "ITEM",
              "ORDER",
              "INVOICE",
              "STATIC_VALUE",
              "PO_LINE"
            ]
          },
          "incomingMatchExpression": {
            "description": "Incoming data match expression definition",
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.MatchExpression",
            "additionalProperties": false,
            "properties": {
              "dataValueType": {
                "description": "Data value type",
                "type": "string",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "enum": [
                  "VALUE_FROM_RECORD",
                  "STATIC_VALUE"
                ]
              },
              "fields": {
                "description": "Only if dataValueType = VALUE_FROM_RECORD",
                "type": "array",
                "items": {
                  "type": "object",
                  "$schema": "http://json-schema.org/draft-04/schema#",
                  "description": "Record field definition for marc and non marc records",
                  "additionalProperties": false,
                  "properties": {
                    "label": {
                      "description": "Label from UI form which describes field or subfield in record",
                      "type": "string"
                    },
                    "value": {
                      "description": "Field or subfield name in record",
                      "type": "string",
                      "default": ""
                    }
                  },
                  "required": [
                    "label",
                    "value"
                  ]
                }
              },
              "staticValueDetails": {
                "description": "Static value details",
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "staticValueType": {
                    "description": "Static value type",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "TEXT",
                      "NUMBER",
                      "DATE_RANGE",
                      "EXACT_DATE"
                    ]
                  },
                  "text": {
                    "description": "Only if staticValueType = TEXT",
                    "type": "string"
                  },
                  "number": {
                    "description": "Only if staticValueType = NUMBER",
                    "type": "string"
                  },
                  "fromDate": {
                    "description": "Only if staticValueType = DATE_RANGE",
                    "type": "string",
                    "format": "date-time"
                  },
                  "toDate": {
                    "description": "Only if staticValueType = DATE_RANGE",
                    "type": "string",
                    "format": "date-time"
                  },
                  "exactDate": {
                    "description": "Only if staticValueType = EXACT_DATE",
                    "type": "string",
                    "format": "date-time"
                  }
                }
              },
              "qualifier": {
                "description": "Qualifier for data which will be used in matching, optional",
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "qualifierType": {
                    "description": "Qualifier type",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "BEGINS_WITH",
                      "ENDS_WITH",
                      "CONTAINS"
                    ]
                  },
                  "qualifierValue": {
                    "description": "Qualifier value, only if qualifierType is specified",
                    "type": "string"
                  },
                  "comparisonPart": {
                    "description": "Part of the value to compare",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "NUMERICS_ONLY",
                      "ALPHANUMERICS_ONLY"
                    ]
                  }
                }
              }
            },
            "required": [
              "dataValueType"
            ]
          },
          "matchCriterion": {
            "description": "Matching criteria",
            "type": "string",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "enum": [
              "EXACTLY_MATCHES",
              "EXISTING_VALUE_CONTAINS_INCOMING_VALUE",
              "INCOMING_VALUE_CONTAINS_EXISTING_VALUE",
              "EXISTING_VALUE_BEGINS_WITH_INCOMING_VALUE",
              "INCOMING_VALUE_BEGINS_WITH_EXISTING_VALUE",
              "EXISTING_VALUE_ENDS_WITH_INCOMING_VALUE",
              "INCOMING_VALUE_ENDS_WITH_EXISTING_VALUE"
            ]
          },
          "existingMatchExpression": {
            "description": "Existing data match expression definition",
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.MatchExpression",
            "additionalProperties": false,
            "properties": {
              "dataValueType": {
                "description": "Data value type",
                "type": "string",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "enum": [
                  "VALUE_FROM_RECORD",
                  "STATIC_VALUE"
                ]
              },
              "fields": {
                "description": "Only if dataValueType = VALUE_FROM_RECORD",
                "type": "array",
                "items": {
                  "type": "object",
                  "$schema": "http://json-schema.org/draft-04/schema#",
                  "description": "Record field definition for marc and non marc records",
                  "additionalProperties": false,
                  "properties": {
                    "label": {
                      "description": "Label from UI form which describes field or subfield in record",
                      "type": "string"
                    },
                    "value": {
                      "description": "Field or subfield name in record",
                      "type": "string",
                      "default": ""
                    }
                  },
                  "required": [
                    "label",
                    "value"
                  ]
                }
              },
              "staticValueDetails": {
                "description": "Static value details",
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "staticValueType": {
                    "description": "Static value type",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "TEXT",
                      "NUMBER",
                      "DATE_RANGE",
                      "EXACT_DATE"
                    ]
                  },
                  "text": {
                    "description": "Only if staticValueType = TEXT",
                    "type": "string"
                  },
                  "number": {
                    "description": "Only if staticValueType = NUMBER",
                    "type": "string"
                  },
                  "fromDate": {
                    "description": "Only if staticValueType = DATE_RANGE",
                    "type": "string",
                    "format": "date-time"
                  },
                  "toDate": {
                    "description": "Only if staticValueType = DATE_RANGE",
                    "type": "string",
                    "format": "date-time"
                  },
                  "exactDate": {
                    "description": "Only if staticValueType = EXACT_DATE",
                    "type": "string",
                    "format": "date-time"
                  }
                }
              },
              "qualifier": {
                "description": "Qualifier for data which will be used in matching, optional",
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "qualifierType": {
                    "description": "Qualifier type",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "BEGINS_WITH",
                      "ENDS_WITH",
                      "CONTAINS"
                    ]
                  },
                  "qualifierValue": {
                    "description": "Qualifier value, only if qualifierType is specified",
                    "type": "string"
                  },
                  "comparisonPart": {
                    "description": "Part of the value to compare",
                    "type": "string",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "additionalProperties": false,
                    "enum": [
                      "NUMERICS_ONLY",
                      "ALPHANUMERICS_ONLY"
                    ]
                  }
                }
              }
            },
            "required": [
              "dataValueType"
            ]
          },
          "booleanOperation": {
            "description": "Used to add sub-matches to an existing match profile",
            "type": "string",
            "enum": [
              "AND",
              "AND NOT",
              "OR"
            ]
          }
        },
        "required": [
          "incomingRecordType",
          "existingRecordType",
          "incomingMatchExpression",
          "matchCriterion",
          "existingMatchExpression"
        ]
      }
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Match Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "firstName": {
          "description": "User first name",
          "type": "string"
        },
        "lastName": {
          "description": "User last name",
          "type": "string"
        },
        "userName": {
          "description": "User name (nickname)",
          "type": "string"
        }
      }
    },
    "parentProfiles": {
      "description": "Associated parent profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "childProfiles": {
      "description": "Associated children profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "$ref": "profileSnapshotWrapper.json",
        "type": "object"
      }
    },
    "hidden": {
      "description": "Flag indicates that the Match Profile will be hidden on UI",
      "type": "boolean",
      "default": false
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "required": [
    "name",
    "incomingRecordType",
    "existingRecordType"
  ]
}

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 409

Optimistic locking version conflict

Body

Media type: text/plain

Type: any

Example:

version conflict

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)

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
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Mapping Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profile": {
      "description": "Mapping Profile object",
      "javaType": "org.folio.rest.jaxrs.model.MappingProfile"
    },
    "addedRelations": {
      "description": "Mapping profile added relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "deletedRelations": {
      "description": "Mapping profile deleted relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    }
  },
  "required": [
    "profile"
  ]
}

Example:

{
  "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
  "name": "MARC brief instance 1",
  "description": "Preliminary instance from CoolVendor MARC order record",
  "tags": {
    "tagList": [
      "cool-vendor"
    ]
  },
  "incomingRecordType": "MARC_BIBLIOGRAPHIC",
  "existingRecordType": "INSTANCE",
  "userInfo": {
    "firstName": "Jane",
    "lastName": "Doe",
    "userName": "@janedoe"
  },
  "marcFieldProtectionSettings": [
    {
      "id": "2d706874-8a10-4d3e-a190-33c301d157e3",
      "field": "050",
      "indicator1": "",
      "indicator2": "",
      "subfield": "",
      "data": "*",
      "source": "USER",
      "override": true,
      "metadata": {
        "createdDate": "2020-08-13T14:44:07Z",
        "createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "createdByUsername": "@janedoe",
        "updatedDate": "2020-08-13T14:44:07Z",
        "updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "updatedByUsername": "@janedoe"
      }
    },
    {
      "id": "82d0b904-f8b0-4cc2-b238-7d8cddef7b7e",
      "field": "700",
      "indicator1": "",
      "indicator2": "",
      "subfield": "*",
      "data": "*",
      "source": "USER",
      "override": false,
      "metadata": {
        "createdDate": "2020-08-13T14:44:07Z",
        "createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "createdByUsername": "@janedoe",
        "updatedDate": "2020-08-13T14:44:07Z",
        "updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "updatedByUsername": "@janedoe"
      }
    }
  ],
  "parentProfiles": [
    {
      "id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
      "profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
      "contentType": "JOB_PROFILE",
      "content": {
        "id": "dc4ac439-57ae-4779-872e-1892b163bb47",
        "name": "Load vendor order records",
        "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
        "dataTypes": [
          "MARC_BIB"
        ],
        "tags": {
          "tagList": [
             "acq",
             "daily"
          ]
        }
      }
    }
  ],
  "childProfiles": [
    {
      "id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
      "profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
      "contentType": "JOB_PROFILE",
      "content": {
        "id": "dc4ac439-57ae-4779-872e-1892b163bb47",
        "name": "Load vendor order records",
        "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
        "dataTypes": [
          "MARC_BIB"
        ],
        "tags": {
          "tagList": [
             "acq",
             "daily"
          ]
        }
      }
    }
  ],
  "metadata": {
    "createdDate": "2019-01-01T11:550:09Z",
    "createdByUserId": "",
    "createdByUsername": "",
    "updatedDate": "2019-01-12T14:21:11Z",
    "updatedByUserId": "",
    "updatedByUsername": ""
  }
}

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",
  "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
  • showHidden: (boolean - default: false)

    selection condition of Mapping Profiles by field 'hidden'

    Example:

    false
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • query: (string)

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

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

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)

    How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords

    Example:

    none
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

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

    Example:

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

    Limit the number of elements returned in the response

    Example:

    10

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",
      "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

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "name": {
      "description": "Mapping Profile name",
      "type": "string"
    },
    "description": {
      "description": "Mapping Profile description",
      "type": "string"
    },
    "tags": {
      "description": "Set of tags assigned to the current Mapping Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "incomingRecordType": {
      "description": "Incoming record type",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.EntityType",
      "additionalProperties": false,
      "enum": [
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY",
        "EDIFACT_INVOICE",
        "DELIMITED",
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "STATIC_VALUE",
        "PO_LINE"
      ]
    },
    "existingRecordType": {
      "description": "FOLIO record type to mapping",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.EntityType",
      "additionalProperties": false,
      "enum": [
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY",
        "EDIFACT_INVOICE",
        "DELIMITED",
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "STATIC_VALUE",
        "PO_LINE"
      ]
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Mapping Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "firstName": {
          "description": "User first name",
          "type": "string"
        },
        "lastName": {
          "description": "User last name",
          "type": "string"
        },
        "userName": {
          "description": "User name (nickname)",
          "type": "string"
        }
      }
    },
    "marcFieldProtectionSettings": {
      "description": "MARC field protection settings",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.MarcFieldProtectionSetting>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "MARC field protection setting schema",
        "javaType": "org.folio.rest.jaxrs.model.MarcFieldProtectionSetting",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "MARC field protection setting id",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "field": {
            "description": "Field",
            "type": "string"
          },
          "indicator1": {
            "description": "Indicator 1",
            "type": "string"
          },
          "indicator2": {
            "description": "Indicator 2",
            "type": "string"
          },
          "subfield": {
            "description": "Subfield",
            "type": "string"
          },
          "data": {
            "description": "Data",
            "type": "string"
          },
          "source": {
            "description": "Source",
            "type": "string",
            "enum": [
              "SYSTEM",
              "USER"
            ]
          },
          "override": {
            "description": "Indicates whether field can be overridden or not, always false for SYSTEM protection settings",
            "type": "boolean",
            "default": false
          },
          "metadata": {
            "description": "Metadata provided by the server",
            "type": "object",
            "readonly": true,
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "metadata.schema",
            "title": "Metadata Schema",
            "properties": {
              "createdDate": {
                "description": "Date and time when the record was created",
                "type": "string",
                "format": "date-time"
              },
              "createdByUserId": {
                "description": "ID of the user who created the record (when available)",
                "type": "string",
                "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
              },
              "createdByUsername": {
                "description": "Username of the user who created the record (when available)",
                "type": "string"
              },
              "updatedDate": {
                "description": "Date and time when the record was last updated",
                "type": "string",
                "format": "date-time"
              },
              "updatedByUserId": {
                "description": "ID of the user who last updated the record (when available)",
                "type": "string",
                "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
              },
              "updatedByUsername": {
                "description": "Username of the user who last updated the record (when available)",
                "type": "string"
              }
            },
            "additionalProperties": false,
            "required": [
              "createdDate"
            ]
          }
        },
        "required": [
          "field"
        ]
      }
    },
    "parentProfiles": {
      "description": "Associated parent profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "childProfiles": {
      "description": "Associated children profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "$ref": "profileSnapshotWrapper.json",
        "type": "object"
      }
    },
    "mappingDetails": {
      "description": "Mapping details with mapping rules",
      "$ref": "mapping-profile-detail/mappingDetail.json"
    },
    "hidden": {
      "description": "Flag indicates that the Mapping Profile will be hidden on UI",
      "type": "boolean",
      "default": false
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "required": [
    "name",
    "incomingRecordType"
  ]
}

Example:

{
  "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
  "name": "MARC brief instance 1",
  "description": "Preliminary instance from CoolVendor MARC order record",
  "tags": {
    "tagList": [
      "cool-vendor"
    ]
  },
  "incomingRecordType": "MARC_BIBLIOGRAPHIC",
  "existingRecordType": "INSTANCE",
  "userInfo": {
    "firstName": "Jane",
    "lastName": "Doe",
    "userName": "@janedoe"
  },
  "marcFieldProtectionSettings": [
    {
      "id": "2d706874-8a10-4d3e-a190-33c301d157e3",
      "field": "050",
      "indicator1": "",
      "indicator2": "",
      "subfield": "",
      "data": "*",
      "source": "USER",
      "override": true,
      "metadata": {
        "createdDate": "2020-08-13T14:44:07Z",
        "createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "createdByUsername": "@janedoe",
        "updatedDate": "2020-08-13T14:44:07Z",
        "updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "updatedByUsername": "@janedoe"
      }
    },
    {
      "id": "82d0b904-f8b0-4cc2-b238-7d8cddef7b7e",
      "field": "700",
      "indicator1": "",
      "indicator2": "",
      "subfield": "*",
      "data": "*",
      "source": "USER",
      "override": false,
      "metadata": {
        "createdDate": "2020-08-13T14:44:07Z",
        "createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "createdByUsername": "@janedoe",
        "updatedDate": "2020-08-13T14:44:07Z",
        "updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "updatedByUsername": "@janedoe"
      }
    }
  ],
  "parentProfiles": [
    {
      "id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
      "profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
      "contentType": "JOB_PROFILE",
      "content": {
        "id": "dc4ac439-57ae-4779-872e-1892b163bb47",
        "name": "Load vendor order records",
        "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
        "dataTypes": [
          "MARC_BIB"
        ],
        "tags": {
          "tagList": [
             "acq",
             "daily"
          ]
        }
      }
    }
  ],
  "childProfiles": [
    {
      "id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
      "profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
      "contentType": "JOB_PROFILE",
      "content": {
        "id": "dc4ac439-57ae-4779-872e-1892b163bb47",
        "name": "Load vendor order records",
        "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
        "dataTypes": [
          "MARC_BIB"
        ],
        "tags": {
          "tagList": [
             "acq",
             "daily"
          ]
        }
      }
    }
  ],
  "metadata": {
    "createdDate": "2019-01-01T11:550:09Z",
    "createdByUserId": "",
    "createdByUsername": "",
    "updatedDate": "2019-01-12T14:21:11Z",
    "updatedByUserId": "",
    "updatedByUsername": ""
  }
}

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)
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Mapping Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profile": {
      "description": "Mapping Profile object",
      "javaType": "org.folio.rest.jaxrs.model.MappingProfile"
    },
    "addedRelations": {
      "description": "Mapping profile added relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "deletedRelations": {
      "description": "Mapping profile deleted relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    }
  },
  "required": [
    "profile"
  ]
}

Example:

{
  "id": "1kl9m60r-fvb7-45n0-23c0-13n8gbkl7091",
  "name": "MARC brief instance 1",
  "description": "Preliminary instance from CoolVendor MARC order record",
  "tags": {
    "tagList": [
      "cool-vendor"
    ]
  },
  "incomingRecordType": "MARC_BIBLIOGRAPHIC",
  "existingRecordType": "INSTANCE",
  "userInfo": {
    "firstName": "Jane",
    "lastName": "Doe",
    "userName": "@janedoe"
  },
  "marcFieldProtectionSettings": [
    {
      "id": "2d706874-8a10-4d3e-a190-33c301d157e3",
      "field": "050",
      "indicator1": "",
      "indicator2": "",
      "subfield": "",
      "data": "*",
      "source": "USER",
      "override": true,
      "metadata": {
        "createdDate": "2020-08-13T14:44:07Z",
        "createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "createdByUsername": "@janedoe",
        "updatedDate": "2020-08-13T14:44:07Z",
        "updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "updatedByUsername": "@janedoe"
      }
    },
    {
      "id": "82d0b904-f8b0-4cc2-b238-7d8cddef7b7e",
      "field": "700",
      "indicator1": "",
      "indicator2": "",
      "subfield": "*",
      "data": "*",
      "source": "USER",
      "override": false,
      "metadata": {
        "createdDate": "2020-08-13T14:44:07Z",
        "createdByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "createdByUsername": "@janedoe",
        "updatedDate": "2020-08-13T14:44:07Z",
        "updatedByUserId": "201e6a06-b60d-4618-bfcb-a551cbdc9f2f",
        "updatedByUsername": "@janedoe"
      }
    }
  ],
  "parentProfiles": [
    {
      "id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
      "profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
      "contentType": "JOB_PROFILE",
      "content": {
        "id": "dc4ac439-57ae-4779-872e-1892b163bb47",
        "name": "Load vendor order records",
        "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
        "dataTypes": [
          "MARC_BIB"
        ],
        "tags": {
          "tagList": [
             "acq",
             "daily"
          ]
        }
      }
    }
  ],
  "childProfiles": [
    {
      "id": "0fc0ba76-d560-4541-826f-f8bdd3b09841",
      "profileId": "dc4ac439-57ae-4779-872e-1892b163bb47",
      "contentType": "JOB_PROFILE",
      "content": {
        "id": "dc4ac439-57ae-4779-872e-1892b163bb47",
        "name": "Load vendor order records",
        "description": "Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
        "dataTypes": [
          "MARC_BIB"
        ],
        "tags": {
          "tagList": [
             "acq",
             "daily"
          ]
        }
      }
    }
  ],
  "metadata": {
    "createdDate": "2019-01-01T11:550:09Z",
    "createdByUserId": "",
    "createdByUsername": "",
    "updatedDate": "2019-01-12T14:21:11Z",
    "updatedByUserId": "",
    "updatedByUsername": ""
  }
}

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "name": {
      "description": "Mapping Profile name",
      "type": "string"
    },
    "description": {
      "description": "Mapping Profile description",
      "type": "string"
    },
    "tags": {
      "description": "Set of tags assigned to the current Mapping Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "incomingRecordType": {
      "description": "Incoming record type",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.EntityType",
      "additionalProperties": false,
      "enum": [
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY",
        "EDIFACT_INVOICE",
        "DELIMITED",
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "STATIC_VALUE",
        "PO_LINE"
      ]
    },
    "existingRecordType": {
      "description": "FOLIO record type to mapping",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.EntityType",
      "additionalProperties": false,
      "enum": [
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY",
        "EDIFACT_INVOICE",
        "DELIMITED",
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "STATIC_VALUE",
        "PO_LINE"
      ]
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Mapping Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "firstName": {
          "description": "User first name",
          "type": "string"
        },
        "lastName": {
          "description": "User last name",
          "type": "string"
        },
        "userName": {
          "description": "User name (nickname)",
          "type": "string"
        }
      }
    },
    "marcFieldProtectionSettings": {
      "description": "MARC field protection settings",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.MarcFieldProtectionSetting>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "MARC field protection setting schema",
        "javaType": "org.folio.rest.jaxrs.model.MarcFieldProtectionSetting",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "MARC field protection setting id",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "field": {
            "description": "Field",
            "type": "string"
          },
          "indicator1": {
            "description": "Indicator 1",
            "type": "string"
          },
          "indicator2": {
            "description": "Indicator 2",
            "type": "string"
          },
          "subfield": {
            "description": "Subfield",
            "type": "string"
          },
          "data": {
            "description": "Data",
            "type": "string"
          },
          "source": {
            "description": "Source",
            "type": "string",
            "enum": [
              "SYSTEM",
              "USER"
            ]
          },
          "override": {
            "description": "Indicates whether field can be overridden or not, always false for SYSTEM protection settings",
            "type": "boolean",
            "default": false
          },
          "metadata": {
            "description": "Metadata provided by the server",
            "type": "object",
            "readonly": true,
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "metadata.schema",
            "title": "Metadata Schema",
            "properties": {
              "createdDate": {
                "description": "Date and time when the record was created",
                "type": "string",
                "format": "date-time"
              },
              "createdByUserId": {
                "description": "ID of the user who created the record (when available)",
                "type": "string",
                "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
              },
              "createdByUsername": {
                "description": "Username of the user who created the record (when available)",
                "type": "string"
              },
              "updatedDate": {
                "description": "Date and time when the record was last updated",
                "type": "string",
                "format": "date-time"
              },
              "updatedByUserId": {
                "description": "ID of the user who last updated the record (when available)",
                "type": "string",
                "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
              },
              "updatedByUsername": {
                "description": "Username of the user who last updated the record (when available)",
                "type": "string"
              }
            },
            "additionalProperties": false,
            "required": [
              "createdDate"
            ]
          }
        },
        "required": [
          "field"
        ]
      }
    },
    "parentProfiles": {
      "description": "Associated parent profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "childProfiles": {
      "description": "Associated children profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "$ref": "profileSnapshotWrapper.json",
        "type": "object"
      }
    },
    "mappingDetails": {
      "description": "Mapping details with mapping rules",
      "$ref": "mapping-profile-detail/mappingDetail.json"
    },
    "hidden": {
      "description": "Flag indicates that the Mapping Profile will be hidden on UI",
      "type": "boolean",
      "default": false
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "required": [
    "name",
    "incomingRecordType"
  ]
}

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 409

Optimistic locking version conflict

Body

Media type: text/plain

Type: any

Example:

version conflict

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)

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
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Action Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profile": {
      "description": "Action Profile object",
      "javaType": "org.folio.rest.jaxrs.model.ActionProfile"
    },
    "addedRelations": {
      "description": "Action profile added relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "deletedRelations": {
      "description": "Action profile deleted relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    }
  },
  "required": [
    "profile"
  ]
}

Example:

{
   "id":"cf3d7393-8534-44fb-93fd-7495d220f4f6",
   "name":"Create preliminary instance",
   "description":"Brief instance created by order, will be updated later",
   "tags":{
      "tagList":[
         "acq-related",
         "preliminary"
      ]
   },
   "reactTo":"NON-MATCH",
   "action":"CREATE",
   "folioRecord":"INSTANCE",
   "remove9Subfields":false,
   "userInfo":{
      "firstName":"DIKU",
      "lastName":"ADMINISTRATOR",
      "userName":"diku_admin"
   },
   "parentProfiles":[
      {
         "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
         "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
         "contentType":"JOB_PROFILE",
         "content":{
            "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
            "name":"Load vendor order records",
            "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
            "dataTypes":[
               "MARC_BIB"
            ],
            "tags":{
               "tagList":[
                  "acq",
                  "daily"
               ]
            }
         }
      }
   ],
   "childProfiles":[
      {
         "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
         "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
         "contentType":"JOB_PROFILE",
         "content":{
            "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
            "name":"Load vendor order records",
            "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
            "dataTypes":[
               "MARC_BIB"
            ],
            "tags":{
               "tagList":[
                  "acq",
                  "daily"
               ]
            }
         }
      }
   ],
   "metadata":{
      "createdDate":"2018-10-30T12:41:22.000",
      "createdByUserId":"",
      "createdByUsername":"",
      "updatedDate":"2018-11-02T12:09:51.000",
      "updatedByUserId":"",
      "updatedByUsername":""
   }
}

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",
   "remove9Subfields":false,
   "userInfo":{
      "firstName":"DIKU",
      "lastName":"ADMINISTRATOR",
      "userName":"diku_admin"
   },
   "parentProfiles":[
      {
         "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
         "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
         "contentType":"JOB_PROFILE",
         "content":{
            "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
            "name":"Load vendor order records",
            "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
            "dataTypes":[
               "MARC_BIB"
            ],
            "tags":{
               "tagList":[
                  "acq",
                  "daily"
               ]
            }
         }
      }
   ],
   "childProfiles":[
      {
         "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
         "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
         "contentType":"JOB_PROFILE",
         "content":{
            "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
            "name":"Load vendor order records",
            "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
            "dataTypes":[
               "MARC_BIB"
            ],
            "tags":{
               "tagList":[
                  "acq",
                  "daily"
               ]
            }
         }
      }
   ],
   "metadata":{
      "createdDate":"2018-10-30T12:41:22.000",
      "createdByUserId":"",
      "createdByUsername":"",
      "updatedDate":"2018-11-02T12:09:51.000",
      "updatedByUserId":"",
      "updatedByUsername":""
   }
}

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
  • showHidden: (boolean - default: false)

    selection condition of Action Profiles by field 'hidden'

    Example:

    false
  • withRelations: (boolean - default: false)

    Load profile with related child and parent profiles

    Example:

    false
  • query: (string)

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

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

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    userInfo.lastName=Doe
    
  • totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)

    How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords

    Example:

    none
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

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

    Example:

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

    Limit the number of elements returned in the response

    Example:

    10

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",
      "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

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "name": {
      "description": "Action Profile name",
      "type": "string"
    },
    "description": {
      "description": "Action Profile description",
      "type": "string"
    },
    "tags": {
      "description": "Set of tags assigned to the current Action Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "enum": [
        "MATCH",
        "NON-MATCH"
      ]
    },
    "action": {
      "description": "Action type. CREATE allowed for all record types. UPDATE allowed for all record types except Orders, Invoices. DELETE allowed for all records types. MODIFY allowed for MARC records only",
      "type": "string",
      "enum": [
        "CREATE",
        "UPDATE",
        "DELETE",
        "MODIFY"
      ]
    },
    "folioRecord": {
      "description": "Record type",
      "type": "string",
      "enum": [
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY"
      ]
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Action Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "firstName": {
          "description": "User first name",
          "type": "string"
        },
        "lastName": {
          "description": "User last name",
          "type": "string"
        },
        "userName": {
          "description": "User name (nickname)",
          "type": "string"
        }
      }
    },
    "parentProfiles": {
      "description": "Associated parent profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "childProfiles": {
      "description": "Associated children profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "$ref": "profileSnapshotWrapper.json",
        "type": "object"
      }
    },
    "hidden": {
      "description": "Flag indicates that the Action Profile will be hidden on UI",
      "type": "boolean",
      "default": false
    },
    "remove9Subfields": {
      "description": "Flag indicates that 9 subfield should be removed from all linkable MARC bib fields for Action Profile",
      "type": "boolean",
      "default": false
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "required": [
    "name",
    "action",
    "folioRecord"
  ]
}

Example:

{
   "id":"cf3d7393-8534-44fb-93fd-7495d220f4f6",
   "name":"Create preliminary instance",
   "description":"Brief instance created by order, will be updated later",
   "tags":{
      "tagList":[
         "acq-related",
         "preliminary"
      ]
   },
   "reactTo":"NON-MATCH",
   "action":"CREATE",
   "folioRecord":"INSTANCE",
   "remove9Subfields":false,
   "userInfo":{
      "firstName":"DIKU",
      "lastName":"ADMINISTRATOR",
      "userName":"diku_admin"
   },
   "parentProfiles":[
      {
         "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
         "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
         "contentType":"JOB_PROFILE",
         "content":{
            "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
            "name":"Load vendor order records",
            "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
            "dataTypes":[
               "MARC_BIB"
            ],
            "tags":{
               "tagList":[
                  "acq",
                  "daily"
               ]
            }
         }
      }
   ],
   "childProfiles":[
      {
         "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
         "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
         "contentType":"JOB_PROFILE",
         "content":{
            "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
            "name":"Load vendor order records",
            "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
            "dataTypes":[
               "MARC_BIB"
            ],
            "tags":{
               "tagList":[
                  "acq",
                  "daily"
               ]
            }
         }
      }
   ],
   "metadata":{
      "createdDate":"2018-10-30T12:41:22.000",
      "createdByUserId":"",
      "createdByUsername":"",
      "updatedDate":"2018-11-02T12:09:51.000",
      "updatedByUserId":"",
      "updatedByUsername":""
   }
}

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)
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Action Profile Update/Create schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Profile identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profile": {
      "description": "Action Profile object",
      "javaType": "org.folio.rest.jaxrs.model.ActionProfile"
    },
    "addedRelations": {
      "description": "Action profile added relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "deletedRelations": {
      "description": "Action profile deleted relations",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileAssociation>",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    }
  },
  "required": [
    "profile"
  ]
}

Example:

{
   "id":"cf3d7393-8534-44fb-93fd-7495d220f4f6",
   "name":"Create preliminary instance",
   "description":"Brief instance created by order, will be updated later",
   "tags":{
      "tagList":[
         "acq-related",
         "preliminary"
      ]
   },
   "reactTo":"NON-MATCH",
   "action":"CREATE",
   "folioRecord":"INSTANCE",
   "remove9Subfields":false,
   "userInfo":{
      "firstName":"DIKU",
      "lastName":"ADMINISTRATOR",
      "userName":"diku_admin"
   },
   "parentProfiles":[
      {
         "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
         "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
         "contentType":"JOB_PROFILE",
         "content":{
            "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
            "name":"Load vendor order records",
            "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
            "dataTypes":[
               "MARC_BIB"
            ],
            "tags":{
               "tagList":[
                  "acq",
                  "daily"
               ]
            }
         }
      }
   ],
   "childProfiles":[
      {
         "id":"0fc0ba76-d560-4541-826f-f8bdd3b09841",
         "profileId":"dc4ac439-57ae-4779-872e-1892b163bb47",
         "contentType":"JOB_PROFILE",
         "content":{
            "id":"dc4ac439-57ae-4779-872e-1892b163bb47",
            "name":"Load vendor order records",
            "description":"Ordered on vendor site; load MARC to create bib, holdings, item, and order; keep MARC",
            "dataTypes":[
               "MARC_BIB"
            ],
            "tags":{
               "tagList":[
                  "acq",
                  "daily"
               ]
            }
         }
      }
   ],
   "metadata":{
      "createdDate":"2018-10-30T12:41:22.000",
      "createdByUserId":"",
      "createdByUsername":"",
      "updatedDate":"2018-11-02T12:09:51.000",
      "updatedByUserId":"",
      "updatedByUsername":""
   }
}

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "name": {
      "description": "Action Profile name",
      "type": "string"
    },
    "description": {
      "description": "Action Profile description",
      "type": "string"
    },
    "tags": {
      "description": "Set of tags assigned to the current Action Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "type": "string",
      "enum": [
        "MATCH",
        "NON-MATCH"
      ]
    },
    "action": {
      "description": "Action type. CREATE allowed for all record types. UPDATE allowed for all record types except Orders, Invoices. DELETE allowed for all records types. MODIFY allowed for MARC records only",
      "type": "string",
      "enum": [
        "CREATE",
        "UPDATE",
        "DELETE",
        "MODIFY"
      ]
    },
    "folioRecord": {
      "description": "Record type",
      "type": "string",
      "enum": [
        "INSTANCE",
        "HOLDINGS",
        "AUTHORITY",
        "ITEM",
        "ORDER",
        "INVOICE",
        "MARC_BIBLIOGRAPHIC",
        "MARC_HOLDINGS",
        "MARC_AUTHORITY"
      ]
    },
    "userInfo": {
      "description": "First name, last name and username of the user, who updated the Action Profile",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "firstName": {
          "description": "User first name",
          "type": "string"
        },
        "lastName": {
          "description": "User last name",
          "type": "string"
        },
        "userName": {
          "description": "User name (nickname)",
          "type": "string"
        }
      }
    },
    "parentProfiles": {
      "description": "Associated parent profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "type": "object",
        "$ref": "./profileSnapshotWrapper.json"
      }
    },
    "childProfiles": {
      "description": "Associated children profiles. Not required field that uses only for batch update/create",
      "javaType": "java.util.List<org.folio.rest.jaxrs.model.ProfileSnapshotWrapper>",
      "items": {
        "$ref": "profileSnapshotWrapper.json",
        "type": "object"
      }
    },
    "hidden": {
      "description": "Flag indicates that the Action Profile will be hidden on UI",
      "type": "boolean",
      "default": false
    },
    "remove9Subfields": {
      "description": "Flag indicates that 9 subfield should be removed from all linkable MARC bib fields for Action Profile",
      "type": "boolean",
      "default": false
    },
    "metadata": {
      "description": "Metadata provided by the server",
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "required": [
    "name",
    "action",
    "folioRecord"
  ]
}

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 409

Optimistic locking version conflict

Body

Media type: text/plain

Type: any

Example:

version conflict

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)

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
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "masterProfileId": {
      "description": "Unique identifier of the 'master' profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "detailProfileId": {
      "description": "Unique identifier of the 'detail' profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "detail": {
      "description": "Detail profile content (plain Object)"
    },
    "triggered": {
      "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
      "type": "boolean",
      "default": false
    },
    "masterProfileType": {
      "description": "Type of master profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "detailProfileType": {
      "description": "Type of detail profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "masterWrapperId": {
      "description": "Unique identifier of the 'master' wrapper profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "detailWrapperId": {
      "description": "Unique identifier of the 'detail' wrapper profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "jobProfileId": {
      "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    }
  },
  "required": [
    "masterProfileId",
    "detailProfileId",
    "order"
  ]
}

Example:

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

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

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#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "masterProfileId": {
            "description": "Unique identifier of the 'master' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailProfileId": {
            "description": "Unique identifier of the 'detail' profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "order": {
            "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
            "type": "integer",
            "default": 0
          },
          "reactTo": {
            "description": "Non-match also used when there is no match profile in the job",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ReactToType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "MATCH",
              "NON_MATCH"
            ]
          },
          "detail": {
            "description": "Detail profile content (plain Object)"
          },
          "triggered": {
            "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
            "type": "boolean",
            "default": false
          },
          "masterProfileType": {
            "description": "Type of master profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "detailProfileType": {
            "description": "Type of detail profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "javaType": "org.folio.rest.jaxrs.model.ProfileType",
            "type": "string",
            "additionalProperties": false,
            "enum": [
              "ACTION_PROFILE",
              "MAPPING_PROFILE",
              "MATCH_PROFILE",
              "JOB_PROFILE"
            ]
          },
          "masterWrapperId": {
            "description": "Unique identifier of the 'master' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "detailWrapperId": {
            "description": "Unique identifier of the 'detail' wrapper profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "jobProfileId": {
            "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "type": "string",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          }
        },
        "required": [
          "masterProfileId",
          "detailProfileId",
          "order"
        ]
      }
    },
    "totalRecords": {
      "description": "Total number of Profile associations",
      "type": "integer"
    }
  },
  "excludedFromEqualsAndHashCode": [
    "totalRecords"
  ],
  "required": [
    "profileAssociations",
    "totalRecords"
  ]
}

Example:

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

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

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#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "masterProfileId": {
      "description": "Unique identifier of the 'master' profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "detailProfileId": {
      "description": "Unique identifier of the 'detail' profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "detail": {
      "description": "Detail profile content (plain Object)"
    },
    "triggered": {
      "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
      "type": "boolean",
      "default": false
    },
    "masterProfileType": {
      "description": "Type of master profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "detailProfileType": {
      "description": "Type of detail profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "masterWrapperId": {
      "description": "Unique identifier of the 'master' wrapper profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "detailWrapperId": {
      "description": "Unique identifier of the 'detail' wrapper profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "jobProfileId": {
      "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    }
  },
  "required": [
    "masterProfileId",
    "detailProfileId",
    "order"
  ]
}

Example:

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

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
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "This schema represents m2m association between profiles. One kind of 'master' profiles can be associated to another kind of 'detail' profiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "Unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "masterProfileId": {
      "description": "Unique identifier of the 'master' profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "detailProfileId": {
      "description": "Unique identifier of the 'detail' profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "detail": {
      "description": "Detail profile content (plain Object)"
    },
    "triggered": {
      "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
      "type": "boolean",
      "default": false
    },
    "masterProfileType": {
      "description": "Type of master profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "detailProfileType": {
      "description": "Type of detail profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "masterWrapperId": {
      "description": "Unique identifier of the 'master' wrapper profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "detailWrapperId": {
      "description": "Unique identifier of the 'detail' wrapper profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "jobProfileId": {
      "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    }
  },
  "required": [
    "masterProfileId",
    "detailProfileId",
    "order"
  ]
}

Example:

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

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#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "masterProfileId": {
      "description": "Unique identifier of the 'master' profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "detailProfileId": {
      "description": "Unique identifier of the 'detail' profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "detail": {
      "description": "Detail profile content (plain Object)"
    },
    "triggered": {
      "description": "Boolean flag identifies if the 'detail' profile has triggered by the 'master' profile",
      "type": "boolean",
      "default": false
    },
    "masterProfileType": {
      "description": "Type of master profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "detailProfileType": {
      "description": "Type of detail profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "masterWrapperId": {
      "description": "Unique identifier of the 'master' wrapper profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "detailWrapperId": {
      "description": "Unique identifier of the 'detail' wrapper profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "jobProfileId": {
      "description": "Unique identifier of the job profile, it is used to distinguish associations when building a snapshot tree for particular job profile",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    }
  },
  "required": [
    "masterProfileId",
    "detailProfileId",
    "order"
  ]
}

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 409

Optimistic locking version conflict

Body

Media type: text/plain

Type: any

Example:

version conflict

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

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
    
  • totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)

    How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords

    Example:

    none
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

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

    Example:

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

    Limit the number of elements returned in the response

    Example:

    10

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileWrapperId": {
      "description": "Profile wrapper unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "contentType": {
      "description": "Type of the content",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "content": {
      "description": "Profile content (plain Object)"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "childSnapshotWrappers": {
      "description": "Set of children profile snapshots",
      "type": "array",
      "items": {
        "$ref": "profileSnapshotWrapper.json"
      }
    }
  },
  "required": [
    "contentType",
    "content"
  ],
  "excludedFromEqualsAndHashCode": [
    "content"
  ]
}

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
    
  • totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)

    How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords

    Example:

    none
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

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

    Example:

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

    Limit the number of elements returned in the response

    Example:

    10

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileWrapperId": {
      "description": "Profile wrapper unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "contentType": {
      "description": "Type of the content",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "content": {
      "description": "Profile content (plain Object)"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "childSnapshotWrappers": {
      "description": "Set of children profile snapshots",
      "type": "array",
      "items": {
        "$ref": "profileSnapshotWrapper.json"
      }
    }
  },
  "required": [
    "contentType",
    "content"
  ],
  "excludedFromEqualsAndHashCode": [
    "content"
  ]
}

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileWrapperId": {
      "description": "Profile wrapper unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "contentType": {
      "description": "Type of the content",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "content": {
      "description": "Profile content (plain Object)"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "childSnapshotWrappers": {
      "description": "Set of children profile snapshots",
      "type": "array",
      "items": {
        "$ref": "profileSnapshotWrapper.json"
      }
    }
  },
  "required": [
    "contentType",
    "content"
  ],
  "excludedFromEqualsAndHashCode": [
    "content"
  ]
}

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

Method to create Job Profile Snapshot by Job Profile id

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileWrapperId": {
      "description": "Profile wrapper unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "contentType": {
      "description": "Type of the content",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "content": {
      "description": "Profile content (plain Object)"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "childSnapshotWrappers": {
      "description": "Set of children profile snapshots",
      "type": "array",
      "items": {
        "$ref": "profileSnapshotWrapper.json"
      }
    }
  },
  "required": [
    "contentType",
    "content"
  ],
  "excludedFromEqualsAndHashCode": [
    "content"
  ]
}

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

POST /data-import-profiles/profileSnapshots

Method to import profile snapshot with related profiles.

POST /data-import-profiles/profileSnapshots
Body

Media type: application/json

Type: json

Content:

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

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileWrapperId": {
      "description": "Profile wrapper unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "contentType": {
      "description": "Type of the content",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "content": {
      "description": "Profile content (plain Object)"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "childSnapshotWrappers": {
      "description": "Set of children profile snapshots",
      "type": "array",
      "items": {
        "$ref": "profileSnapshotWrapper.json"
      }
    }
  },
  "required": [
    "contentType",
    "content"
  ],
  "excludedFromEqualsAndHashCode": [
    "content"
  ]
}

Response 400

Bad request

Body

Media type: text/plain

Type: any

Example:

Bad request

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

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",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileId": {
      "description": "Profile unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "profileWrapperId": {
      "description": "Profile wrapper unique identifier",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "type": "string",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "contentType": {
      "description": "Type of the content",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ProfileType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "ACTION_PROFILE",
        "MAPPING_PROFILE",
        "MATCH_PROFILE",
        "JOB_PROFILE"
      ]
    },
    "reactTo": {
      "description": "Non-match also used when there is no match profile in the job",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "javaType": "org.folio.rest.jaxrs.model.ReactToType",
      "type": "string",
      "additionalProperties": false,
      "enum": [
        "MATCH",
        "NON_MATCH"
      ]
    },
    "content": {
      "description": "Profile content (plain Object)"
    },
    "order": {
      "description": "The execution order of the 'detail' profile. Job, Action and Matching profiles have an execution order, but this field is always 0 for Mapping profiles because of o2o relationship",
      "type": "integer",
      "default": 0
    },
    "childSnapshotWrappers": {
      "description": "Set of children profile snapshots",
      "type": "array",
      "items": {
        "$ref": "profileSnapshotWrapper.json"
      }
    }
  },
  "required": [
    "contentType",
    "content"
  ],
  "excludedFromEqualsAndHashCode": [
    "content"
  ]
}

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