copycat (v0.0)

http://localhost

Table of contents

/copycat

POST /copycat/imports

Import record from external system

POST /copycat/imports
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "tags",
  "description": "copycat import request/response",
  "type": "object",
  "properties": {
    "externalIdentifier": {
      "description": "external identifier for the record (for Z39.50 retrieval)",
      "type": "string"
    },
    "internalIdentifier": {
      "description": "FOLIO instance identifier for the record; specify when a record should be updated",
      "type": "string"
    },
    "profileId": {
      "description": "profile to be used for importing",
      "type": "string"
    },
    "selectedJobProfileId": {
      "description": "Job profile to be used for importing",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "record": {
      "description": "local record",
      "type": "object",
      "properties": {
        "json": {
          "description": "JSON MARC record object within json property",
          "type": "string"
        },
        "marc": {
          "description": "base64 encoded ISO2709 MARC",
          "type": "string"
        }
      }
    }
  },
  "additionalProperties": false,
  "required": [
    "profileId"
  ]
}

Response 200

Imported OK

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "tags",
  "description": "copycat import request/response",
  "type": "object",
  "properties": {
    "externalIdentifier": {
      "description": "external identifier for the record (for Z39.50 retrieval)",
      "type": "string"
    },
    "internalIdentifier": {
      "description": "FOLIO instance identifier for the record; specify when a record should be updated",
      "type": "string"
    },
    "profileId": {
      "description": "profile to be used for importing",
      "type": "string"
    },
    "selectedJobProfileId": {
      "description": "Job profile to be used for importing",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "record": {
      "description": "local record",
      "type": "object",
      "properties": {
        "json": {
          "description": "JSON MARC record object within json property",
          "type": "string"
        },
        "marc": {
          "description": "base64 encoded ISO2709 MARC",
          "type": "string"
        }
      }
    }
  },
  "additionalProperties": false,
  "required": [
    "profileId"
  ]
}

Response 400

Import error

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

Response 500

Internal error

Body

Media type: text/plain

Type: any

POST /copycat/profiles

Create profile

POST /copycat/profiles
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "copycat profile",
  "description": "copycat import profile",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "unique identifier and primary key"
    },
    "name": {
      "type": "string",
      "description": "Human-readable name"
    },
    "url": {
      "type": "string",
      "description": "Location of remote service to obtain records from"
    },
    "authentication": {
      "type": "string",
      "description": "Authentication credentials to use for the remote service"
    },
    "externalIdQueryMap": {
      "type": "string",
      "description": "Specifies which field at the remote service should be searched with the value of `externalIdentifier` when an import request is POSTed. Could be specified as a YAZ prefix-query string, e.g. '@attr 1=12 $identifier'"
    },
    "internalIdEmbedPath": {
      "type": "string",
      "description": "Specifies where the internalIdentifier is to be embedded in the MARC record, e.g. '999__$i' to place it in field 999, indicator double space (absent) and subfield i; this field only has effect when internalIdentifier is present"
    },
    "createJobProfileId": {
      "type": "string",
      "description": "Default job profile to use for create",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "updateJobProfileId": {
      "type": "string",
      "description": "Default job profile to use for update",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "allowedCreateJobProfileIds": {
      "type": "array",
      "description": "Job profiles to use for create",
      "items": {
        "type": "string",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "uuid.schema",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
      }
    },
    "allowedUpdateJobProfileIds": {
      "type": "array",
      "description": "Job profiles to use for update",
      "items": {
        "type": "string",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "uuid.schema",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
      }
    },
    "targetOptions": {
      "type": "object",
      "description": "A 1-level Json Object containing ZOOM options. The most important ones being preferredRecordSyntax, charset, marcencoding (encoding for retrieved MARC records - default is marc-8). See https://software.indexdata.com/yaz/doc/zoom.html#zoom-connections and https://software.indexdata.com/yaz/doc/zoom.resultsets.html#zoom.resultset.options"
    },
    "externalIdentifierType": {
      "type": "string",
      "description": "UUID of an identifier-type defined by the inventory module",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether this profile should be presented to users importing records"
    }
  },
  "additionalProperties": false,
  "required": [
    "name",
    "createJobProfileId",
    "updateJobProfileId"
  ]
}

Response 201

Created OK

