UNPKG

schema-dts

Version:

A TypeScript package with latest Schema.org Schema Typings

681 lines 919 kB
/** Used at the top-level node to indicate the context for the JSON-LD objects used. The context provided in this type is compatible with the keys and URLs in the rest of this generated file. */ export type WithContext<T extends Thing> = T & { "@context": "https://schema.org"; }; export interface Graph { "@context": "https://schema.org"; "@graph": readonly Thing[]; } type SchemaValue<T, TProperty extends string> = T | Role<T, TProperty> | readonly (T | Role<T, TProperty>)[]; type IdReference = { /** IRI identifying the canonical address of this object. */ "@id": string; }; /** Boolean: True or False. */ export type Boolean = "https://schema.org/False" | "False" | "https://schema.org/True" | "True" | boolean; /** A date value in {@link http://en.wikipedia.org/wiki/ISO_8601 ISO 8601 date format}. */ export type Date = string; /** A combination of date and time of day in the form [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm] (see Chapter 5.4 of ISO 8601). */ export type DateTime = string; interface EmployeeRoleBase extends OrganizationRoleBase { /** The base salary of the job or of an employee in an EmployeeRole. */ "baseSalary"?: SchemaValue<MonetaryAmount | Number | PriceSpecification | IdReference, "baseSalary">; /** The currency (coded using {@link http://en.wikipedia.org/wiki/ISO_4217 ISO 4217}) used for the main salary information in this job posting or for this employee. */ "salaryCurrency"?: SchemaValue<Text, "salaryCurrency">; } type EmployeeRoleLeaf<TContent, TProperty extends string> = EmployeeRoleBase & { "@type": "EmployeeRole"; } & { [key in TProperty]: TContent; }; /** A subclass of OrganizationRole used to describe employee relationships. */ export type EmployeeRole<TContent = never, TProperty extends string = never> = EmployeeRoleLeaf<TContent, TProperty>; interface LinkRoleBase extends RoleBase { /** The language of the content or performance or used in an action. Please use one of the language codes from the {@link http://tools.ietf.org/html/bcp47 IETF BCP 47 standard}. See also {@link https://schema.org/availableLanguage availableLanguage}. */ "inLanguage"?: SchemaValue<Language | Text | IdReference, "inLanguage">; /** Indicates the relationship type of a Web link. */ "linkRelationship"?: SchemaValue<Text, "linkRelationship">; } type LinkRoleLeaf<TContent, TProperty extends string> = LinkRoleBase & { "@type": "LinkRole"; } & { [key in TProperty]: TContent; }; /** A Role that represents a Web link, e.g. as expressed via the 'url' property. Its linkRelationship property can indicate URL-based and plain textual link types, e.g. those in IANA link registry or others such as 'amphtml'. This structure provides a placeholder where details from HTML's link element can be represented outside of HTML, e.g. in JSON-LD feeds. */ export type LinkRole<TContent = never, TProperty extends string = never> = LinkRoleLeaf<TContent, TProperty>; /** * Data type: Number. * * Usage guidelines: * - Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols. * - Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator. */ export type Number = Float | Integer | number | `${number}`; interface OrganizationRoleBase extends RoleBase { /** A number associated with a role in an organization, for example, the number on an athlete's jersey. */ "numberedPosition"?: SchemaValue<Number, "numberedPosition">; } type OrganizationRoleLeaf<TContent, TProperty extends string> = OrganizationRoleBase & { "@type": "OrganizationRole"; } & { [key in TProperty]: TContent; }; /** A subclass of Role used to describe roles within organizations. */ export type OrganizationRole<TContent = never, TProperty extends string = never> = OrganizationRoleLeaf<TContent, TProperty> | EmployeeRole<TContent, TProperty>; interface PerformanceRoleBase extends RoleBase { /** The name of a character played in some acting or performing role, i.e. in a PerformanceRole. */ "characterName"?: SchemaValue<Text, "characterName">; } type PerformanceRoleLeaf<TContent, TProperty extends string> = PerformanceRoleBase & { "@type": "PerformanceRole"; } & { [key in TProperty]: TContent; }; /** A PerformanceRole is a Role that some entity places with regard to a theatrical performance, e.g. in a Movie, TVSeries etc. */ export type PerformanceRole<TContent = never, TProperty extends string = never> = PerformanceRoleLeaf<TContent, TProperty>; interface RoleBase extends ThingBase { /** The end date and time of the item (in {@link http://en.wikipedia.org/wiki/ISO_8601 ISO 8601 date format}). */ "endDate"?: SchemaValue<Date | DateTime, "endDate">; /** * A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named 'Quarterback'. * * @deprecated Consider using https://schema.org/roleName instead. */ "namedPosition"?: SchemaValue<Text | URL, "namedPosition">; /** A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named 'inker', 'penciller', and 'letterer'; or an athlete in a SportsTeam might play in the position named 'Quarterback'. */ "roleName"?: SchemaValue<Text | URL, "roleName">; /** The start date and time of the item (in {@link http://en.wikipedia.org/wiki/ISO_8601 ISO 8601 date format}). */ "startDate"?: SchemaValue<Date | DateTime, "startDate">; } type RoleLeaf<TContent, TProperty extends string> = RoleBase & { "@type": "Role"; } & { [key in TProperty]: TContent; }; /** * Represents additional information about a relationship or property. For example a Role can be used to say that a 'member' role linking some SportsTeam to a player occurred during a particular time period. Or that a Person's 'actor' role in a Movie was for some particular characterName. Such properties can be attached to a Role entity, which is then associated with the main entities using ordinary properties like 'member' or 'actor'. * * See also {@link http://blog.schema.org/2014/06/introducing-role.html blog post}. */ export type Role<TContent = never, TProperty extends string = never> = RoleLeaf<TContent, TProperty> | LinkRole<TContent, TProperty> | OrganizationRole<TContent, TProperty> | PerformanceRole<TContent, TProperty>; /** Data type: Text. */ export type Text = CssSelectorType | PronounceableText | URL | XPathType | string; /** A point in time recurring on multiple days in the form hh:mm:ss[Z|(+|-)hh:mm] (see {@link http://www.w3.org/TR/xmlschema-2/#time XML schema for details}). */ export type Time = string; /** The basic data types such as Integers, Strings, etc. */ export type DataType = Boolean | Date | DateTime | Number | Text | Time; interface _3DModelBase extends MediaObjectBase { /** Whether the 3DModel allows resizing. For example, room layout applications often do not allow 3DModel elements to be resized to reflect reality. */ "isResizable"?: SchemaValue<Boolean, "isResizable">; } interface _3DModelLeaf extends _3DModelBase { "@type": "3DModel"; } /** A 3D model represents some kind of 3D content, which may have {@link https://schema.org/encoding encoding}s in one or more {@link https://schema.org/MediaObject MediaObject}s. Many 3D formats are available (e.g. see {@link https://en.wikipedia.org/wiki/Category:3D_graphics_file_formats Wikipedia}); specific encoding formats can be represented using the {@link https://schema.org/encodingFormat encodingFormat} property applied to the relevant {@link https://schema.org/MediaObject MediaObject}. For the case of a single file published after Zip compression, the convention of appending '+zip' to the {@link https://schema.org/encodingFormat encodingFormat} can be used. Geospatial, AR/VR, artistic/animation, gaming, engineering and scientific content can all be represented using {@link https://schema.org/3DModel 3DModel}. */ export type _3DModel = _3DModelLeaf; interface AboutPageLeaf extends WebPageBase { "@type": "AboutPage"; } /** Web page type: About page. */ export type AboutPage = AboutPageLeaf; interface AcceptActionLeaf extends ActionBase { "@type": "AcceptAction"; } /** * The act of committing to/adopting an object. * * Related actions: * - {@link https://schema.org/RejectAction RejectAction}: The antonym of AcceptAction. */ export type AcceptAction = AcceptActionLeaf; interface AccommodationBase extends PlaceBase { /** Category of an {@link https://schema.org/Accommodation Accommodation}, following real estate conventions, e.g. RESO (see {@link https://ddwiki.reso.org/display/DDW17/PropertySubType+Field PropertySubType}, and {@link https://ddwiki.reso.org/display/DDW17/PropertyType+Field PropertyType} fields for suggested values). */ "accommodationCategory"?: SchemaValue<Text, "accommodationCategory">; /** A floorplan of some {@link https://schema.org/Accommodation Accommodation}. */ "accommodationFloorPlan"?: SchemaValue<FloorPlan | IdReference, "accommodationFloorPlan">; /** An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs. */ "amenityFeature"?: SchemaValue<LocationFeatureSpecification | IdReference, "amenityFeature">; /** The type of bed or beds included in the accommodation. For the single case of just one bed of a certain type, you use bed directly with a text. If you want to indicate the quantity of a certain kind of bed, use an instance of BedDetails. For more detailed information, use the amenityFeature property. */ "bed"?: SchemaValue<BedDetails | BedType | Text | IdReference, "bed">; /** The floor level for an {@link https://schema.org/Accommodation Accommodation} in a multi-storey building. Since counting systems {@link https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations vary internationally}, the local system should be used where possible. */ "floorLevel"?: SchemaValue<Text, "floorLevel">; /** The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard. */ "floorSize"?: SchemaValue<QuantitativeValue | IdReference, "floorSize">; /** Length of the lease for some {@link https://schema.org/Accommodation Accommodation}, either particular to some {@link https://schema.org/Offer Offer} or in some cases intrinsic to the property. */ "leaseLength"?: SchemaValue<Duration | QuantitativeValue | IdReference, "leaseLength">; /** The total integer number of bathrooms in some {@link https://schema.org/Accommodation Accommodation}, following real estate conventions as {@link https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field documented in RESO}: "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also {@link https://schema.org/numberOfRooms numberOfRooms}. */ "numberOfBathroomsTotal"?: SchemaValue<Integer, "numberOfBathroomsTotal">; /** The total integer number of bedrooms in a some {@link https://schema.org/Accommodation Accommodation}, {@link https://schema.org/ApartmentComplex ApartmentComplex} or {@link https://schema.org/FloorPlan FloorPlan}. */ "numberOfBedrooms"?: SchemaValue<Number | QuantitativeValue | IdReference, "numberOfBedrooms">; /** Number of full bathrooms - The total number of full and ¾ bathrooms in an {@link https://schema.org/Accommodation Accommodation}. This corresponds to the {@link https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field BathroomsFull field in RESO}. */ "numberOfFullBathrooms"?: SchemaValue<Number, "numberOfFullBathrooms">; /** Number of partial bathrooms - The total number of half and ¼ bathrooms in an {@link https://schema.org/Accommodation Accommodation}. This corresponds to the {@link https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field BathroomsPartial field in RESO}. */ "numberOfPartialBathrooms"?: SchemaValue<Number, "numberOfPartialBathrooms">; /** The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue. */ "numberOfRooms"?: SchemaValue<Number | QuantitativeValue | IdReference, "numberOfRooms">; /** The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person. */ "occupancy"?: SchemaValue<QuantitativeValue | IdReference, "occupancy">; /** Indications regarding the permitted usage of the accommodation. */ "permittedUsage"?: SchemaValue<Text, "permittedUsage">; /** Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value. */ "petsAllowed"?: SchemaValue<Boolean | Text, "petsAllowed">; /** A page providing information on how to book a tour of some {@link https://schema.org/Place Place}, such as an {@link https://schema.org/Accommodation Accommodation} or {@link https://schema.org/ApartmentComplex ApartmentComplex} in a real estate setting, as well as other kinds of tours as appropriate. */ "tourBookingPage"?: SchemaValue<URL, "tourBookingPage">; /** The year an {@link https://schema.org/Accommodation Accommodation} was constructed. This corresponds to the {@link https://ddwiki.reso.org/display/DDW17/YearBuilt+Field YearBuilt field in RESO}. */ "yearBuilt"?: SchemaValue<Number, "yearBuilt">; } interface AccommodationLeaf extends AccommodationBase { "@type": "Accommodation"; } /** * An accommodation is a place that can accommodate human beings, e.g. a hotel room, a camping pitch, or a meeting room. Many accommodations are for overnight stays, but this is not a mandatory requirement. For more specific types of accommodations not defined in schema.org, one can use [[additionalType]] with external vocabularies. * * See also the {@link /docs/hotels.html dedicated document on the use of schema.org for marking up hotels and other forms of accommodations}. */ export type Accommodation = AccommodationLeaf | Apartment | CampingPitch | House | Room | Suite | string; interface AccountingServiceLeaf extends FinancialServiceBase { "@type": "AccountingService"; } /** * Accountancy business. * * As a {@link https://schema.org/LocalBusiness LocalBusiness} it can be described as a {@link https://schema.org/provider provider} of one or more {@link https://schema.org/Service Service}(s). */ export type AccountingService = AccountingServiceLeaf | string; interface AchieveActionLeaf extends ActionBase { "@type": "AchieveAction"; } /** The act of accomplishing something via previous efforts. It is an instantaneous action rather than an ongoing process. */ export type AchieveAction = AchieveActionLeaf | LoseAction | TieAction | WinAction; interface ActionBase extends ThingBase { /** Description of the process by which the action was performed. */ "actionProcess"?: SchemaValue<HowTo | IdReference, "actionProcess">; /** Indicates the current disposition of the Action. */ "actionStatus"?: SchemaValue<ActionStatusType | IdReference, "actionStatus">; /** The direct performer or driver of the action (animate or inanimate). E.g. _John_ wrote a book. */ "agent"?: SchemaValue<Organization | Person | IdReference, "agent">; /** * The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to _December_. For media, including audio and video, it's the time offset of the end of a clip within a larger file. * * Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions. */ "endTime"?: SchemaValue<DateTime | Time, "endTime">; /** For failed actions, more information on the cause of the failure. */ "error"?: SchemaValue<Thing | IdReference, "error">; /** The object that helped the agent perform the action. E.g. John wrote a book with _a pen_. */ "instrument"?: SchemaValue<Thing | IdReference, "instrument">; /** The location of, for example, where an event is happening, where an organization is located, or where an action takes place. */ "location"?: SchemaValue<Place | PostalAddress | Text | VirtualLocation | IdReference, "location">; /** The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn't). E.g. John read _a book_. */ "object"?: SchemaValue<Thing | IdReference, "object">; /** Other co-agents that participated in the action indirectly. E.g. John wrote a book with _Steve_. */ "participant"?: SchemaValue<Organization | Person | IdReference, "participant">; /** The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller. */ "provider"?: SchemaValue<Organization | Person | IdReference, "provider">; /** The result produced in the action. E.g. John wrote _a book_. */ "result"?: SchemaValue<Thing | IdReference, "result">; /** * The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from _January_ to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file. * * Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions. */ "startTime"?: SchemaValue<DateTime | Time, "startTime">; /** Indicates a target EntryPoint, or url, for an Action. */ "target"?: SchemaValue<EntryPoint | URL | IdReference, "target">; } interface ActionLeaf extends ActionBase { "@type": "Action"; } /** * An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role. * * See also {@link http://blog.schema.org/2014/04/announcing-schemaorg-actions.html blog post} and {@link https://schema.org/docs/actions.html Actions overview document}. */ export type Action = ActionLeaf | AchieveAction | AssessAction | ConsumeAction | ControlAction | CreateAction | FindAction | InteractAction | MoveAction | OrganizeAction | PlayAction | SearchAction | SeekToAction | SolveMathAction | TradeAction | TransferAction | UpdateAction; interface ActionAccessSpecificationBase extends ThingBase { /** The end of the availability of the product or service included in the offer. */ "availabilityEnds"?: SchemaValue<Date | DateTime | Time, "availabilityEnds">; /** The beginning of the availability of the product or service included in the offer. */ "availabilityStarts"?: SchemaValue<Date | DateTime | Time, "availabilityStarts">; /** A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy. */ "category"?: SchemaValue<CategoryCode | PhysicalActivityCategory | Text | Thing | URL | IdReference, "category">; /** * The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. * * See also {@link https://schema.org/ineligibleRegion ineligibleRegion}. */ "eligibleRegion"?: SchemaValue<GeoShape | Place | Text | IdReference, "eligibleRegion">; /** An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it. */ "expectsAcceptanceOf"?: SchemaValue<Offer | IdReference, "expectsAcceptanceOf">; /** * The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. * * See also {@link https://schema.org/eligibleRegion eligibleRegion}. */ "ineligibleRegion"?: SchemaValue<GeoShape | Place | Text | IdReference, "ineligibleRegion">; /** Indicates if use of the media require a subscription (either paid or free). Allowed values are `true` or `false` (note that an earlier version had 'yes', 'no'). */ "requiresSubscription"?: SchemaValue<Boolean | MediaSubscription | IdReference, "requiresSubscription">; } interface ActionAccessSpecificationLeaf extends ActionAccessSpecificationBase { "@type": "ActionAccessSpecification"; } /** A set of requirements that must be fulfilled in order to perform an Action. */ export type ActionAccessSpecification = ActionAccessSpecificationLeaf; interface ActionStatusTypeLeaf extends EnumerationBase { "@type": "ActionStatusType"; } /** The status of an Action. */ export type ActionStatusType = "https://schema.org/ActiveActionStatus" | "ActiveActionStatus" | "https://schema.org/CompletedActionStatus" | "CompletedActionStatus" | "https://schema.org/FailedActionStatus" | "FailedActionStatus" | "https://schema.org/PotentialActionStatus" | "PotentialActionStatus" | ActionStatusTypeLeaf; interface ActivateActionLeaf extends ActionBase { "@type": "ActivateAction"; } /** The act of starting or activating a device or application (e.g. starting a timer or turning on a flashlight). */ export type ActivateAction = ActivateActionLeaf; interface AddActionLeaf extends UpdateActionBase { "@type": "AddAction"; } /** The act of editing by adding an object to a collection. */ export type AddAction = AddActionLeaf | InsertAction; interface AdministrativeAreaLeaf extends PlaceBase { "@type": "AdministrativeArea"; } /** A geographical region, typically under the jurisdiction of a particular government. */ export type AdministrativeArea = AdministrativeAreaLeaf | City | Country | SchoolDistrict | State | string; interface AdultEntertainmentLeaf extends LocalBusinessBase { "@type": "AdultEntertainment"; } /** An adult entertainment establishment. */ export type AdultEntertainment = AdultEntertainmentLeaf | string; interface AdultOrientedEnumerationLeaf extends EnumerationBase { "@type": "AdultOrientedEnumeration"; } /** Enumeration of considerations that make a product relevant or potentially restricted for adults only. */ export type AdultOrientedEnumeration = "https://schema.org/AlcoholConsideration" | "AlcoholConsideration" | "https://schema.org/DangerousGoodConsideration" | "DangerousGoodConsideration" | "https://schema.org/HealthcareConsideration" | "HealthcareConsideration" | "https://schema.org/NarcoticConsideration" | "NarcoticConsideration" | "https://schema.org/ReducedRelevanceForChildrenConsideration" | "ReducedRelevanceForChildrenConsideration" | "https://schema.org/SexualContentConsideration" | "SexualContentConsideration" | "https://schema.org/TobaccoNicotineConsideration" | "TobaccoNicotineConsideration" | "https://schema.org/UnclassifiedAdultConsideration" | "UnclassifiedAdultConsideration" | "https://schema.org/ViolenceConsideration" | "ViolenceConsideration" | "https://schema.org/WeaponConsideration" | "WeaponConsideration" | AdultOrientedEnumerationLeaf; interface AdvertiserContentArticleLeaf extends ArticleBase { "@type": "AdvertiserContentArticle"; } /** An {@link https://schema.org/Article Article} that an external entity has paid to place or to produce to its specifications. Includes {@link https://en.wikipedia.org/wiki/Advertorial advertorials}, sponsored content, native advertising and other paid content. */ export type AdvertiserContentArticle = AdvertiserContentArticleLeaf; interface AggregateOfferBase extends OfferBase { /** * The highest price of all offers available. * * Usage guidelines: * - Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols. * - Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator. */ "highPrice"?: SchemaValue<Number | Text, "highPrice">; /** * The lowest price of all offers available. * * Usage guidelines: * - Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols. * - Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator. */ "lowPrice"?: SchemaValue<Number | Text, "lowPrice">; /** The number of offers for the product. */ "offerCount"?: SchemaValue<Integer, "offerCount">; /** An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use {@link https://schema.org/businessFunction businessFunction} to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a {@link https://schema.org/Demand Demand}. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer. */ "offers"?: SchemaValue<Demand | Offer | IdReference, "offers">; } interface AggregateOfferLeaf extends AggregateOfferBase { "@type": "AggregateOffer"; } /** * When a single product is associated with multiple offers (for example, the same pair of shoes is offered by different merchants), then AggregateOffer can be used. * * Note: AggregateOffers are normally expected to associate multiple offers that all share the same defined {@link https://schema.org/businessFunction businessFunction} value, or default to http://purl.org/goodrelations/v1#Sell if businessFunction is not explicitly defined. */ export type AggregateOffer = AggregateOfferLeaf; interface AggregateRatingBase extends RatingBase { /** The item that is being reviewed/rated. */ "itemReviewed"?: SchemaValue<Thing | IdReference, "itemReviewed">; /** The count of total number of ratings. */ "ratingCount"?: SchemaValue<Integer, "ratingCount">; /** The count of total number of reviews. */ "reviewCount"?: SchemaValue<Integer, "reviewCount">; } interface AggregateRatingLeaf extends AggregateRatingBase { "@type": "AggregateRating"; } /** The average rating based on multiple ratings or reviews. */ export type AggregateRating = AggregateRatingLeaf | EmployerAggregateRating; interface AgreeActionLeaf extends ActionBase { "@type": "AgreeAction"; } /** The act of expressing a consistency of opinion with the object. An agent agrees to/about an object (a proposition, topic or theme) with participants. */ export type AgreeAction = AgreeActionLeaf; interface AirlineBase extends OrganizationBase { /** The type of boarding policy used by the airline (e.g. zone-based or group-based). */ "boardingPolicy"?: SchemaValue<BoardingPolicyType | IdReference, "boardingPolicy">; /** IATA identifier for an airline or airport. */ "iataCode"?: SchemaValue<Text, "iataCode">; } interface AirlineLeaf extends AirlineBase { "@type": "Airline"; } /** An organization that provides flights for passengers. */ export type Airline = AirlineLeaf | string; interface AirportBase extends CivicStructureBase { /** IATA identifier for an airline or airport. */ "iataCode"?: SchemaValue<Text, "iataCode">; /** ICAO identifier for an airport. */ "icaoCode"?: SchemaValue<Text, "icaoCode">; } interface AirportLeaf extends AirportBase { "@type": "Airport"; } /** An airport. */ export type Airport = AirportLeaf | string; interface AlignmentObjectBase extends ThingBase { /** A category of alignment between the learning resource and the framework node. Recommended values include: 'requires', 'textComplexity', 'readingLevel', and 'educationalSubject'. */ "alignmentType"?: SchemaValue<Text, "alignmentType">; /** The framework to which the resource being described is aligned. */ "educationalFramework"?: SchemaValue<Text, "educationalFramework">; /** The description of a node in an established educational framework. */ "targetDescription"?: SchemaValue<Text, "targetDescription">; /** The name of a node in an established educational framework. */ "targetName"?: SchemaValue<Text, "targetName">; /** The URL of a node in an established educational framework. */ "targetUrl"?: SchemaValue<URL, "targetUrl">; } interface AlignmentObjectLeaf extends AlignmentObjectBase { "@type": "AlignmentObject"; } /** * An intangible item that describes an alignment between a learning resource and a node in an educational framework. * * Should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource {@link https://schema.org/teaches teaches} or {@link https://schema.org/assesses assesses} a competency. */ export type AlignmentObject = AlignmentObjectLeaf; interface AllocateActionLeaf extends ActionBase { "@type": "AllocateAction"; } /** The act of organizing tasks/objects/events by associating resources to it. */ export type AllocateAction = AllocateActionLeaf | AcceptAction | AssignAction | AuthorizeAction | RejectAction; interface AmpStoryBase extends CreativeWorkBase, MediaObjectBase { } interface AmpStoryLeaf extends AmpStoryBase { "@type": "AmpStory"; } /** A creative work with a visual storytelling format intended to be viewed online, particularly on mobile devices. */ export type AmpStory = AmpStoryLeaf; interface AMRadioChannelLeaf extends BroadcastChannelBase { "@type": "AMRadioChannel"; } /** A radio channel that uses AM. */ export type AMRadioChannel = AMRadioChannelLeaf; interface AmusementParkLeaf extends LocalBusinessBase { "@type": "AmusementPark"; } /** An amusement park. */ export type AmusementPark = AmusementParkLeaf | string; interface AnalysisNewsArticleLeaf extends NewsArticleBase { "@type": "AnalysisNewsArticle"; } /** An AnalysisNewsArticle is a {@link https://schema.org/NewsArticle NewsArticle} that, while based on factual reporting, incorporates the expertise of the author/producer, offering interpretations and conclusions. */ export type AnalysisNewsArticle = AnalysisNewsArticleLeaf; interface AnatomicalStructureBase extends MedicalEntityBase { /** If applicable, a description of the pathophysiology associated with the anatomical system, including potential abnormal changes in the mechanical, physical, and biochemical functions of the system. */ "associatedPathophysiology"?: SchemaValue<Text, "associatedPathophysiology">; /** Location in the body of the anatomical structure. */ "bodyLocation"?: SchemaValue<Text, "bodyLocation">; /** Other anatomical structures to which this structure is connected. */ "connectedTo"?: SchemaValue<AnatomicalStructure | IdReference, "connectedTo">; /** An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures. */ "diagram"?: SchemaValue<ImageObject | IdReference, "diagram">; /** The anatomical or organ system that this structure is part of. */ "partOfSystem"?: SchemaValue<AnatomicalSystem | IdReference, "partOfSystem">; /** A medical condition associated with this anatomy. */ "relatedCondition"?: SchemaValue<MedicalCondition | IdReference, "relatedCondition">; /** A medical therapy related to this anatomy. */ "relatedTherapy"?: SchemaValue<MedicalTherapy | IdReference, "relatedTherapy">; /** Component (sub-)structure(s) that comprise this anatomical structure. */ "subStructure"?: SchemaValue<AnatomicalStructure | IdReference, "subStructure">; } interface AnatomicalStructureLeaf extends AnatomicalStructureBase { "@type": "AnatomicalStructure"; } /** Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures. */ export type AnatomicalStructure = AnatomicalStructureLeaf | Bone | BrainStructure | Joint | Ligament | Muscle | Nerve | Vessel; interface AnatomicalSystemBase extends MedicalEntityBase { /** If applicable, a description of the pathophysiology associated with the anatomical system, including potential abnormal changes in the mechanical, physical, and biochemical functions of the system. */ "associatedPathophysiology"?: SchemaValue<Text, "associatedPathophysiology">; /** Specifying something physically contained by something else. Typically used here for the underlying anatomical structures, such as organs, that comprise the anatomical system. */ "comprisedOf"?: SchemaValue<AnatomicalStructure | AnatomicalSystem | IdReference, "comprisedOf">; /** A medical condition associated with this anatomy. */ "relatedCondition"?: SchemaValue<MedicalCondition | IdReference, "relatedCondition">; /** Related anatomical structure(s) that are not part of the system but relate or connect to it, such as vascular bundles associated with an organ system. */ "relatedStructure"?: SchemaValue<AnatomicalStructure | IdReference, "relatedStructure">; /** A medical therapy related to this anatomy. */ "relatedTherapy"?: SchemaValue<MedicalTherapy | IdReference, "relatedTherapy">; } interface AnatomicalSystemLeaf extends AnatomicalSystemBase { "@type": "AnatomicalSystem"; } /** An anatomical system is a group of anatomical structures that work together to perform a certain task. Anatomical systems, such as organ systems, are one organizing principle of anatomy, and can include circulatory, digestive, endocrine, integumentary, immune, lymphatic, muscular, nervous, reproductive, respiratory, skeletal, urinary, vestibular, and other systems. */ export type AnatomicalSystem = AnatomicalSystemLeaf; interface AnimalShelterLeaf extends LocalBusinessBase { "@type": "AnimalShelter"; } /** Animal shelter. */ export type AnimalShelter = AnimalShelterLeaf | string; interface AnswerBase extends CommentBase { /** A step-by-step or full explanation about Answer. Can outline how this Answer was achieved or contain more broad clarification or statement about it. */ "answerExplanation"?: SchemaValue<Comment | WebContent | IdReference, "answerExplanation">; /** The parent of a question, answer or item in general. Typically used for Q/A discussion threads e.g. a chain of comments with the first comment being an {@link https://schema.org/Article Article} or other {@link https://schema.org/CreativeWork CreativeWork}. See also {@link https://schema.org/comment comment} which points from something to a comment about it. */ "parentItem"?: SchemaValue<Comment | CreativeWork | IdReference, "parentItem">; } interface AnswerLeaf extends AnswerBase { "@type": "Answer"; } /** An answer offered to a question; perhaps correct, perhaps opinionated or wrong. */ export type Answer = AnswerLeaf; interface ApartmentBase extends AccommodationBase { /** The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue. */ "numberOfRooms"?: SchemaValue<Number | QuantitativeValue | IdReference, "numberOfRooms">; /** The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person. */ "occupancy"?: SchemaValue<QuantitativeValue | IdReference, "occupancy">; } interface ApartmentLeaf extends ApartmentBase { "@type": "Apartment"; } /** An apartment (in American English) or flat (in British English) is a self-contained housing unit (a type of residential real estate) that occupies only part of a building (source: Wikipedia, the free encyclopedia, see {@link http://en.wikipedia.org/wiki/Apartment http://en.wikipedia.org/wiki/Apartment}). */ export type Apartment = ApartmentLeaf | string; interface ApartmentComplexBase extends ResidenceBase { /** Indicates the total (available plus unavailable) number of accommodation units in an {@link https://schema.org/ApartmentComplex ApartmentComplex}, or the number of accommodation units for a specific {@link https://schema.org/FloorPlan FloorPlan} (within its specific {@link https://schema.org/ApartmentComplex ApartmentComplex}). See also {@link https://schema.org/numberOfAvailableAccommodationUnits numberOfAvailableAccommodationUnits}. */ "numberOfAccommodationUnits"?: SchemaValue<QuantitativeValue | IdReference, "numberOfAccommodationUnits">; /** Indicates the number of available accommodation units in an {@link https://schema.org/ApartmentComplex ApartmentComplex}, or the number of accommodation units for a specific {@link https://schema.org/FloorPlan FloorPlan} (within its specific {@link https://schema.org/ApartmentComplex ApartmentComplex}). See also {@link https://schema.org/numberOfAccommodationUnits numberOfAccommodationUnits}. */ "numberOfAvailableAccommodationUnits"?: SchemaValue<QuantitativeValue | IdReference, "numberOfAvailableAccommodationUnits">; /** The total integer number of bedrooms in a some {@link https://schema.org/Accommodation Accommodation}, {@link https://schema.org/ApartmentComplex ApartmentComplex} or {@link https://schema.org/FloorPlan FloorPlan}. */ "numberOfBedrooms"?: SchemaValue<Number | QuantitativeValue | IdReference, "numberOfBedrooms">; /** Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value. */ "petsAllowed"?: SchemaValue<Boolean | Text, "petsAllowed">; /** A page providing information on how to book a tour of some {@link https://schema.org/Place Place}, such as an {@link https://schema.org/Accommodation Accommodation} or {@link https://schema.org/ApartmentComplex ApartmentComplex} in a real estate setting, as well as other kinds of tours as appropriate. */ "tourBookingPage"?: SchemaValue<URL, "tourBookingPage">; } interface ApartmentComplexLeaf extends ApartmentComplexBase { "@type": "ApartmentComplex"; } /** Residence type: Apartment complex. */ export type ApartmentComplex = ApartmentComplexLeaf | string; interface APIReferenceBase extends TechArticleBase { /** * Library file name, e.g., mscorlib.dll, system.web.dll. * * @deprecated Consider using https://schema.org/executableLibraryName instead. */ "assembly"?: SchemaValue<Text, "assembly">; /** Associated product/technology version. E.g., .NET Framework 4.5. */ "assemblyVersion"?: SchemaValue<Text, "assemblyVersion">; /** Library file name, e.g., mscorlib.dll, system.web.dll. */ "executableLibraryName"?: SchemaValue<Text, "executableLibraryName">; /** Indicates whether API is managed or unmanaged. */ "programmingModel"?: SchemaValue<Text, "programmingModel">; /** Type of app development: phone, Metro style, desktop, XBox, etc. */ "targetPlatform"?: SchemaValue<Text, "targetPlatform">; } interface APIReferenceLeaf extends APIReferenceBase { "@type": "APIReference"; } /** Reference documentation for application programming interfaces (APIs). */ export type APIReference = APIReferenceLeaf; interface AppendActionLeaf extends InsertActionBase { "@type": "AppendAction"; } /** The act of inserting at the end if an ordered collection. */ export type AppendAction = AppendActionLeaf; interface ApplyActionLeaf extends ActionBase { "@type": "ApplyAction"; } /** * The act of registering to an organization/service without the guarantee to receive it. * * Related actions: * - {@link https://schema.org/RegisterAction RegisterAction}: Unlike RegisterAction, ApplyAction has no guarantees that the application will be accepted. */ export type ApplyAction = ApplyActionLeaf; interface ApprovedIndicationLeaf extends MedicalEntityBase { "@type": "ApprovedIndication"; } /** An indication for a medical therapy that has been formally specified or approved by a regulatory body that regulates use of the therapy; for example, the US FDA approves indications for most drugs in the US. */ export type ApprovedIndication = ApprovedIndicationLeaf; interface AquariumLeaf extends CivicStructureBase { "@type": "Aquarium"; } /** Aquarium. */ export type Aquarium = AquariumLeaf | string; interface ArchiveComponentBase extends CreativeWorkBase { /** {@link https://schema.org/ArchiveOrganization ArchiveOrganization} that holds, keeps or maintains the {@link https://schema.org/ArchiveComponent ArchiveComponent}. */ "holdingArchive"?: SchemaValue<ArchiveOrganization | IdReference, "holdingArchive">; /** Current location of the item. */ "itemLocation"?: SchemaValue<Place | PostalAddress | Text | IdReference, "itemLocation">; } interface ArchiveComponentLeaf extends ArchiveComponentBase { "@type": "ArchiveComponent"; } /** An intangible type to be applied to any archive content, carrying with it a set of properties required to describe archival items and collections. */ export type ArchiveComponent = ArchiveComponentLeaf; interface ArchiveOrganizationBase extends LocalBusinessBase { /** Collection, {@link https://en.wikipedia.org/wiki/Fonds fonds}, or item held, kept or maintained by an {@link https://schema.org/ArchiveOrganization ArchiveOrganization}. */ "archiveHeld"?: SchemaValue<ArchiveComponent | IdReference, "archiveHeld">; } interface ArchiveOrganizationLeaf extends ArchiveOrganizationBase { "@type": "ArchiveOrganization"; } /** An organization with archival holdings. An organization which keeps and preserves archival material and typically makes it accessible to the public. */ export type ArchiveOrganization = ArchiveOrganizationLeaf | string; interface ArriveActionLeaf extends MoveActionBase { "@type": "ArriveAction"; } /** The act of arriving at a place. An agent arrives at a destination from a fromLocation, optionally with participants. */ export type ArriveAction = ArriveActionLeaf; interface ArteryBase extends AnatomicalStructureBase { /** The branches that comprise the arterial structure. */ "arterialBranch"?: SchemaValue<AnatomicalStructure | IdReference, "arterialBranch">; /** The area to which the artery supplies blood. */ "supplyTo"?: SchemaValue<AnatomicalStructure | IdReference, "supplyTo">; } interface ArteryLeaf extends ArteryBase { "@type": "Artery"; } /** A type of blood vessel that specifically carries blood away from the heart. */ export type Artery = ArteryLeaf; interface ArtGalleryLeaf extends LocalBusinessBase { "@type": "ArtGallery"; } /** An art gallery. */ export type ArtGallery = ArtGalleryLeaf | string; interface ArticleBase extends CreativeWorkBase { /** The actual body of the article. */ "articleBody"?: SchemaValue<Text, "articleBody">; /** Articles may belong to one or more 'sections' in a magazine or newspaper, such as Sports, Lifestyle, etc. */ "articleSection"?: SchemaValue<Text, "articleSection">; /** For an {@link https://schema.org/Article Article}, typically a {@link https://schema.org/NewsArticle NewsArticle}, the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc. */ "backstory"?: SchemaValue<CreativeWork | Text | IdReference, "backstory">; /** The page on which the work ends; for example "138" or "xvi". */ "pageEnd"?: SchemaValue<Integer | Text, "pageEnd">; /** The page on which the work starts; for example "135" or "xiii". */ "pageStart"?: SchemaValue<Integer | Text, "pageStart">; /** Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49". */ "pagination"?: SchemaValue<Text, "pagination">; /** * Indicates sections of a Web page that are particularly 'speakable' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the 'speakable' property serves to indicate the parts most likely to be generally useful for speech. * * The _speakable_ property can be repeated an arbitrary number of times, with three kinds of possible 'content-locator' values: * * 1.) _id-value_ URL references - uses _id-value_ of an element in the page being annotated. The simplest use of _speakable_ has (potentially relative) URL values, referencing identified sections of the document concerned. * * 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the {@link https://schema.org/cssSelector cssSelector} property. * * 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the {@link https://schema.org/xpath xpath} property. * * For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, {@link https://schema.org/SpeakableSpecification SpeakableSpecification} which is defined to be a possible value of the _speakable_ property. */ "speakable"?: SchemaValue<SpeakableSpecification | URL | IdReference, "speakable">; /** The number of words in the text of the Article. */ "wordCount"?: SchemaValue<Integer, "wordCount">; } interface ArticleLeaf extends ArticleBase { "@type": "Article"; } /** * An article, such as a news article or piece of investigative report. Newspapers and magazines have articles of many different types and this is intended to cover them all. * * See also {@link http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html blog post}. */ export type Article = ArticleLeaf | AdvertiserContentArticle | NewsArticle | Report | SatiricalArticle | ScholarlyArticle | SocialMediaPosting | TechArticle; interface AskActionBase extends CommunicateActionBase { /** A sub property of object. A question. */ "question"?: SchemaValue<Question | IdReference, "question">; } interface AskActionLeaf extends AskActionBase { "@type": "AskAction"; } /** * The act of posing a question / favor to someone. * * Related actions: * - {@link https://schema.org/ReplyAction ReplyAction}: Appears generally as a response to AskAction. */ export type AskAction = AskActionLeaf; interface AskPublicNewsArticleLeaf extends NewsArticleBase { "@type": "AskPublicNewsArticle"; } /** A {@link https://schema.org/NewsArticle NewsArticle} expressing an open call by a {@link https://schema.org/NewsMediaOrganization NewsMediaOrganization} asking the public for input, insights, clarifications, anecdotes, documentation, etc., on an issue, for reporting purposes. */ export type AskPublicNewsArticle = AskPublicNewsArticleLeaf; interface AssessActionLeaf extends ActionBase { "@type": "AssessAction"; } /** The act of forming one's opinion, reaction or sentiment. */ export type AssessAction = AssessActionLeaf | ChooseAction | IgnoreAction | ReactAction | ReviewAction; interface AssignActionLeaf extends ActionBase { "@type": "AssignAction"; } /** The act of allocating an action/event/task to some destination (someone or something). */ export type AssignAction = AssignActionLeaf; interface AtlasLeaf extends CreativeWorkBase { "@type": "Atlas"; } /** A collection or bound volume of maps, charts, plates or tables, physical or in media form illustrating any subject. */ export type Atlas = AtlasLeaf; interface AttorneyLeaf extends LocalBusinessBase { "@type": "Attorney"; } /** * Professional service: Attorney. * * This type is deprecated - {@link https://schema.org/LegalService LegalService} is more inclusive and less ambiguous. */ export type Attorney = AttorneyLeaf | string; interface AudienceBase extends ThingBase { /** The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.). */ "audienceType"?: SchemaValue<Text, "audienceType">; /** The geographic area associated with the audience. */ "geographicArea"?: SchemaValue<AdministrativeArea | IdReference, "geographicArea">; } interface AudienceLeaf extends AudienceBase { "@type": "Audience"; } /** Intended audience for an item, i.e. the group for whom the item was created. */ export