{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/folio/main/json-schema/folio-authority-source-file-dto-schema.json",
  "title": "authoritySourceFileDto",
  "description": "An Authority source file",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/folio-mod-entities-links-openapi.yml#/components/schemas/authoritySourceFileDto",
  "properties": {
    "id": {
      "description": "Unique ID of the Authority source file; a UUID",
      "format": "uuid",
      "type": "string",
      "x-fqm-essential": true,
      "x-fqm-visibility": "hidden",
      "x-fqm-value-getter": ":sourceAlias.id"
    },
    "name": {
      "description": "Authority source file name",
      "type": "string",
      "x-fqm-essential": true,
      "x-fqm-id-column-name": "id",
      "x-fqm-visible-by-default": true,
      "x-fqm-value-getter": ":sourceAlias.name",
      "x-fqm-value-source-api": {
        "path": "authority-source-files",
        "valueJsonPath": "$.authoritySourceFiles.*.id",
        "labelJsonPath": "$.authoritySourceFiles.*.name"
      }
    },
    "codes": {
      "description": "List of identifying prefix",
      "items": {
        "description": "identifying prefix, i.e. 'n', 'D', 'fst'",
        "type": "string"
      },
      "type": "array",
      "x-fqm-ignore": true
    },
    "type": {
      "description": "Type of authority records stored in source file",
      "type": "string",
      "x-fqm-ignore": true
    },
    "baseUrl": {
      "description": "Base URL of the source file origin",
      "format": "url",
      "type": "string",
      "x-fqm-ignore": true
    },
    "source": {
      "description": "label indicating where the authority source file entry originates from, i.e. 'folio' or 'local'",
      "enum": [
        "folio",
        "local"
      ],
      "type": "string",
      "x-fqm-ignore": true
    },
    "selectable": {
      "type": "boolean",
      "x-fqm-ignore": true
    },
    "hridManagement": {
      "$ref": "#/$defs/authoritySourceFileDto_hridManagement"
    },
    "_version": {
      "description": "Record version for optimistic locking",
      "type": "integer",
      "x-fqm-ignore": true
    },
    "metadata": {
      "$ref": "#/$defs/metadata"
    }
  },
  "required": [
    "codes",
    "name",
    "source"
  ],
  "type": "object",
  "$defs": {
    "authoritySourceFileDto_hridManagement": {
      "description": "Identifies HRID management properties",
      "properties": {
        "startNumber": {
          "type": "integer"
        }
      },
      "type": "object",
      "x-fqm-ignore": true
    },
    "metadata": {
      "description": "Creater, updater, creation date, last updated date",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "format": "date-time",
          "type": "string",
          "x-fqm-value-getter": ":sourceAlias.created_date",
          "x-fqm-value-function": "(:value)::timestamp"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "format": "uuid",
          "type": "string",
          "x-fqm-value-getter": ":sourceAlias.created_by_user_id"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "format": "date-time",
          "type": "string",
          "x-fqm-value-getter": ":sourceAlias.updated_date",
          "x-fqm-value-function": "(:value)::timestamp"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "format": "uuid",
          "type": "string",
          "x-fqm-value-getter": ":sourceAlias.updated_by_user_id"
        }
      },
      "type": "object"
    }
  }
}