@openactive/data-models
Version:
Data models used to drive that OpenActive validator, developer documentation, and model libraries
313 lines • 9.16 kB
JSON
{
"type": "Person",
"derivedFrom": "https://schema.org/Person",
"hasId": true,
"sampleId": "https://id.bookingsystem.example.com/people/12345",
"validationMode": {
"RPDEFeed": "feed",
"BookableRPDEFeed": "bookableFeed",
"C1Request": "request",
"C1Response": "response",
"C1ResponseOrderItemError": "response",
"C2Request": "request",
"C2Response": "response",
"C2ResponseOrderItemError": "response",
"PRequest": "request",
"PResponse": "response",
"PResponseOrderItemError": "response",
"BRequest": "request",
"BResponse": "response",
"BResponseOrderItemError": "response"
},
"imperativeConfiguration": {
"feed": {},
"request": {},
"response": {},
"bookableFeed": {}
},
"imperativeConfigurationWithContext": {
"feed": {
"organizer": {
"requiredFields": [
"id"
]
}
},
"request": {
"seller": {
"requiredFields": [
"id"
],
"recommendedFields": []
},
"customer": {
"requiredFields": [
"email"
],
"recommendedFields": [
"givenName",
"familyName"
]
}
},
"response": {
"seller": {
"requiredFields": [
"id",
"name",
"legalName",
"taxMode",
"address"
],
"recommendedFields": [
"email",
"url",
"logo",
"vatID"
],
"shallNotInclude": [
"givenName",
"familyName"
]
}
},
"bookableFeed": {
"organizer": {
"requiredFields": [
"id",
"taxMode"
],
"shallNotInclude": [
"givenName",
"familyName"
]
}
}
},
"inSpec": [
"id",
"type",
"identifier",
"url",
"name",
"gender",
"givenName",
"familyName",
"description",
"telephone",
"email",
"jobTitle",
"sameAs",
"logo",
"address",
"termsOfService",
"taxMode",
"vatID",
"legalName",
"emergencyContact",
"isOpenBookingAllowed",
"hasAccount"
],
"fields": {
"type": {
"fieldName": "type",
"requiredType": "https://schema.org/Text",
"requiredContent": "Person"
},
"description": {
"fieldName": "description",
"sameAs": "https://schema.org/description",
"requiredType": "https://schema.org/Text",
"example": "The leader of the coaching team",
"description": [
"A plain text description of the Person, which must not include HTML or other markup."
]
},
"identifier": {
"fieldName": "identifier",
"sameAs": "https://schema.org/identifier",
"alternativeModels": [
"#PropertyValue",
"ArrayOf#PropertyValue"
],
"requiredType": "https://schema.org/Text",
"alternativeTypes": [
"https://schema.org/Integer"
],
"example": "SB1234",
"description": [
"A local non-URI identifier for the resource"
]
},
"logo": {
"fieldName": "logo",
"sameAs": "https://schema.org/logo",
"model": "#ImageObject",
"example": {
"@type": "ImageObject",
"url": "http://example.com/static/image/speedball_large.jpg"
},
"description": [
"A logo for the person."
]
},
"name": {
"fieldName": "name",
"sameAs": "https://schema.org/name",
"requiredType": "https://schema.org/Text",
"example": "Daley Thompson",
"description": [
"A full name for the person.",
"This person must have given permission for their personal information to be shared as part of the open data."
]
},
"givenName": {
"fieldName": "givenName",
"sameAs": "https://schema.org/givenName",
"requiredType": "https://schema.org/Text",
"example": "Daley",
"description": [
"A first name for the person.",
"This person must have given permission for their personal information to be shared as part of the open data."
]
},
"familyName": {
"fieldName": "familyName",
"sameAs": "https://schema.org/familyName",
"requiredType": "https://schema.org/Text",
"example": "Thompson",
"description": [
"A last name for the person.",
"This person must have given permission for their personal information to be shared as part of the open data."
]
},
"gender": {
"fieldName": "gender",
"sameAs": "https://pending.schema.org/gender",
"requiredType": "https://schema.org/GenderType",
"alternativeTypes": [
"https://schema.org/Text"
],
"description": [
"Indicates the gender of the person. While `https://schema.org/Male` and `https://schema.org/Female` may be used, text strings are also acceptable for people who do not identify as a binary gender."
],
"example": "https://schema.org/Female"
},
"sameAs": {
"fieldName": "sameAs",
"sameAs": "https://schema.org/sameAs",
"requiredType": "ArrayOf#https://schema.org/URL",
"example": "https://example.org/example-org",
"description": [
"Lists the URL(s) of the official social media profile pages associated with the person."
]
},
"telephone": {
"fieldName": "telephone",
"sameAs": "https://schema.org/telephone",
"requiredType": "https://schema.org/Text",
"example": "01234 567890",
"description": [
"The telephone number of the person",
"This person must have given permission for their personal information to be shared as part of the open data."
]
},
"email": {
"fieldName": "email",
"sameAs": "https://schema.org/email",
"requiredType": "https://schema.org/Text",
"example": "jane.smith@example.com",
"description": [
"The e-mail address of the person.",
"This person must have given permission for their personal information to be shared as part of the open data."
]
},
"jobTitle": {
"fieldName": "jobTitle",
"sameAs": "https://pending.schema.org/jobTitle",
"requiredType": "https://schema.org/Text",
"example": "Team Captain",
"description": [
"The job title of a person",
"This person must have given permission for their personal information to be shared as part of the open data."
]
},
"url": {
"fieldName": "url",
"sameAs": "https://schema.org/url",
"requiredType": "https://schema.org/URL",
"example": "http://www.example.com/",
"description": [
"A URL where more information about the person may be found"
]
},
"address": {
"fieldName": "address",
"sameAs": "https://schema.org/address",
"model": "#PostalAddress",
"description": [
"Address of the Seller, used on tax receipts."
]
},
"emergencyContact": {
"fieldName": "emergencyContact",
"sameAs": "https://openactive.io/emergencyContact",
"model": "#Person",
"description": [
"Person to contact in case of emergencies related to this Person."
]
},
"termsOfService": {
"fieldName": "termsOfService",
"sameAs": "https://pending.schema.org/termsOfService",
"model": "ArrayOf#Terms",
"description": [
"The terms of service of the Seller."
]
},
"taxMode": {
"fieldName": "taxMode",
"sameAs": "https://openactive.io/taxMode",
"requiredType": "https://openactive.io/TaxMode",
"description": [
"Either https://openactive.io/TaxNet or https://openactive.io/TaxGross"
]
},
"vatID": {
"fieldName": "vatID",
"sameAs": "https://schema.org/vatID",
"requiredType": "https://schema.org/Text",
"description": [
"The Value-added Tax ID of the of the Seller."
]
},
"legalName": {
"fieldName": "legalName",
"sameAs": "https://schema.org/legalName",
"requiredType": "https://schema.org/Text",
"example": "Central Speedball Ltd",
"description": [
"The official name of the organization, e.g. the registered company name."
]
},
"isOpenBookingAllowed": {
"fieldName": "isOpenBookingAllowed",
"sameAs": "https://openactive.io/isOpenBookingAllowed",
"requiredType": "https://schema.org/Boolean",
"example": true,
"description": [
"Indicates whether the Seller allows open booking"
]
},
"hasAccount": {
"fieldName": "hasAccount",
"sameAs": "https://openactive.io/hasAccount",
"model": "#CustomerAccount",
"allowReferencing": true,
"description": [
"Reference to the CustomerAccount associated with this Customer, for use within the Open Booking API flow.",
"Note that this property is in EARLY RELEASE AND IS SUBJECT TO CHANGE, as the [Customer Accounts proposal](https://github.com/openactive/customer-accounts) evolves."
]
}
}
}