Headers
  • Location: required (string)

    URI of profile

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "copycat profile",
  "description": "copycat import profile",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "unique identifier and primary key"
    },
    "name": {
      "type": "string",
      "description": "Human-readable name"
    },
    "url": {
      "type": "string",
      "description": "Location of remote service to obtain records from"
    },
    "authentication": {
      "type": "string",
      "description": "Authentication credentials to use for the remote service"
    },
    "externalIdQueryMap": {
      "type": "string",
      "description": "Specifies which field at the remote service should be searched with the value of `externalIdentifier` when an import request is POSTed. Could be specified as a YAZ prefix-query string, e.g. '@attr 1=12 $identifier'"
    },
    "internalIdEmbedPath": {
      "type": "string",
      "description": "Specifies where the internalIdentifier is to be embedded in the MARC record, e.g. '999__$i' to place it in field 999, indicator double space (absent) and subfield i; this field only has effect when internalIdentifier is present"
    },
    "createJobProfileId": {
      "type": "string",
      "description": "Default job profile to use for create",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "updateJobProfileId": {
      "type": "string",
      "description": "Default job profile to use for update",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "allowedCreateJobProfileIds": {
      "type": "array",
      "description": "Job profiles to use for create",
      "items": {
        "type": "string",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "uuid.schema",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
      }
    },
    "allowedUpdateJobProfileIds": {
      "type": "array",
      "description": "Job profiles to use for update",
      "items": {
        "type": "string",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "uuid.schema",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
      }
    },
    "targetOptions": {
      "type": "object",
      "description": "A 1-level Json Object containing ZOOM options. The most important ones being preferredRecordSyntax, charset, marcencoding (encoding for retrieved MARC records - default is marc-8). See https://software.indexdata.com/yaz/doc/zoom.html#zoom-connections and https://software.indexdata.com/yaz/doc/zoom.resultsets.html#zoom.resultset.options"
    },
    "externalIdentifierType": {
      "type": "string",
      "description": "UUID of an identifier-type defined by the inventory module",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether this profile should be presented to users importing records"
    }
  },
  "additionalProperties": false,
  "required": [
    "name",
    "createJobProfileId",
    "updateJobProfileId"
  ]
}

Response 400

Error in usage

Body

Media type: text/plain

Type: any

Response 500

Internal error

Body

Media type: text/plain

Type: any

GET /copycat/profiles

Get profiles

GET /copycat/profiles
Query Parameters
  • 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
  • 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.

    search profiles

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name = loc
    

Response 200

