University of Bath · Schema

University of Bath Pure API Activity

Activities exist in many variations.

EducationHigher EducationUniversityUnited KingdomResearchOpen DataLibraryMetadata

Properties

Name Type Description
pureId integer Pure database ID of the object, prefer using the UUID if it is present on the entity
uuid string UUID, this is the primary identity of the entity
createdBy string Username of creator
createdDate string Date and time of creation
modifiedBy string Username of the user that performed a modification
modifiedDate string Date and time of last modification
portalUrl string URL of the content on the Pure Portal
prettyUrlIdentifiers array All pretty URLs
previousUuids array UUIDs of other content items which have been merged into this content item (or similar)
version string Used to guard against conflicting updates. For new content this is null, and for existing content the current value. The property should never be modified by a client, except in the rare case where th
organizations array A collection of organization associations.
persons array A collection of persons.
period object
category object
managingOrganization object
links array Additional links associated with this activity.
type object
visibility object
workflow object
externalOrganizations array A collection of external organization affiliations.
identifiers array Identifiers related to the activity.
keywordGroups array Groups of keywords associated with the research output.
activities array A collection of related activities.
pressMedia array A collection of related press media.
studentTheses array A collection of related student theses.
researchOutputs array A collection of related research outputs.
impacts array A collection of related impacts.
equipment array A collection of equipment.
degreeOfRecognition object
documents array Associated documents for the activity.
descriptions array A collection of descriptions.
images array Image files with a maximum file size of 1MB.
customDefinedFields object
indicators array Indicators for the activity.
systemName string The content system name
typeDiscriminator string
View JSON Schema on GitHub

JSON Schema