Get collection OK

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "CopyCat Profiles Response",
  "description": "CopyCat Profiles",
  "type": "object",
  "properties": {
    "profiles": {
      "description": "List of CopyCat profiles",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "copycat profile",
        "description": "copycat import profile",
        "properties": {
          "id": {
            "type": "string",
            "description": "unique identifier and primary key"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name"
          },
          "url": {
            "type": "string",
            "description": "Location of remote service to obtain records from"
          },
          "authentication": {
            "type": "string",
            "description": "Authentication credentials to use for the remote service"
          },
          "externalIdQueryMap": {
            "type": "string",
            "description": "Specifies which field at the remote service should be searched with the value of `externalIdentifier` when an import request is POSTed. Could be specified as a YAZ prefix-query string, e.g. '@attr 1=12 $identifier'"
          },
          "internalIdEmbedPath": {
            "type": "string",
            "description": "Specifies where the internalIdentifier is to be embedded in the MARC record, e.g. '999__$i' to place it in field 999, indicator double space (absent) and subfield i; this field only has effect when internalIdentifier is present"
          },
          "createJobProfileId": {
            "type": "string",
            "description": "Default job profile to use for create",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "updateJobProfileId": {
            "type": "string",
            "description": "Default job profile to use for update",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "allowedCreateJobProfileIds": {
            "type": "array",
            "description": "Job profiles to use for create",
            "items": {
              "type": "string",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "id": "uuid.schema",
              "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
              "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
            }
          },
          "allowedUpdateJobProfileIds": {
            "type": "array",
            "description": "Job profiles to use for update",
            "items": {
              "type": "string",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "id": "uuid.schema",
              "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
              "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
            }
          },
          "targetOptions": {
            "type": "object",
            "description": "A 1-level Json Object containing ZOOM options. The most important ones being preferredRecordSyntax, charset, marcencoding (encoding for retrieved MARC records - default is marc-8). See https://software.indexdata.com/yaz/doc/zoom.html#zoom-connections and https://software.indexdata.com/yaz/doc/zoom.resultsets.html#zoom.resultset.options"
          },
          "externalIdentifierType": {
            "type": "string",
            "description": "UUID of an identifier-type defined by the inventory module",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "uuid.schema",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether this profile should be presented to users importing records"
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "createJobProfileId",
          "updateJobProfileId"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "profiles",
    "totalRecords"
  ]
}

Response 400

Error in usage

Body

Media type: text/plain

Type: any

Response 500

Internal error

Body

Media type: text/plain

Type: any

GET /copycat/profiles/{id}

Get profile

GET /copycat/profiles/{id}
URI Parameters
  • id: required (string)

Response 200

retrieved OK

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "copycat profile",
  "description": "copycat import profile",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "unique identifier and primary key"
    },
    "name": {
      "type": "string",
      "description": "Human-readable name"
    },
    "url": {
      "type": "string",
      "description": "Location of remote service to obtain records from"
    },
    "authentication": {
      "type": "string",
      "description": "Authentication credentials to use for the remote service"
    },
    "externalIdQueryMap": {
      "type": "string",
      "description": "Specifies which field at the remote service should be searched with the value of `externalIdentifier` when an import request is POSTed. Could be specified as a YAZ prefix-query string, e.g. '@attr 1=12 $identifier'"
    },
    "internalIdEmbedPath": {
      "type": "string",
      "description": "Specifies where the internalIdentifier is to be embedded in the MARC record, e.g. '999__$i' to place it in field 999, indicator double space (absent) and subfield i; this field only has effect when internalIdentifier is present"
    },
    "createJobProfileId": {
      "type": "string",
      "description": "Default job profile to use for create",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "updateJobProfileId": {
      "type": "string",
      "description": "Default job profile to use for update",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "allowedCreateJobProfileIds": {
      "type": "array",
      "description": "Job profiles to use for create",
      "items": {
        "type": "string",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "uuid.schema",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
      }
    },
    "allowedUpdateJobProfileIds": {
      "type": "array",
      "description": "Job profiles to use for update",
      "items": {
        "type": "string",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "uuid.schema",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
      }
    },
    "targetOptions": {
      "type": "object",
      "description": "A 1-level Json Object containing ZOOM options. The most important ones being preferredRecordSyntax, charset, marcencoding (encoding for retrieved MARC records - default is marc-8). See https://software.indexdata.com/yaz/doc/zoom.html#zoom-connections and https://software.indexdata.com/yaz/doc/zoom.resultsets.html#zoom.resultset.options"
    },
    "externalIdentifierType": {
      "type": "string",
      "description": "UUID of an identifier-type defined by the inventory module",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether this profile should be presented to users importing records"
    }
  },
  "additionalProperties": false,
  "required": [
    "name",
    "createJobProfileId",
    "updateJobProfileId"
  ]
}

Response 400

User error

Body

Media type: text/plain

Type: any

Response 404

Not found

Body

Media type: text/plain

Type: any

Response 500

Internal error

Body

Media type: text/plain

Type: any

PUT /copycat/profiles/{id}

Update target profile

PUT /copycat/profiles/{id}
URI Parameters
  • id: required (string)
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "copycat profile",
  "description": "copycat import profile",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "unique identifier and primary key"
    },
    "name": {
      "type": "string",
      "description": "Human-readable name"
    },
    "url": {
      "type": "string",
      "description": "Location of remote service to obtain records from"
    },
    "authentication": {
      "type": "string",
      "description": "Authentication credentials to use for the remote service"
    },
    "externalIdQueryMap": {
      "type": "string",
      "description": "Specifies which field at the remote service should be searched with the value of `externalIdentifier` when an import request is POSTed. Could be specified as a YAZ prefix-query string, e.g. '@attr 1=12 $identifier'"
    },
    "internalIdEmbedPath": {
      "type": "string",
      "description": "Specifies where the internalIdentifier is to be embedded in the MARC record, e.g. '999__$i' to place it in field 999, indicator double space (absent) and subfield i; this field only has effect when internalIdentifier is present"
    },
    "createJobProfileId": {
      "type": "string",
      "description": "Default job profile to use for create",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "updateJobProfileId": {
      "type": "string",
      "description": "Default job profile to use for update",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "allowedCreateJobProfileIds": {
      "type": "array",
      "description": "Job profiles to use for create",
      "items": {
        "type": "string",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "uuid.schema",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
      }
    },
    "allowedUpdateJobProfileIds": {
      "type": "array",
      "description": "Job profiles to use for update",
      "items": {
        "type": "string",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "uuid.schema",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
      }
    },
    "targetOptions": {
      "type": "object",
      "description": "A 1-level Json Object containing ZOOM options. The most important ones being preferredRecordSyntax, charset, marcencoding (encoding for retrieved MARC records - default is marc-8). See https://software.indexdata.com/yaz/doc/zoom.html#zoom-connections and https://software.indexdata.com/yaz/doc/zoom.resultsets.html#zoom.resultset.options"
    },
    "externalIdentifierType": {
      "type": "string",
      "description": "UUID of an identifier-type defined by the inventory module",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "uuid.schema",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether this profile should be presented to users importing records"
    }
  },
  "additionalProperties": false,
  "required": [
    "name",
    "createJobProfileId",
    "updateJobProfileId"
  ]
}

Response 204

updated OK

Response 400

User error

Body

Media type: text/plain

Type: any

Response 404

Not found

Body

Media type: text/plain

Type: any

Response 500

Internal error

Body

Media type: text/plain

Type: any

DELETE /copycat/profiles/{id}

Delete target profile

DELETE /copycat/profiles/{id}
URI Parameters
  • id: required (string)

Response 204

deleted OK

Response 400

User error

Body

Media type: text/plain

Type: any

Response 404

Not found

Body

Media type: text/plain

Type: any

Response 500

Internal error

Body

Media type: text/plain

Type: any