university-of-bath-activity-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/university-of-bath/main/json-schema/university-of-bath-activity-schema.json",
  "title": "University of Bath Pure API Activity",
  "description": "Activities exist in many variations.",
  "required": [
    "managingOrganization",
    "period",
    "persons",
    "type",
    "typeDiscriminator",
    "visibility"
  ],
  "type": "object",
  "properties": {
    "pureId": {
      "type": "integer",
      "description": "Pure database ID of the object, prefer using the UUID if it is present on the entity",
      "format": "int64",
      "readOnly": true
    },
    "uuid": {
      "type": "string",
      "description": "UUID, this is the primary identity of the entity",
      "format": "uuid",
      "readOnly": true
    },
    "createdBy": {
      "type": "string",
      "description": "Username of creator",
      "readOnly": true
    },
    "createdDate": {
      "type": "string",
      "description": "Date and time of creation",
      "format": "date-time",
      "readOnly": true
    },
    "modifiedBy": {
      "type": "string",
      "description": "Username of the user that performed a modification",
      "readOnly": true
    },
    "modifiedDate": {
      "type": "string",
      "description": "Date and time of last modification",
      "format": "date-time",
      "readOnly": true
    },
    "portalUrl": {
      "type": "string",
      "description": "URL of the content on the Pure Portal",
      "readOnly": true
    },
    "prettyUrlIdentifiers": {
      "type": "array",
      "description": "All pretty URLs",
      "readOnly": true,
      "items": {
        "type": "string",
        "description": "All pretty URLs",
        "readOnly": true
      }
    },
    "previousUuids": {
      "type": "array",
      "description": "UUIDs of other content items which have been merged into this content item (or similar)",
      "readOnly": true,
      "items": {
        "type": "string",
        "description": "UUIDs of other content items which have been merged into this content item (or similar)",
        "readOnly": true
      }
    },
    "version": {
      "type": "string",
      "description": "Used to guard against conflicting updates. For new content this is null, and for existing content the current value. The property should never be modified by a client, except in the rare case where the client wants to perform an update irrespective of if other clients have made updates in the meantime, also known as a \"dirty write\". A dirty write is performed by not including the property value or setting the property to null",
      "nullable": true
    },
    "organizations": {
      "type": "array",
      "description": "A collection of organization associations.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/OrganizationRef"
      }
    },
    "persons": {
      "type": "array",
      "description": "A collection of persons.",
      "items": {
        "$ref": "#/$defs/AbstractActivityPersonAssociation"
      }
    },
    "period": {
      "$ref": "#/$defs/CompoundDateRange"
    },
    "category": {
      "$ref": "#/$defs/ClassificationRef"
    },
    "managingOrganization": {
      "$ref": "#/$defs/OrganizationRef"
    },
    "links": {
      "type": "array",
      "description": "Additional links associated with this activity.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/Link"
      }
    },
    "type": {
      "$ref": "#/$defs/ClassificationRef"
    },
    "visibility": {
      "$ref": "#/$defs/Visibility"
    },
    "workflow": {
      "$ref": "#/$defs/Workflow"
    },
    "externalOrganizations": {
      "type": "array",
      "description": "A collection of external organization affiliations.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/ExternalOrganizationRef"
      }
    },
    "identifiers": {
      "type": "array",
      "description": "Identifiers related to the activity.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/Identifier"
      }
    },
    "keywordGroups": {
      "type": "array",
      "description": "Groups of keywords associated with the research output.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/KeywordGroup"
      }
    },
    "activities": {
      "type": "array",
      "description": "A collection of related activities.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/ActivityRef"
      }
    },
    "pressMedia": {
      "type": "array",
      "description": "A collection of related press media.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/PressMediaRef"
      }
    },
    "studentTheses": {
      "type": "array",
      "description": "A collection of related student theses.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/StudentThesisRef"
      }
    },
    "researchOutputs": {
      "type": "array",
      "description": "A collection of related research outputs.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/ResearchOutputRef"
      }
    },
    "impacts": {
      "type": "array",
      "description": "A collection of related impacts.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/ImpactRef"
      }
    },
    "equipment": {
      "type": "array",
      "description": "A collection of equipment.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/EquipmentRef"
      }
    },
    "degreeOfRecognition": {
      "$ref": "#/$defs/ClassificationRef"
    },
    "documents": {
      "type": "array",
      "description": "Associated documents for the activity.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/Document"
      }
    },
    "descriptions": {
      "type": "array",
      "description": "A collection of descriptions.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/ClassifiedFormattedLocalizedValue"
      }
    },
    "images": {
      "type": "array",
      "description": "Image files with a maximum file size of 1MB.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/ImageFile"
      }
    },
    "customDefinedFields": {
      "$ref": "#/$defs/CustomDefinedFields"
    },
    "indicators": {
      "type": "array",
      "description": "Indicators for the activity.",
      "nullable": true,
      "items": {
        "$ref": "#/$defs/ClassificationRef"
      }
    },
    "systemName": {
      "type": "string",
      "description": "The content system name",
      "readOnly": true
    },
    "typeDiscriminator": {
      "type": "string"
    }
  },
  "discriminator": {
    "propertyName": "typeDiscriminator",
    "mapping": {
      "Attendance": "#/components/schemas/Attendance",
      "Consultancy": "#/components/schemas/Consultancy",
      "EditorialWork": "#/components/schemas/EditorialWork",
      "Examination": "#/components/schemas/Examination",
      "HostVisitor": "#/components/schemas/HostVisitor",
      "Membership": "#/components/schemas/Membership",
      "OtherActivity": "#/components/schemas/OtherActivity",
      "Talk": "#/components/schemas/Talk",
      "VisitOther": "#/components/schemas/VisitOther"
    }
  },
  "$defs": {
    "AbstractActivityPersonAssociation": {
      "required": [
        "role",
        "typeDiscriminator"
      ],
      "type": "object",
      "properties": {
        "pureId": {
          "type": "integer",
          "description": "Pure database ID of the object, prefer using the UUID if it is present on the entity",
          "format": "int64",
          "readOnly": true
        },
        "externalOrganizations": {
          "type": "array",
          "description": "A collection of external organization affiliations.",
          "nullable": true,
          "items": {
            "$ref": "#/$defs/ExternalOrganizationRef"
          }
        },
        "name": {
          "$ref": "#/$defs/Name"
        },
        "role": {
          "$ref": "#/$defs/ClassificationRef"
        },
        "typeDiscriminator": {
          "type": "string"
        }
      },
      "description": "An association between an activity and a person, which can either be internal or external",
      "discriminator": {
        "propertyName": "typeDiscriminator",
        "mapping": {
          "InternalActivityPersonAssociation": "#/components/schemas/InternalActivityPersonAssociation",
          "ExternalActivityPersonAssociation": "#/components/schemas/ExternalActivityPersonAssociation"
        }
      }
    },
    "AbstractEditorialWorkAssociation": {
      "required": [
        "typeDiscriminator"
      ],
      "type": "object",
      "properties": {
        "typeDiscriminator": {
          "type": "string"
        }
      },
      "description": "Association to one and only one of: event, publisher or journal.",
      "discriminator": {
        "propertyName": "typeDiscriminator",
        "mapping": {
          "EventEditorialWorkAssociation": "#/components/schemas/EventMembershipAssociation",
          "PublisherEditorialWorkAssociation": "#/components/schemas/PublisherEditorialWorkAssociation",
          "JournalEditorialWorkAssociation": "#/components/schemas/JournalEditorialWorkAssociation"
        }
      }
    },
    "AbstractExamineeAssociation": {
      "required": [
        "typeDiscriminator"
      ],
      "type": "object",
      "properties": {
        "pureId": {
          "type": "integer",
          "description": "Pure database ID of the object, prefer using the UUID if it is present on the entity",
          "format": "int64",
          "readOnly": true
        },
        "typeDiscriminator": {
          "type": "string"
        }
      },
      "description": "An association between examination and an examinee, which can either be internal or external",
      "nullable": true,
      "discriminator": {
        "propertyName": "typeDiscriminator",
        "mapping": {
          "InternalExamineeAssociation": "#/components/schemas/InternalExamineeAssociation",
          "ExternalExamineeAssociation": "#/components/schemas/ExternalExamineeAssociation"
        }
      }
    },
    "AccessDefinitionRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to an access definition",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "ActivityAbstractAssociation": {
      "required": [
        "typeDiscriminator"
      ],
      "type": "object",
      "properties": {
        "typeDiscriminator": {
          "type": "string"
        }
      },
      "description": "Association to one and only one of: event, organization or external organization.",
      "discriminator": {
        "propertyName": "typeDiscriminator",
        "mapping": {
          "ActivityEventAssociation": "#/components/schemas/ActivityEventAssociation",
          "ActivityOrganizationAssociation": "#/components/schemas/ActivityOrganizationAssociation",
          "ActivityExternalOrganizationAssociation": "#/components/schemas/ActivityExternalOrganizationAssociation"
        }
      }
    },
    "ActivityEventAssociation": {
      "required": [
        "event"
      ],
      "type": "object",
      "description": "An association with an event.",
      "allOf": [
        {
          "$ref": "#/$defs/ActivityAbstractAssociation"
        },
        {
          "type": "object",
          "properties": {
            "event": {
              "$ref": "#/$defs/EventRef"
            }
          }
        }
      ]
    },
    "ActivityExternalOrganizationAssociation": {
      "required": [
        "externalOrganization"
      ],
      "type": "object",
      "description": "An association with an external organization.",
      "allOf": [
        {
          "$ref": "#/$defs/ActivityAbstractAssociation"
        },
        {
          "type": "object",
          "properties": {
            "externalOrganization": {
              "$ref": "#/$defs/ExternalOrganizationRef"
            }
          }
        }
      ]
    },
    "ActivityOrganizationAssociation": {
      "required": [
        "organization"
      ],
      "type": "object",
      "description": "An association with an organization.",
      "allOf": [
        {
          "$ref": "#/$defs/ActivityAbstractAssociation"
        },
        {
          "type": "object",
          "properties": {
            "organization": {
              "$ref": "#/$defs/OrganizationRef"
            }
          }
        }
      ]
    },
    "ActivityRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to an activity",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "ActivityVisitorAssociation": {
      "required": [
        "externalPerson"
      ],
      "type": "object",
      "properties": {
        "pureId": {
          "type": "integer",
          "description": "Pure database ID of the object, prefer using the UUID if it is present on the entity",
          "format": "int64",
          "readOnly": true
        },
        "externalOrganizations": {
          "type": "array",
          "description": "A collection of external organizations.",
          "nullable": true,
          "items": {
            "$ref": "#/$defs/ExternalOrganizationRef"
          }
        },
        "externalPerson": {
          "$ref": "#/$defs/ExternalPersonRef"
        },
        "visitorDegree": {
          "type": "string",
          "description": "Visitor degree.",
          "nullable": true
        },
        "country": {
          "$ref": "#/$defs/ClassificationRef"
        }
      },
      "description": "An association between activity and a person that has attended it"
    },
    "Anzsrc2008FieldOfResearchRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a Anzsrc2008FieldOfResearch",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "Anzsrc2020FieldOfResearchRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a Anzsrc2020FieldOfResearch",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "Anzsrc2020SocioEconomicObjectiveRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a Anzsrc2020SocioEconomicObjective",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "Anzsrc2020TypeOfActivityRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a Anzsrc2020TypeOfActivity",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "ApplicationClusterRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to an application cluster",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "ApplicationRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to an application",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "Attendance": {
      "required": [
        "managingOrganization",
        "period",
        "persons",
        "type",
        "visibility"
      ],
      "type": "object",
      "description": "Participating in or organizing an event",
      "allOf": [
        {
          "$ref": "#/$defs/Activity"
        },
        {
          "type": "object",
          "properties": {
            "event": {
              "$ref": "#/$defs/EventRef"
            }
          }
        }
      ]
    },
    "AuthorCollaborationRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to an author collaboration",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "AwardClusterRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to an award cluster",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "AwardRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to an award",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "ClassificationRef": {
      "required": [
        "uri"
      ],
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Classification URI of the referred classification"
        },
        "term": {
          "$ref": "#/$defs/SystemLocalizedString"
        }
      },
      "description": "A reference to a classification value",
      "nullable": true
    },
    "ClassificationSchemeRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a classification scheme",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "ClassificationsKeywordGroup": {
      "required": [
        "logicalName"
      ],
      "type": "object",
      "description": "De-normalized version of the full keyword group representation for instances where only structured keywords can be selected",
      "allOf": [
        {
          "$ref": "#/$defs/KeywordGroup"
        },
        {
          "type": "object",
          "properties": {
            "classifications": {
              "type": "array",
              "description": "A list classifications extracted from the keyword group structured keyword concept",
              "nullable": true,
              "items": {
                "$ref": "#/$defs/ClassificationRef"
              }
            }
          }
        }
      ]
    },
    "ClassifiedFormattedLocalizedValue": {
      "required": [
        "type"
      ],
      "type": "object",
      "properties": {
        "pureId": {
          "type": "integer",
          "description": "Pure database ID of the object, prefer using the UUID if it is present on the entity",
          "format": "int64",
          "readOnly": true
        },
        "value": {
          "$ref": "#/$defs/FormattedLocalizedString"
        },
        "type": {
          "$ref": "#/$defs/ClassificationRef"
        }
      },
      "description": "A classified formatted localized value"
    },
    "ClassifiedId": {
      "required": [
        "id",
        "type"
      ],
      "type": "object",
      "description": "A classified ID",
      "allOf": [
        {
          "$ref": "#/$defs/Identifier"
        },
        {
          "type": "object",
          "properties": {
            "pureId": {
              "type": "integer",
              "description": "Pure database ID of the object",
              "format": "int64",
              "readOnly": true
            },
            "id": {
              "type": "string",
              "description": "Classified ID"
            },
            "type": {
              "$ref": "#/$defs/ClassificationRef"
            }
          }
        }
      ]
    },
    "CompoundDate": {
      "required": [
        "year"
      ],
      "type": "object",
      "properties": {
        "year": {
          "maximum": 4000,
          "minimum": 0,
          "type": "integer",
          "format": "int32"
        },
        "month": {
          "maximum": 12,
          "minimum": 1,
          "type": "integer",
          "format": "int32",
          "nullable": true
        },
        "day": {
          "maximum": 31,
          "minimum": 1,
          "type": "integer",
          "format": "int32",
          "nullable": true
        }
      },
      "description": "A date that can be defined by only year, year and month or a full date",
      "nullable": true
    },
    "CompoundDateRange": {
      "type": "object",
      "properties": {
        "startDate": {
          "$ref": "#/$defs/CompoundDate"
        },
        "endDate": {
          "$ref": "#/$defs/CompoundDate"
        }
      },
      "description": "A date range of that can be defined by only year, year and month or a full date"
    },
    "ConceptRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a concept",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "ConferenceSeriesRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a conference series",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "Consultancy": {
      "required": [
        "consultancyFor",
        "managingOrganization",
        "period",
        "persons",
        "title",
        "type",
        "visibility"
      ],
      "type": "object",
      "description": "Consultancy",
      "allOf": [
        {
          "$ref": "#/$defs/Activity"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "$ref": "#/$defs/FormattedLocalizedString"
            },
            "consultancyFor": {
              "$ref": "#/$defs/ActivityAbstractAssociation"
            }
          }
        }
      ]
    },
    "ContentRef": {
      "required": [
        "systemName",
        "uuid"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "type": "string",
          "description": "UUID of the referred content",
          "format": "uuid"
        },
        "systemName": {
          "type": "string"
        }
      },
      "nullable": true,
      "discriminator": {
        "propertyName": "systemName",
        "mapping": {
          "AccessDefinition": "#/components/schemas/AccessDefinitionRef",
          "Activity": "#/components/schemas/ActivityRef",
          "Application": "#/components/schemas/ApplicationRef",
          "AuthorCollaboration": "#/components/schemas/AuthorCollaborationRef",
          "Award": "#/components/schemas/AwardRef",
          "ClassificationScheme": "#/components/schemas/ClassificationSchemeRef",
          "ConferenceSeries": "#/components/schemas/ConferenceSeriesRef",
          "DataSet": "#/components/schemas/DataSetRef",
          "Equipment": "#/components/schemas/EquipmentRef",
          "Event": "#/components/schemas/EventRef",
          "ExternalOrganization": "#/components/schemas/ExternalOrganizationRef",
          "ExternalPerson": "#/components/schemas/ExternalPersonRef",
          "Impact": "#/components/schemas/ImpactRef",
          "Journal": "#/components/schemas/JournalRef",
          "Organization": "#/components/schemas/OrganizationRef",
          "Person": "#/components/schemas/PersonRef",
          "Publisher": "#/components/schemas/PublisherRef",
          "PressMedia": "#/components/schemas/PressMediaRef",
          "Prize": "#/components/schemas/PrizeRef",
          "Project": "#/components/schemas/ProjectRef",
          "ResearchOutput": "#/components/schemas/ResearchOutputRef",
          "StudentThesis": "#/components/schemas/StudentThesisRef",
          "FundingOpportunity": "#/components/schemas/FundingOpportunityRef",
          "EthicalReview": "#/components/schemas/EthicalReviewRef",
          "ApplicationCluster": "#/components/schemas/ApplicationClusterRef",
          "AwardCluster": "#/components/schemas/AwardClusterRef",
          "User": "#/components/schemas/UserRef",
          "ERA2018FieldOfResearch": "#/components/schemas/Anzsrc2008FieldOfResearchRef",
          "UnitOfAssessmentREF2014": "#/components/schemas/Ref2014UnitOfAssessmentRef",
          "UnitOfAssessmentREF2020": "#/components/schemas/Ref2020UnitOfAssessmentRef",
          "ANZSRCTypeOfActivity": "#/components/schemas/Anzsrc2020TypeOfActivityRef",
          "ANZSRCFieldOfResearch": "#/components/schemas/Anzsrc2020FieldOfResearchRef",
          "ANZSRCSocioEconomicObjective": "#/components/schemas/Anzsrc2020SocioEconomicObjectiveRef",
          "Semester": "#/components/schemas/SemesterRef",
          "Education": "#/components/schemas/EducationRef",
          "Course": "#/components/schemas/CourseRef",
          "CurriculumVitae": "#/components/schemas/CurriculumVitaeRef",
          "CustomDefinedFieldConfiguration": "#/components/schemas/CustomDefinedFieldConfigurationRef",
          "KeywordGroupConfiguration": "#/components/schemas/KeywordGroupConfigurationRef",
          "Review": "#/components/schemas/ReviewRef",
          "GenericContentRef": "#/components/schemas/GenericContentRef",
          "UserProfile": "#/components/schemas/UserProfileRef",
          "Thesaurus": "#/components/schemas/ThesaurusRef",
          "Concept": "#/components/schemas/ConceptRef"
        }
      }
    },
    "CourseRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a course",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "CurriculumVitaeRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a curriculum vitae",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "CustomDefinedField": {
      "required": [
        "typeDiscriminator"
      ],
      "type": "object",
      "properties": {
        "typeDiscriminator": {
          "type": "string"
        }
      },
      "description": "Map of CustomDefinedField values, where the key is the field identifier",
      "nullable": true,
      "example": "{ \"fieldName1\": \"typeDiscriminator\": \"Integer\", \"value\" : 1}",
      "discriminator": {
        "propertyName": "typeDiscriminator",
        "mapping": {
          "Integer": "#/components/schemas/CustomDefinedFieldInteger",
          "String": "#/components/schemas/CustomDefinedFieldString",
          "Date": "#/components/schemas/CustomDefinedFieldDate",
          "Classification": "#/components/schemas/CustomDefinedFieldClassification",
          "Boolean": "#/components/schemas/CustomDefinedFieldBoolean",
          "Decimal": "#/components/schemas/CustomDefinedFieldDecimal"
        }
      }
    },
    "CustomDefinedFieldBoolean": {
      "type": "object",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/CustomDefinedField"
        },
        {
          "type": "object",
          "properties": {
            "value": {
              "type": "boolean",
              "description": "The boolean value for the custom field",
              "nullable": true
            }
          }
        }
      ]
    },
    "CustomDefinedFieldClassification": {
      "type": "object",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/CustomDefinedField"
        },
        {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "#/$defs/ClassificationRef"
            }
          }
        }
      ]
    },
    "CustomDefinedFieldConfigurationRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a custom-defined field configuration",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "CustomDefinedFieldDate": {
      "type": "object",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/CustomDefinedField"
        },
        {
          "type": "object",
          "properties": {
            "value": {
              "type": "string",
              "description": "The date value for the custom field",
              "format": "date",
              "nullable": true
            }
          }
        }
      ]
    },
    "CustomDefinedFieldDecimal": {
      "type": "object",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/CustomDefinedField"
        },
        {
          "type": "object",
          "properties": {
            "value": {
              "type": "number",
              "description": "The decimal value for the custom field",
              "nullable": true
            }
          }
        }
      ]
    },
    "CustomDefinedFieldInteger": {
      "type": "object",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/CustomDefinedField"
        },
        {
          "type": "object",
          "properties": {
            "value": {
              "type": "integer",
              "description": "The integer value for the custom field",
              "format": "int32",
              "nullable": true
            }
          }
        }
      ]
    },
    "CustomDefinedFieldString": {
      "type": "object",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/CustomDefinedField"
        },
        {
          "type": "object",
          "properties": {
            "value": {
              "type": "string",
              "description": "The string value for the custom field",
              "nullable": true
            }
          }
        }
      ]
    },
    "CustomDefinedFields": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/CustomDefinedField"
      },
      "description": "Map of CustomDefinedField values, where the key is the field identifier",
      "nullable": true,
      "example": "{ \"fieldName1\": \"typeDiscriminator\": \"Integer\", \"value\" : 1}"
    },
    "DataSetRef": {
      "required": [
        "uuid"
      ],
      "type": "object",
      "description": "A reference to a data set",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ContentRef"
        }
      ]
    },
    "Document": {
      "required": [
        "fileName",
        "mimeType",
        "type",
        "visibility"
      ],
      "type": "object",
      "properties": {
        "pureId": {
          "type": "integer",
          "description": "Pure database ID of the object, prefer using the UUID if it is present on the entity",
          "format": "int64",
          "readOnly": true
        },
        "fileId": {
          "type": "string",
          "description": "The id of the file",
          "readOnly": true
        },
        "fileName": {
          "type": "string",
          "description": "The documents file name"
        },
        "mimeType": {
          "type": "string",
          "description": "The documents mime type"
        },
        "size": {
          "type": "integer",
          "description": "The documents size in bytes",
          "format": "int64"
        },
        "url": {
          "type": "string",
          "description": "Download url for the binary file",
          "readOnly": true
        },
        "fileStoreLocations": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "description": "Locations of the binary file in file stores.",
            "readOnly": true
          },
          "description": "Locations of the binary file in file stores.",
          "readOnly": true
        },
        "uploadedFile": {
          "$ref": "#/$defs/UploadedFile"
        },
        "remoteFile": {
          "$ref": "#/$defs/RemoteFile"
        },
        "fileData": {
          "type": "string",
          "description": "Base64 encoded file data for new files. This property can be used instead of uploadedFile for small files",
          "format": "byte",
          "writeOnly": true
        },
        "title": {
          "type": "string",
          "description": "Document title",
          "nullable": true
        },
        "type": {
          "$ref": "#/$defs/ClassificationRef"
        },
        "license": {
          "$ref": "#/$defs/ClassificationRef"
        },
        "visibleOnPortalDate": {
          "type": "string",
          "description": "The date the document will be available on the portal",
          "format": "date",
          "readOnly": true
        },
        "visibility": {
          "$ref": "#/$defs/Visibility"

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-bath/refs/heads/main/json-schema/university-of-bath-activity-schema.json