Code Duplication    Length = 1587-1638 lines in 8 locations

src/ClaimReview.php 1 location

@@ 17-1603 (lines=1587) @@
14
 * @see http://schema.org/ClaimReview
15
 *
16
 */
17
class ClaimReview extends BaseType implements ClaimReviewContract, CreativeWorkContract, ReviewContract, ThingContract
18
{
19
    /**
20
     * The subject matter of the content.
21
     *
22
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
23
     *
24
     * @return static
25
     *
26
     * @see http://schema.org/about
27
     */
28
    public function about($about)
29
    {
30
        return $this->setProperty('about', $about);
31
    }
32
33
    /**
34
     * The human sensory perceptual system or cognitive faculty through which a
35
     * person may process or perceive information. Expected values include:
36
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
37
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
38
     *
39
     * @param string|string[] $accessMode
40
     *
41
     * @return static
42
     *
43
     * @see http://schema.org/accessMode
44
     */
45
    public function accessMode($accessMode)
46
    {
47
        return $this->setProperty('accessMode', $accessMode);
48
    }
49
50
    /**
51
     * A list of single or combined accessModes that are sufficient to
52
     * understand all the intellectual content of a resource. Expected values
53
     * include:  auditory, tactile, textual, visual.
54
     *
55
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
56
     *
57
     * @return static
58
     *
59
     * @see http://schema.org/accessModeSufficient
60
     */
61
    public function accessModeSufficient($accessModeSufficient)
62
    {
63
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
64
    }
65
66
    /**
67
     * Indicates that the resource is compatible with the referenced
68
     * accessibility API ([WebSchemas wiki lists possible
69
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
70
     *
71
     * @param string|string[] $accessibilityAPI
72
     *
73
     * @return static
74
     *
75
     * @see http://schema.org/accessibilityAPI
76
     */
77
    public function accessibilityAPI($accessibilityAPI)
78
    {
79
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
80
    }
81
82
    /**
83
     * Identifies input methods that are sufficient to fully control the
84
     * described resource ([WebSchemas wiki lists possible
85
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
86
     *
87
     * @param string|string[] $accessibilityControl
88
     *
89
     * @return static
90
     *
91
     * @see http://schema.org/accessibilityControl
92
     */
93
    public function accessibilityControl($accessibilityControl)
94
    {
95
        return $this->setProperty('accessibilityControl', $accessibilityControl);
96
    }
97
98
    /**
99
     * Content features of the resource, such as accessible media, alternatives
100
     * and supported enhancements for accessibility ([WebSchemas wiki lists
101
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
102
     *
103
     * @param string|string[] $accessibilityFeature
104
     *
105
     * @return static
106
     *
107
     * @see http://schema.org/accessibilityFeature
108
     */
109
    public function accessibilityFeature($accessibilityFeature)
110
    {
111
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
112
    }
113
114
    /**
115
     * A characteristic of the described resource that is physiologically
116
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
117
     * wiki lists possible
118
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
119
     *
120
     * @param string|string[] $accessibilityHazard
121
     *
122
     * @return static
123
     *
124
     * @see http://schema.org/accessibilityHazard
125
     */
126
    public function accessibilityHazard($accessibilityHazard)
127
    {
128
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
129
    }
130
131
    /**
132
     * A human-readable summary of specific accessibility features or
133
     * deficiencies, consistent with the other accessibility metadata but
134
     * expressing subtleties such as "short descriptions are present but long
135
     * descriptions will be needed for non-visual users" or "short descriptions
136
     * are present and no long descriptions are needed."
137
     *
138
     * @param string|string[] $accessibilitySummary
139
     *
140
     * @return static
141
     *
142
     * @see http://schema.org/accessibilitySummary
143
     */
144
    public function accessibilitySummary($accessibilitySummary)
145
    {
146
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
147
    }
148
149
    /**
150
     * Specifies the Person that is legally accountable for the CreativeWork.
151
     *
152
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
153
     *
154
     * @return static
155
     *
156
     * @see http://schema.org/accountablePerson
157
     */
158
    public function accountablePerson($accountablePerson)
159
    {
160
        return $this->setProperty('accountablePerson', $accountablePerson);
161
    }
162
163
    /**
164
     * An additional type for the item, typically used for adding more specific
165
     * types from external vocabularies in microdata syntax. This is a
166
     * relationship between something and a class that the thing is in. In RDFa
167
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
168
     * attribute - for multiple types. Schema.org tools may have only weaker
169
     * understanding of extra types, in particular those defined externally.
170
     *
171
     * @param string|string[] $additionalType
172
     *
173
     * @return static
174
     *
175
     * @see http://schema.org/additionalType
176
     */
177
    public function additionalType($additionalType)
178
    {
179
        return $this->setProperty('additionalType', $additionalType);
180
    }
181
182
    /**
183
     * The overall rating, based on a collection of reviews or ratings, of the
184
     * item.
185
     *
186
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
187
     *
188
     * @return static
189
     *
190
     * @see http://schema.org/aggregateRating
191
     */
192
    public function aggregateRating($aggregateRating)
193
    {
194
        return $this->setProperty('aggregateRating', $aggregateRating);
195
    }
196
197
    /**
198
     * An alias for the item.
199
     *
200
     * @param string|string[] $alternateName
201
     *
202
     * @return static
203
     *
204
     * @see http://schema.org/alternateName
205
     */
206
    public function alternateName($alternateName)
207
    {
208
        return $this->setProperty('alternateName', $alternateName);
209
    }
210
211
    /**
212
     * A secondary title of the CreativeWork.
213
     *
214
     * @param string|string[] $alternativeHeadline
215
     *
216
     * @return static
217
     *
218
     * @see http://schema.org/alternativeHeadline
219
     */
220
    public function alternativeHeadline($alternativeHeadline)
221
    {
222
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
223
    }
224
225
    /**
226
     * A media object that encodes this CreativeWork. This property is a synonym
227
     * for encoding.
228
     *
229
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
230
     *
231
     * @return static
232
     *
233
     * @see http://schema.org/associatedMedia
234
     */
235
    public function associatedMedia($associatedMedia)
236
    {
237
        return $this->setProperty('associatedMedia', $associatedMedia);
238
    }
239
240
    /**
241
     * An intended audience, i.e. a group for whom something was created.
242
     *
243
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
244
     *
245
     * @return static
246
     *
247
     * @see http://schema.org/audience
248
     */
249
    public function audience($audience)
250
    {
251
        return $this->setProperty('audience', $audience);
252
    }
253
254
    /**
255
     * An embedded audio object.
256
     *
257
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
258
     *
259
     * @return static
260
     *
261
     * @see http://schema.org/audio
262
     */
263
    public function audio($audio)
264
    {
265
        return $this->setProperty('audio', $audio);
266
    }
267
268
    /**
269
     * The author of this content or rating. Please note that author is special
270
     * in that HTML 5 provides a special mechanism for indicating authorship via
271
     * the rel tag. That is equivalent to this and may be used interchangeably.
272
     *
273
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
274
     *
275
     * @return static
276
     *
277
     * @see http://schema.org/author
278
     */
279
    public function author($author)
280
    {
281
        return $this->setProperty('author', $author);
282
    }
283
284
    /**
285
     * An award won by or for this item.
286
     *
287
     * @param string|string[] $award
288
     *
289
     * @return static
290
     *
291
     * @see http://schema.org/award
292
     */
293
    public function award($award)
294
    {
295
        return $this->setProperty('award', $award);
296
    }
297
298
    /**
299
     * Awards won by or for this item.
300
     *
301
     * @param string|string[] $awards
302
     *
303
     * @return static
304
     *
305
     * @see http://schema.org/awards
306
     */
307
    public function awards($awards)
308
    {
309
        return $this->setProperty('awards', $awards);
310
    }
311
312
    /**
313
     * Fictional person connected with a creative work.
314
     *
315
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
316
     *
317
     * @return static
318
     *
319
     * @see http://schema.org/character
320
     */
321
    public function character($character)
322
    {
323
        return $this->setProperty('character', $character);
324
    }
325
326
    /**
327
     * A citation or reference to another creative work, such as another
328
     * publication, web page, scholarly article, etc.
329
     *
330
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
331
     *
332
     * @return static
333
     *
334
     * @see http://schema.org/citation
335
     */
336
    public function citation($citation)
337
    {
338
        return $this->setProperty('citation', $citation);
339
    }
340
341
    /**
342
     * A short summary of the specific claims reviewed in a ClaimReview.
343
     *
344
     * @param string|string[] $claimReviewed
345
     *
346
     * @return static
347
     *
348
     * @see http://schema.org/claimReviewed
349
     */
350
    public function claimReviewed($claimReviewed)
351
    {
352
        return $this->setProperty('claimReviewed', $claimReviewed);
353
    }
354
355
    /**
356
     * Comments, typically from users.
357
     *
358
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
359
     *
360
     * @return static
361
     *
362
     * @see http://schema.org/comment
363
     */
364
    public function comment($comment)
365
    {
366
        return $this->setProperty('comment', $comment);
367
    }
368
369
    /**
370
     * The number of comments this CreativeWork (e.g. Article, Question or
371
     * Answer) has received. This is most applicable to works published in Web
372
     * sites with commenting system; additional comments may exist elsewhere.
373
     *
374
     * @param int|int[] $commentCount
375
     *
376
     * @return static
377
     *
378
     * @see http://schema.org/commentCount
379
     */
380
    public function commentCount($commentCount)
381
    {
382
        return $this->setProperty('commentCount', $commentCount);
383
    }
384
385
    /**
386
     * The location depicted or described in the content. For example, the
387
     * location in a photograph or painting.
388
     *
389
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
390
     *
391
     * @return static
392
     *
393
     * @see http://schema.org/contentLocation
394
     */
395
    public function contentLocation($contentLocation)
396
    {
397
        return $this->setProperty('contentLocation', $contentLocation);
398
    }
399
400
    /**
401
     * Official rating of a piece of content—for example,'MPAA PG-13'.
402
     *
403
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
404
     *
405
     * @return static
406
     *
407
     * @see http://schema.org/contentRating
408
     */
409
    public function contentRating($contentRating)
410
    {
411
        return $this->setProperty('contentRating', $contentRating);
412
    }
413
414
    /**
415
     * A secondary contributor to the CreativeWork or Event.
416
     *
417
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
418
     *
419
     * @return static
420
     *
421
     * @see http://schema.org/contributor
422
     */
423
    public function contributor($contributor)
424
    {
425
        return $this->setProperty('contributor', $contributor);
426
    }
427
428
    /**
429
     * The party holding the legal copyright to the CreativeWork.
430
     *
431
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
432
     *
433
     * @return static
434
     *
435
     * @see http://schema.org/copyrightHolder
436
     */
437
    public function copyrightHolder($copyrightHolder)
438
    {
439
        return $this->setProperty('copyrightHolder', $copyrightHolder);
440
    }
441
442
    /**
443
     * The year during which the claimed copyright for the CreativeWork was
444
     * first asserted.
445
     *
446
     * @param float|float[]|int|int[] $copyrightYear
447
     *
448
     * @return static
449
     *
450
     * @see http://schema.org/copyrightYear
451
     */
452
    public function copyrightYear($copyrightYear)
453
    {
454
        return $this->setProperty('copyrightYear', $copyrightYear);
455
    }
456
457
    /**
458
     * The creator/author of this CreativeWork. This is the same as the Author
459
     * property for CreativeWork.
460
     *
461
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
462
     *
463
     * @return static
464
     *
465
     * @see http://schema.org/creator
466
     */
467
    public function creator($creator)
468
    {
469
        return $this->setProperty('creator', $creator);
470
    }
471
472
    /**
473
     * The date on which the CreativeWork was created or the item was added to a
474
     * DataFeed.
475
     *
476
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
477
     *
478
     * @return static
479
     *
480
     * @see http://schema.org/dateCreated
481
     */
482
    public function dateCreated($dateCreated)
483
    {
484
        return $this->setProperty('dateCreated', $dateCreated);
485
    }
486
487
    /**
488
     * The date on which the CreativeWork was most recently modified or when the
489
     * item's entry was modified within a DataFeed.
490
     *
491
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
492
     *
493
     * @return static
494
     *
495
     * @see http://schema.org/dateModified
496
     */
497
    public function dateModified($dateModified)
498
    {
499
        return $this->setProperty('dateModified', $dateModified);
500
    }
501
502
    /**
503
     * Date of first broadcast/publication.
504
     *
505
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
506
     *
507
     * @return static
508
     *
509
     * @see http://schema.org/datePublished
510
     */
511
    public function datePublished($datePublished)
512
    {
513
        return $this->setProperty('datePublished', $datePublished);
514
    }
515
516
    /**
517
     * A description of the item.
518
     *
519
     * @param string|string[] $description
520
     *
521
     * @return static
522
     *
523
     * @see http://schema.org/description
524
     */
525
    public function description($description)
526
    {
527
        return $this->setProperty('description', $description);
528
    }
529
530
    /**
531
     * A sub property of description. A short description of the item used to
532
     * disambiguate from other, similar items. Information from other properties
533
     * (in particular, name) may be necessary for the description to be useful
534
     * for disambiguation.
535
     *
536
     * @param string|string[] $disambiguatingDescription
537
     *
538
     * @return static
539
     *
540
     * @see http://schema.org/disambiguatingDescription
541
     */
542
    public function disambiguatingDescription($disambiguatingDescription)
543
    {
544
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
545
    }
546
547
    /**
548
     * A link to the page containing the comments of the CreativeWork.
549
     *
550
     * @param string|string[] $discussionUrl
551
     *
552
     * @return static
553
     *
554
     * @see http://schema.org/discussionUrl
555
     */
556
    public function discussionUrl($discussionUrl)
557
    {
558
        return $this->setProperty('discussionUrl', $discussionUrl);
559
    }
560
561
    /**
562
     * Specifies the Person who edited the CreativeWork.
563
     *
564
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
565
     *
566
     * @return static
567
     *
568
     * @see http://schema.org/editor
569
     */
570
    public function editor($editor)
571
    {
572
        return $this->setProperty('editor', $editor);
573
    }
574
575
    /**
576
     * An alignment to an established educational framework.
577
     *
578
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
579
     *
580
     * @return static
581
     *
582
     * @see http://schema.org/educationalAlignment
583
     */
584
    public function educationalAlignment($educationalAlignment)
585
    {
586
        return $this->setProperty('educationalAlignment', $educationalAlignment);
587
    }
588
589
    /**
590
     * The purpose of a work in the context of education; for example,
591
     * 'assignment', 'group work'.
592
     *
593
     * @param string|string[] $educationalUse
594
     *
595
     * @return static
596
     *
597
     * @see http://schema.org/educationalUse
598
     */
599
    public function educationalUse($educationalUse)
600
    {
601
        return $this->setProperty('educationalUse', $educationalUse);
602
    }
603
604
    /**
605
     * A media object that encodes this CreativeWork. This property is a synonym
606
     * for associatedMedia.
607
     *
608
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
609
     *
610
     * @return static
611
     *
612
     * @see http://schema.org/encoding
613
     */
614
    public function encoding($encoding)
615
    {
616
        return $this->setProperty('encoding', $encoding);
617
    }
618
619
    /**
620
     * Media type typically expressed using a MIME format (see [IANA
621
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
622
     * [MDN
623
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
624
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
625
     * .mp3 etc.).
626
     * 
627
     * In cases where a [[CreativeWork]] has several media type representations,
628
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
629
     * particular [[encodingFormat]] information.
630
     * 
631
     * Unregistered or niche encoding and file formats can be indicated instead
632
     * via the most appropriate URL, e.g. defining Web page or a
633
     * Wikipedia/Wikidata entry.
634
     *
635
     * @param string|string[] $encodingFormat
636
     *
637
     * @return static
638
     *
639
     * @see http://schema.org/encodingFormat
640
     */
641
    public function encodingFormat($encodingFormat)
642
    {
643
        return $this->setProperty('encodingFormat', $encodingFormat);
644
    }
645
646
    /**
647
     * A media object that encodes this CreativeWork.
648
     *
649
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
650
     *
651
     * @return static
652
     *
653
     * @see http://schema.org/encodings
654
     */
655
    public function encodings($encodings)
656
    {
657
        return $this->setProperty('encodings', $encodings);
658
    }
659
660
    /**
661
     * A creative work that this work is an
662
     * example/instance/realization/derivation of.
663
     *
664
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
665
     *
666
     * @return static
667
     *
668
     * @see http://schema.org/exampleOfWork
669
     */
670
    public function exampleOfWork($exampleOfWork)
671
    {
672
        return $this->setProperty('exampleOfWork', $exampleOfWork);
673
    }
674
675
    /**
676
     * Date the content expires and is no longer useful or available. For
677
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
678
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
679
     * publisher wants to indicate that it may no longer be relevant (or helpful
680
     * to highlight) after some date.
681
     *
682
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
683
     *
684
     * @return static
685
     *
686
     * @see http://schema.org/expires
687
     */
688
    public function expires($expires)
689
    {
690
        return $this->setProperty('expires', $expires);
691
    }
692
693
    /**
694
     * Media type, typically MIME format (see [IANA
695
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
696
     * the content e.g. application/zip of a SoftwareApplication binary. In
697
     * cases where a CreativeWork has several media type representations,
698
     * 'encoding' can be used to indicate each MediaObject alongside particular
699
     * fileFormat information. Unregistered or niche file formats can be
700
     * indicated instead via the most appropriate URL, e.g. defining Web page or
701
     * a Wikipedia entry.
702
     *
703
     * @param string|string[] $fileFormat
704
     *
705
     * @return static
706
     *
707
     * @see http://schema.org/fileFormat
708
     */
709
    public function fileFormat($fileFormat)
710
    {
711
        return $this->setProperty('fileFormat', $fileFormat);
712
    }
713
714
    /**
715
     * A person or organization that supports (sponsors) something through some
716
     * kind of financial contribution.
717
     *
718
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
719
     *
720
     * @return static
721
     *
722
     * @see http://schema.org/funder
723
     */
724
    public function funder($funder)
725
    {
726
        return $this->setProperty('funder', $funder);
727
    }
728
729
    /**
730
     * Genre of the creative work, broadcast channel or group.
731
     *
732
     * @param string|string[] $genre
733
     *
734
     * @return static
735
     *
736
     * @see http://schema.org/genre
737
     */
738
    public function genre($genre)
739
    {
740
        return $this->setProperty('genre', $genre);
741
    }
742
743
    /**
744
     * Indicates an item or CreativeWork that is part of this item, or
745
     * CreativeWork (in some sense).
746
     *
747
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
748
     *
749
     * @return static
750
     *
751
     * @see http://schema.org/hasPart
752
     */
753
    public function hasPart($hasPart)
754
    {
755
        return $this->setProperty('hasPart', $hasPart);
756
    }
757
758
    /**
759
     * Headline of the article.
760
     *
761
     * @param string|string[] $headline
762
     *
763
     * @return static
764
     *
765
     * @see http://schema.org/headline
766
     */
767
    public function headline($headline)
768
    {
769
        return $this->setProperty('headline', $headline);
770
    }
771
772
    /**
773
     * The identifier property represents any kind of identifier for any kind of
774
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
775
     * dedicated properties for representing many of these, either as textual
776
     * strings or as URL (URI) links. See [background
777
     * notes](/docs/datamodel.html#identifierBg) for more details.
778
     *
779
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
780
     *
781
     * @return static
782
     *
783
     * @see http://schema.org/identifier
784
     */
785
    public function identifier($identifier)
786
    {
787
        return $this->setProperty('identifier', $identifier);
788
    }
789
790
    /**
791
     * An image of the item. This can be a [[URL]] or a fully described
792
     * [[ImageObject]].
793
     *
794
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
795
     *
796
     * @return static
797
     *
798
     * @see http://schema.org/image
799
     */
800
    public function image($image)
801
    {
802
        return $this->setProperty('image', $image);
803
    }
804
805
    /**
806
     * The language of the content or performance or used in an action. Please
807
     * use one of the language codes from the [IETF BCP 47
808
     * standard](http://tools.ietf.org/html/bcp47). See also
809
     * [[availableLanguage]].
810
     *
811
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
812
     *
813
     * @return static
814
     *
815
     * @see http://schema.org/inLanguage
816
     */
817
    public function inLanguage($inLanguage)
818
    {
819
        return $this->setProperty('inLanguage', $inLanguage);
820
    }
821
822
    /**
823
     * The number of interactions for the CreativeWork using the WebSite or
824
     * SoftwareApplication. The most specific child type of InteractionCounter
825
     * should be used.
826
     *
827
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
828
     *
829
     * @return static
830
     *
831
     * @see http://schema.org/interactionStatistic
832
     */
833
    public function interactionStatistic($interactionStatistic)
834
    {
835
        return $this->setProperty('interactionStatistic', $interactionStatistic);
836
    }
837
838
    /**
839
     * The predominant mode of learning supported by the learning resource.
840
     * Acceptable values are 'active', 'expositive', or 'mixed'.
841
     *
842
     * @param string|string[] $interactivityType
843
     *
844
     * @return static
845
     *
846
     * @see http://schema.org/interactivityType
847
     */
848
    public function interactivityType($interactivityType)
849
    {
850
        return $this->setProperty('interactivityType', $interactivityType);
851
    }
852
853
    /**
854
     * A flag to signal that the item, event, or place is accessible for free.
855
     *
856
     * @param bool|bool[] $isAccessibleForFree
857
     *
858
     * @return static
859
     *
860
     * @see http://schema.org/isAccessibleForFree
861
     */
862
    public function isAccessibleForFree($isAccessibleForFree)
863
    {
864
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
865
    }
866
867
    /**
868
     * A resource from which this work is derived or from which it is a
869
     * modification or adaption.
870
     *
871
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
872
     *
873
     * @return static
874
     *
875
     * @see http://schema.org/isBasedOn
876
     */
877
    public function isBasedOn($isBasedOn)
878
    {
879
        return $this->setProperty('isBasedOn', $isBasedOn);
880
    }
881
882
    /**
883
     * A resource that was used in the creation of this resource. This term can
884
     * be repeated for multiple sources. For example,
885
     * http://example.com/great-multiplication-intro.html.
886
     *
887
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
888
     *
889
     * @return static
890
     *
891
     * @see http://schema.org/isBasedOnUrl
892
     */
893
    public function isBasedOnUrl($isBasedOnUrl)
894
    {
895
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
896
    }
897
898
    /**
899
     * Indicates whether this content is family friendly.
900
     *
901
     * @param bool|bool[] $isFamilyFriendly
902
     *
903
     * @return static
904
     *
905
     * @see http://schema.org/isFamilyFriendly
906
     */
907
    public function isFamilyFriendly($isFamilyFriendly)
908
    {
909
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
910
    }
911
912
    /**
913
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
914
     * some sense), is part of.
915
     *
916
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
917
     *
918
     * @return static
919
     *
920
     * @see http://schema.org/isPartOf
921
     */
922
    public function isPartOf($isPartOf)
923
    {
924
        return $this->setProperty('isPartOf', $isPartOf);
925
    }
926
927
    /**
928
     * The item that is being reviewed/rated.
929
     *
930
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $itemReviewed
931
     *
932
     * @return static
933
     *
934
     * @see http://schema.org/itemReviewed
935
     */
936
    public function itemReviewed($itemReviewed)
937
    {
938
        return $this->setProperty('itemReviewed', $itemReviewed);
939
    }
940
941
    /**
942
     * Keywords or tags used to describe this content. Multiple entries in a
943
     * keywords list are typically delimited by commas.
944
     *
945
     * @param string|string[] $keywords
946
     *
947
     * @return static
948
     *
949
     * @see http://schema.org/keywords
950
     */
951
    public function keywords($keywords)
952
    {
953
        return $this->setProperty('keywords', $keywords);
954
    }
955
956
    /**
957
     * The predominant type or kind characterizing the learning resource. For
958
     * example, 'presentation', 'handout'.
959
     *
960
     * @param string|string[] $learningResourceType
961
     *
962
     * @return static
963
     *
964
     * @see http://schema.org/learningResourceType
965
     */
966
    public function learningResourceType($learningResourceType)
967
    {
968
        return $this->setProperty('learningResourceType', $learningResourceType);
969
    }
970
971
    /**
972
     * A license document that applies to this content, typically indicated by
973
     * URL.
974
     *
975
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
976
     *
977
     * @return static
978
     *
979
     * @see http://schema.org/license
980
     */
981
    public function license($license)
982
    {
983
        return $this->setProperty('license', $license);
984
    }
985
986
    /**
987
     * The location where the CreativeWork was created, which may not be the
988
     * same as the location depicted in the CreativeWork.
989
     *
990
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
991
     *
992
     * @return static
993
     *
994
     * @see http://schema.org/locationCreated
995
     */
996
    public function locationCreated($locationCreated)
997
    {
998
        return $this->setProperty('locationCreated', $locationCreated);
999
    }
1000
1001
    /**
1002
     * Indicates the primary entity described in some page or other
1003
     * CreativeWork.
1004
     *
1005
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1006
     *
1007
     * @return static
1008
     *
1009
     * @see http://schema.org/mainEntity
1010
     */
1011
    public function mainEntity($mainEntity)
1012
    {
1013
        return $this->setProperty('mainEntity', $mainEntity);
1014
    }
1015
1016
    /**
1017
     * Indicates a page (or other CreativeWork) for which this thing is the main
1018
     * entity being described. See [background
1019
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1020
     *
1021
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1022
     *
1023
     * @return static
1024
     *
1025
     * @see http://schema.org/mainEntityOfPage
1026
     */
1027
    public function mainEntityOfPage($mainEntityOfPage)
1028
    {
1029
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1030
    }
1031
1032
    /**
1033
     * A material that something is made from, e.g. leather, wool, cotton,
1034
     * paper.
1035
     *
1036
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1037
     *
1038
     * @return static
1039
     *
1040
     * @see http://schema.org/material
1041
     */
1042
    public function material($material)
1043
    {
1044
        return $this->setProperty('material', $material);
1045
    }
1046
1047
    /**
1048
     * Indicates that the CreativeWork contains a reference to, but is not
1049
     * necessarily about a concept.
1050
     *
1051
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1052
     *
1053
     * @return static
1054
     *
1055
     * @see http://schema.org/mentions
1056
     */
1057
    public function mentions($mentions)
1058
    {
1059
        return $this->setProperty('mentions', $mentions);
1060
    }
1061
1062
    /**
1063
     * The name of the item.
1064
     *
1065
     * @param string|string[] $name
1066
     *
1067
     * @return static
1068
     *
1069
     * @see http://schema.org/name
1070
     */
1071
    public function name($name)
1072
    {
1073
        return $this->setProperty('name', $name);
1074
    }
1075
1076
    /**
1077
     * An offer to provide this item—for example, an offer to sell a
1078
     * product, rent the DVD of a movie, perform a service, or give away tickets
1079
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1080
     * offered, i.e. sell, lease, etc. This property can also be used to
1081
     * describe a [[Demand]]. While this property is listed as expected on a
1082
     * number of common types, it can be used in others. In that case, using a
1083
     * second type, such as Product or a subtype of Product, can clarify the
1084
     * nature of the offer.
1085
     *
1086
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1087
     *
1088
     * @return static
1089
     *
1090
     * @see http://schema.org/offers
1091
     */
1092
    public function offers($offers)
1093
    {
1094
        return $this->setProperty('offers', $offers);
1095
    }
1096
1097
    /**
1098
     * The position of an item in a series or sequence of items.
1099
     *
1100
     * @param int|int[]|string|string[] $position
1101
     *
1102
     * @return static
1103
     *
1104
     * @see http://schema.org/position
1105
     */
1106
    public function position($position)
1107
    {
1108
        return $this->setProperty('position', $position);
1109
    }
1110
1111
    /**
1112
     * Indicates a potential Action, which describes an idealized action in
1113
     * which this thing would play an 'object' role.
1114
     *
1115
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1116
     *
1117
     * @return static
1118
     *
1119
     * @see http://schema.org/potentialAction
1120
     */
1121
    public function potentialAction($potentialAction)
1122
    {
1123
        return $this->setProperty('potentialAction', $potentialAction);
1124
    }
1125
1126
    /**
1127
     * The person or organization who produced the work (e.g. music album,
1128
     * movie, tv/radio series etc.).
1129
     *
1130
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1131
     *
1132
     * @return static
1133
     *
1134
     * @see http://schema.org/producer
1135
     */
1136
    public function producer($producer)
1137
    {
1138
        return $this->setProperty('producer', $producer);
1139
    }
1140
1141
    /**
1142
     * The service provider, service operator, or service performer; the goods
1143
     * producer. Another party (a seller) may offer those services or goods on
1144
     * behalf of the provider. A provider may also serve as the seller.
1145
     *
1146
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1147
     *
1148
     * @return static
1149
     *
1150
     * @see http://schema.org/provider
1151
     */
1152
    public function provider($provider)
1153
    {
1154
        return $this->setProperty('provider', $provider);
1155
    }
1156
1157
    /**
1158
     * A publication event associated with the item.
1159
     *
1160
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1161
     *
1162
     * @return static
1163
     *
1164
     * @see http://schema.org/publication
1165
     */
1166
    public function publication($publication)
1167
    {
1168
        return $this->setProperty('publication', $publication);
1169
    }
1170
1171
    /**
1172
     * The publisher of the creative work.
1173
     *
1174
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1175
     *
1176
     * @return static
1177
     *
1178
     * @see http://schema.org/publisher
1179
     */
1180
    public function publisher($publisher)
1181
    {
1182
        return $this->setProperty('publisher', $publisher);
1183
    }
1184
1185
    /**
1186
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1187
     * document describing the editorial principles of an [[Organization]] (or
1188
     * individual e.g. a [[Person]] writing a blog) that relate to their
1189
     * activities as a publisher, e.g. ethics or diversity policies. When
1190
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1191
     * those of the party primarily responsible for the creation of the
1192
     * [[CreativeWork]].
1193
     * 
1194
     * While such policies are most typically expressed in natural language,
1195
     * sometimes related information (e.g. indicating a [[funder]]) can be
1196
     * expressed using schema.org terminology.
1197
     *
1198
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1199
     *
1200
     * @return static
1201
     *
1202
     * @see http://schema.org/publishingPrinciples
1203
     */
1204
    public function publishingPrinciples($publishingPrinciples)
1205
    {
1206
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1207
    }
1208
1209
    /**
1210
     * The Event where the CreativeWork was recorded. The CreativeWork may
1211
     * capture all or part of the event.
1212
     *
1213
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1214
     *
1215
     * @return static
1216
     *
1217
     * @see http://schema.org/recordedAt
1218
     */
1219
    public function recordedAt($recordedAt)
1220
    {
1221
        return $this->setProperty('recordedAt', $recordedAt);
1222
    }
1223
1224
    /**
1225
     * The place and time the release was issued, expressed as a
1226
     * PublicationEvent.
1227
     *
1228
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1229
     *
1230
     * @return static
1231
     *
1232
     * @see http://schema.org/releasedEvent
1233
     */
1234
    public function releasedEvent($releasedEvent)
1235
    {
1236
        return $this->setProperty('releasedEvent', $releasedEvent);
1237
    }
1238
1239
    /**
1240
     * A review of the item.
1241
     *
1242
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1243
     *
1244
     * @return static
1245
     *
1246
     * @see http://schema.org/review
1247
     */
1248
    public function review($review)
1249
    {
1250
        return $this->setProperty('review', $review);
1251
    }
1252
1253
    /**
1254
     * This Review or Rating is relevant to this part or facet of the
1255
     * itemReviewed.
1256
     *
1257
     * @param string|string[] $reviewAspect
1258
     *
1259
     * @return static
1260
     *
1261
     * @see http://schema.org/reviewAspect
1262
     */
1263
    public function reviewAspect($reviewAspect)
1264
    {
1265
        return $this->setProperty('reviewAspect', $reviewAspect);
1266
    }
1267
1268
    /**
1269
     * The actual body of the review.
1270
     *
1271
     * @param string|string[] $reviewBody
1272
     *
1273
     * @return static
1274
     *
1275
     * @see http://schema.org/reviewBody
1276
     */
1277
    public function reviewBody($reviewBody)
1278
    {
1279
        return $this->setProperty('reviewBody', $reviewBody);
1280
    }
1281
1282
    /**
1283
     * The rating given in this review. Note that reviews can themselves be
1284
     * rated. The ```reviewRating``` applies to rating given by the review. The
1285
     * [[aggregateRating]] property applies to the review itself, as a creative
1286
     * work.
1287
     *
1288
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[] $reviewRating
1289
     *
1290
     * @return static
1291
     *
1292
     * @see http://schema.org/reviewRating
1293
     */
1294
    public function reviewRating($reviewRating)
1295
    {
1296
        return $this->setProperty('reviewRating', $reviewRating);
1297
    }
1298
1299
    /**
1300
     * Review of the item.
1301
     *
1302
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1303
     *
1304
     * @return static
1305
     *
1306
     * @see http://schema.org/reviews
1307
     */
1308
    public function reviews($reviews)
1309
    {
1310
        return $this->setProperty('reviews', $reviews);
1311
    }
1312
1313
    /**
1314
     * URL of a reference Web page that unambiguously indicates the item's
1315
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1316
     * official website.
1317
     *
1318
     * @param string|string[] $sameAs
1319
     *
1320
     * @return static
1321
     *
1322
     * @see http://schema.org/sameAs
1323
     */
1324
    public function sameAs($sameAs)
1325
    {
1326
        return $this->setProperty('sameAs', $sameAs);
1327
    }
1328
1329
    /**
1330
     * Indicates (by URL or string) a particular version of a schema used in
1331
     * some CreativeWork. For example, a document could declare a schemaVersion
1332
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1333
     * of schema version was required by some application.
1334
     *
1335
     * @param string|string[] $schemaVersion
1336
     *
1337
     * @return static
1338
     *
1339
     * @see http://schema.org/schemaVersion
1340
     */
1341
    public function schemaVersion($schemaVersion)
1342
    {
1343
        return $this->setProperty('schemaVersion', $schemaVersion);
1344
    }
1345
1346
    /**
1347
     * The Organization on whose behalf the creator was working.
1348
     *
1349
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1350
     *
1351
     * @return static
1352
     *
1353
     * @see http://schema.org/sourceOrganization
1354
     */
1355
    public function sourceOrganization($sourceOrganization)
1356
    {
1357
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1358
    }
1359
1360
    /**
1361
     * The "spatial" property can be used in cases when more specific properties
1362
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1363
     * not known to be appropriate.
1364
     *
1365
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1366
     *
1367
     * @return static
1368
     *
1369
     * @see http://schema.org/spatial
1370
     */
1371
    public function spatial($spatial)
1372
    {
1373
        return $this->setProperty('spatial', $spatial);
1374
    }
1375
1376
    /**
1377
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1378
     * the focus of the content. It is a subproperty of
1379
     *       contentLocation intended primarily for more technical and detailed
1380
     * materials. For example with a Dataset, it indicates
1381
     *       areas that the dataset describes: a dataset of New York weather
1382
     * would have spatialCoverage which was the place: the state of New York.
1383
     *
1384
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1385
     *
1386
     * @return static
1387
     *
1388
     * @see http://schema.org/spatialCoverage
1389
     */
1390
    public function spatialCoverage($spatialCoverage)
1391
    {
1392
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1393
    }
1394
1395
    /**
1396
     * A person or organization that supports a thing through a pledge, promise,
1397
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1398
     * corporate sponsor of an event.
1399
     *
1400
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1401
     *
1402
     * @return static
1403
     *
1404
     * @see http://schema.org/sponsor
1405
     */
1406
    public function sponsor($sponsor)
1407
    {
1408
        return $this->setProperty('sponsor', $sponsor);
1409
    }
1410
1411
    /**
1412
     * A CreativeWork or Event about this Thing.
1413
     *
1414
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1415
     *
1416
     * @return static
1417
     *
1418
     * @see http://schema.org/subjectOf
1419
     */
1420
    public function subjectOf($subjectOf)
1421
    {
1422
        return $this->setProperty('subjectOf', $subjectOf);
1423
    }
1424
1425
    /**
1426
     * The "temporal" property can be used in cases where more specific
1427
     * properties
1428
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1429
     * [[datePublished]]) are not known to be appropriate.
1430
     *
1431
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1432
     *
1433
     * @return static
1434
     *
1435
     * @see http://schema.org/temporal
1436
     */
1437
    public function temporal($temporal)
1438
    {
1439
        return $this->setProperty('temporal', $temporal);
1440
    }
1441
1442
    /**
1443
     * The temporalCoverage of a CreativeWork indicates the period that the
1444
     * content applies to, i.e. that it describes, either as a DateTime or as a
1445
     * textual string indicating a time period in [ISO 8601 time interval
1446
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1447
     *       the case of a Dataset it will typically indicate the relevant time
1448
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1449
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1450
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1451
     * temporalCoverage in broader terms - textually or via well-known URL.
1452
     *       Written works such as books may sometimes have precise temporal
1453
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1454
     * interval format format via "1939/1945".
1455
     * 
1456
     * Open-ended date ranges can be written with ".." in place of the end date.
1457
     * For example, "2015-11/.." indicates a range beginning in November 2015
1458
     * and with no specified final date. This is tentative and might be updated
1459
     * in future when ISO 8601 is officially updated.
1460
     *
1461
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1462
     *
1463
     * @return static
1464
     *
1465
     * @see http://schema.org/temporalCoverage
1466
     */
1467
    public function temporalCoverage($temporalCoverage)
1468
    {
1469
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1470
    }
1471
1472
    /**
1473
     * The textual content of this CreativeWork.
1474
     *
1475
     * @param string|string[] $text
1476
     *
1477
     * @return static
1478
     *
1479
     * @see http://schema.org/text
1480
     */
1481
    public function text($text)
1482
    {
1483
        return $this->setProperty('text', $text);
1484
    }
1485
1486
    /**
1487
     * A thumbnail image relevant to the Thing.
1488
     *
1489
     * @param string|string[] $thumbnailUrl
1490
     *
1491
     * @return static
1492
     *
1493
     * @see http://schema.org/thumbnailUrl
1494
     */
1495
    public function thumbnailUrl($thumbnailUrl)
1496
    {
1497
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1498
    }
1499
1500
    /**
1501
     * Approximate or typical time it takes to work with or through this
1502
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1503
     * 'PT1H25M'.
1504
     *
1505
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1506
     *
1507
     * @return static
1508
     *
1509
     * @see http://schema.org/timeRequired
1510
     */
1511
    public function timeRequired($timeRequired)
1512
    {
1513
        return $this->setProperty('timeRequired', $timeRequired);
1514
    }
1515
1516
    /**
1517
     * Organization or person who adapts a creative work to different languages,
1518
     * regional differences and technical requirements of a target market, or
1519
     * that translates during some event.
1520
     *
1521
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1522
     *
1523
     * @return static
1524
     *
1525
     * @see http://schema.org/translator
1526
     */
1527
    public function translator($translator)
1528
    {
1529
        return $this->setProperty('translator', $translator);
1530
    }
1531
1532
    /**
1533
     * The typical expected age range, e.g. '7-9', '11-'.
1534
     *
1535
     * @param string|string[] $typicalAgeRange
1536
     *
1537
     * @return static
1538
     *
1539
     * @see http://schema.org/typicalAgeRange
1540
     */
1541
    public function typicalAgeRange($typicalAgeRange)
1542
    {
1543
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1544
    }
1545
1546
    /**
1547
     * URL of the item.
1548
     *
1549
     * @param string|string[] $url
1550
     *
1551
     * @return static
1552
     *
1553
     * @see http://schema.org/url
1554
     */
1555
    public function url($url)
1556
    {
1557
        return $this->setProperty('url', $url);
1558
    }
1559
1560
    /**
1561
     * The version of the CreativeWork embodied by a specified resource.
1562
     *
1563
     * @param float|float[]|int|int[]|string|string[] $version
1564
     *
1565
     * @return static
1566
     *
1567
     * @see http://schema.org/version
1568
     */
1569
    public function version($version)
1570
    {
1571
        return $this->setProperty('version', $version);
1572
    }
1573
1574
    /**
1575
     * An embedded video object.
1576
     *
1577
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1578
     *
1579
     * @return static
1580
     *
1581
     * @see http://schema.org/video
1582
     */
1583
    public function video($video)
1584
    {
1585
        return $this->setProperty('video', $video);
1586
    }
1587
1588
    /**
1589
     * Example/instance/realization/derivation of the concept of this creative
1590
     * work. eg. The paperback edition, first edition, or eBook.
1591
     *
1592
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1593
     *
1594
     * @return static
1595
     *
1596
     * @see http://schema.org/workExample
1597
     */
1598
    public function workExample($workExample)
1599
    {
1600
        return $this->setProperty('workExample', $workExample);
1601
    }
1602
1603
}
1604

src/DataFeed.php 1 location

@@ 17-1632 (lines=1616) @@
14
 * @see http://schema.org/DataFeed
15
 *
16
 */
17
class DataFeed extends BaseType implements DataFeedContract, CreativeWorkContract, DatasetContract, ThingContract
18
{
19
    /**
20
     * The subject matter of the content.
21
     *
22
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
23
     *
24
     * @return static
25
     *
26
     * @see http://schema.org/about
27
     */
28
    public function about($about)
29
    {
30
        return $this->setProperty('about', $about);
31
    }
32
33
    /**
34
     * The human sensory perceptual system or cognitive faculty through which a
35
     * person may process or perceive information. Expected values include:
36
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
37
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
38
     *
39
     * @param string|string[] $accessMode
40
     *
41
     * @return static
42
     *
43
     * @see http://schema.org/accessMode
44
     */
45
    public function accessMode($accessMode)
46
    {
47
        return $this->setProperty('accessMode', $accessMode);
48
    }
49
50
    /**
51
     * A list of single or combined accessModes that are sufficient to
52
     * understand all the intellectual content of a resource. Expected values
53
     * include:  auditory, tactile, textual, visual.
54
     *
55
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
56
     *
57
     * @return static
58
     *
59
     * @see http://schema.org/accessModeSufficient
60
     */
61
    public function accessModeSufficient($accessModeSufficient)
62
    {
63
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
64
    }
65
66
    /**
67
     * Indicates that the resource is compatible with the referenced
68
     * accessibility API ([WebSchemas wiki lists possible
69
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
70
     *
71
     * @param string|string[] $accessibilityAPI
72
     *
73
     * @return static
74
     *
75
     * @see http://schema.org/accessibilityAPI
76
     */
77
    public function accessibilityAPI($accessibilityAPI)
78
    {
79
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
80
    }
81
82
    /**
83
     * Identifies input methods that are sufficient to fully control the
84
     * described resource ([WebSchemas wiki lists possible
85
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
86
     *
87
     * @param string|string[] $accessibilityControl
88
     *
89
     * @return static
90
     *
91
     * @see http://schema.org/accessibilityControl
92
     */
93
    public function accessibilityControl($accessibilityControl)
94
    {
95
        return $this->setProperty('accessibilityControl', $accessibilityControl);
96
    }
97
98
    /**
99
     * Content features of the resource, such as accessible media, alternatives
100
     * and supported enhancements for accessibility ([WebSchemas wiki lists
101
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
102
     *
103
     * @param string|string[] $accessibilityFeature
104
     *
105
     * @return static
106
     *
107
     * @see http://schema.org/accessibilityFeature
108
     */
109
    public function accessibilityFeature($accessibilityFeature)
110
    {
111
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
112
    }
113
114
    /**
115
     * A characteristic of the described resource that is physiologically
116
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
117
     * wiki lists possible
118
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
119
     *
120
     * @param string|string[] $accessibilityHazard
121
     *
122
     * @return static
123
     *
124
     * @see http://schema.org/accessibilityHazard
125
     */
126
    public function accessibilityHazard($accessibilityHazard)
127
    {
128
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
129
    }
130
131
    /**
132
     * A human-readable summary of specific accessibility features or
133
     * deficiencies, consistent with the other accessibility metadata but
134
     * expressing subtleties such as "short descriptions are present but long
135
     * descriptions will be needed for non-visual users" or "short descriptions
136
     * are present and no long descriptions are needed."
137
     *
138
     * @param string|string[] $accessibilitySummary
139
     *
140
     * @return static
141
     *
142
     * @see http://schema.org/accessibilitySummary
143
     */
144
    public function accessibilitySummary($accessibilitySummary)
145
    {
146
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
147
    }
148
149
    /**
150
     * Specifies the Person that is legally accountable for the CreativeWork.
151
     *
152
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
153
     *
154
     * @return static
155
     *
156
     * @see http://schema.org/accountablePerson
157
     */
158
    public function accountablePerson($accountablePerson)
159
    {
160
        return $this->setProperty('accountablePerson', $accountablePerson);
161
    }
162
163
    /**
164
     * An additional type for the item, typically used for adding more specific
165
     * types from external vocabularies in microdata syntax. This is a
166
     * relationship between something and a class that the thing is in. In RDFa
167
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
168
     * attribute - for multiple types. Schema.org tools may have only weaker
169
     * understanding of extra types, in particular those defined externally.
170
     *
171
     * @param string|string[] $additionalType
172
     *
173
     * @return static
174
     *
175
     * @see http://schema.org/additionalType
176
     */
177
    public function additionalType($additionalType)
178
    {
179
        return $this->setProperty('additionalType', $additionalType);
180
    }
181
182
    /**
183
     * The overall rating, based on a collection of reviews or ratings, of the
184
     * item.
185
     *
186
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
187
     *
188
     * @return static
189
     *
190
     * @see http://schema.org/aggregateRating
191
     */
192
    public function aggregateRating($aggregateRating)
193
    {
194
        return $this->setProperty('aggregateRating', $aggregateRating);
195
    }
196
197
    /**
198
     * An alias for the item.
199
     *
200
     * @param string|string[] $alternateName
201
     *
202
     * @return static
203
     *
204
     * @see http://schema.org/alternateName
205
     */
206
    public function alternateName($alternateName)
207
    {
208
        return $this->setProperty('alternateName', $alternateName);
209
    }
210
211
    /**
212
     * A secondary title of the CreativeWork.
213
     *
214
     * @param string|string[] $alternativeHeadline
215
     *
216
     * @return static
217
     *
218
     * @see http://schema.org/alternativeHeadline
219
     */
220
    public function alternativeHeadline($alternativeHeadline)
221
    {
222
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
223
    }
224
225
    /**
226
     * A media object that encodes this CreativeWork. This property is a synonym
227
     * for encoding.
228
     *
229
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
230
     *
231
     * @return static
232
     *
233
     * @see http://schema.org/associatedMedia
234
     */
235
    public function associatedMedia($associatedMedia)
236
    {
237
        return $this->setProperty('associatedMedia', $associatedMedia);
238
    }
239
240
    /**
241
     * An intended audience, i.e. a group for whom something was created.
242
     *
243
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
244
     *
245
     * @return static
246
     *
247
     * @see http://schema.org/audience
248
     */
249
    public function audience($audience)
250
    {
251
        return $this->setProperty('audience', $audience);
252
    }
253
254
    /**
255
     * An embedded audio object.
256
     *
257
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
258
     *
259
     * @return static
260
     *
261
     * @see http://schema.org/audio
262
     */
263
    public function audio($audio)
264
    {
265
        return $this->setProperty('audio', $audio);
266
    }
267
268
    /**
269
     * The author of this content or rating. Please note that author is special
270
     * in that HTML 5 provides a special mechanism for indicating authorship via
271
     * the rel tag. That is equivalent to this and may be used interchangeably.
272
     *
273
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
274
     *
275
     * @return static
276
     *
277
     * @see http://schema.org/author
278
     */
279
    public function author($author)
280
    {
281
        return $this->setProperty('author', $author);
282
    }
283
284
    /**
285
     * An award won by or for this item.
286
     *
287
     * @param string|string[] $award
288
     *
289
     * @return static
290
     *
291
     * @see http://schema.org/award
292
     */
293
    public function award($award)
294
    {
295
        return $this->setProperty('award', $award);
296
    }
297
298
    /**
299
     * Awards won by or for this item.
300
     *
301
     * @param string|string[] $awards
302
     *
303
     * @return static
304
     *
305
     * @see http://schema.org/awards
306
     */
307
    public function awards($awards)
308
    {
309
        return $this->setProperty('awards', $awards);
310
    }
311
312
    /**
313
     * A data catalog which contains this dataset.
314
     *
315
     * @param \Spatie\SchemaOrg\Contracts\DataCatalogContract|\Spatie\SchemaOrg\Contracts\DataCatalogContract[] $catalog
316
     *
317
     * @return static
318
     *
319
     * @see http://schema.org/catalog
320
     */
321
    public function catalog($catalog)
322
    {
323
        return $this->setProperty('catalog', $catalog);
324
    }
325
326
    /**
327
     * Fictional person connected with a creative work.
328
     *
329
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
330
     *
331
     * @return static
332
     *
333
     * @see http://schema.org/character
334
     */
335
    public function character($character)
336
    {
337
        return $this->setProperty('character', $character);
338
    }
339
340
    /**
341
     * A citation or reference to another creative work, such as another
342
     * publication, web page, scholarly article, etc.
343
     *
344
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
345
     *
346
     * @return static
347
     *
348
     * @see http://schema.org/citation
349
     */
350
    public function citation($citation)
351
    {
352
        return $this->setProperty('citation', $citation);
353
    }
354
355
    /**
356
     * Comments, typically from users.
357
     *
358
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
359
     *
360
     * @return static
361
     *
362
     * @see http://schema.org/comment
363
     */
364
    public function comment($comment)
365
    {
366
        return $this->setProperty('comment', $comment);
367
    }
368
369
    /**
370
     * The number of comments this CreativeWork (e.g. Article, Question or
371
     * Answer) has received. This is most applicable to works published in Web
372
     * sites with commenting system; additional comments may exist elsewhere.
373
     *
374
     * @param int|int[] $commentCount
375
     *
376
     * @return static
377
     *
378
     * @see http://schema.org/commentCount
379
     */
380
    public function commentCount($commentCount)
381
    {
382
        return $this->setProperty('commentCount', $commentCount);
383
    }
384
385
    /**
386
     * The location depicted or described in the content. For example, the
387
     * location in a photograph or painting.
388
     *
389
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
390
     *
391
     * @return static
392
     *
393
     * @see http://schema.org/contentLocation
394
     */
395
    public function contentLocation($contentLocation)
396
    {
397
        return $this->setProperty('contentLocation', $contentLocation);
398
    }
399
400
    /**
401
     * Official rating of a piece of content—for example,'MPAA PG-13'.
402
     *
403
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
404
     *
405
     * @return static
406
     *
407
     * @see http://schema.org/contentRating
408
     */
409
    public function contentRating($contentRating)
410
    {
411
        return $this->setProperty('contentRating', $contentRating);
412
    }
413
414
    /**
415
     * A secondary contributor to the CreativeWork or Event.
416
     *
417
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
418
     *
419
     * @return static
420
     *
421
     * @see http://schema.org/contributor
422
     */
423
    public function contributor($contributor)
424
    {
425
        return $this->setProperty('contributor', $contributor);
426
    }
427
428
    /**
429
     * The party holding the legal copyright to the CreativeWork.
430
     *
431
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
432
     *
433
     * @return static
434
     *
435
     * @see http://schema.org/copyrightHolder
436
     */
437
    public function copyrightHolder($copyrightHolder)
438
    {
439
        return $this->setProperty('copyrightHolder', $copyrightHolder);
440
    }
441
442
    /**
443
     * The year during which the claimed copyright for the CreativeWork was
444
     * first asserted.
445
     *
446
     * @param float|float[]|int|int[] $copyrightYear
447
     *
448
     * @return static
449
     *
450
     * @see http://schema.org/copyrightYear
451
     */
452
    public function copyrightYear($copyrightYear)
453
    {
454
        return $this->setProperty('copyrightYear', $copyrightYear);
455
    }
456
457
    /**
458
     * The creator/author of this CreativeWork. This is the same as the Author
459
     * property for CreativeWork.
460
     *
461
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
462
     *
463
     * @return static
464
     *
465
     * @see http://schema.org/creator
466
     */
467
    public function creator($creator)
468
    {
469
        return $this->setProperty('creator', $creator);
470
    }
471
472
    /**
473
     * An item within in a data feed. Data feeds may have many elements.
474
     *
475
     * @param \Spatie\SchemaOrg\Contracts\DataFeedItemContract|\Spatie\SchemaOrg\Contracts\DataFeedItemContract[]|\Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[]|string|string[] $dataFeedElement
476
     *
477
     * @return static
478
     *
479
     * @see http://schema.org/dataFeedElement
480
     */
481
    public function dataFeedElement($dataFeedElement)
482
    {
483
        return $this->setProperty('dataFeedElement', $dataFeedElement);
484
    }
485
486
    /**
487
     * The range of temporal applicability of a dataset, e.g. for a 2011 census
488
     * dataset, the year 2011 (in ISO 8601 time interval format).
489
     *
490
     * @param \DateTimeInterface|\DateTimeInterface[] $datasetTimeInterval
491
     *
492
     * @return static
493
     *
494
     * @see http://schema.org/datasetTimeInterval
495
     */
496
    public function datasetTimeInterval($datasetTimeInterval)
497
    {
498
        return $this->setProperty('datasetTimeInterval', $datasetTimeInterval);
499
    }
500
501
    /**
502
     * The date on which the CreativeWork was created or the item was added to a
503
     * DataFeed.
504
     *
505
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
506
     *
507
     * @return static
508
     *
509
     * @see http://schema.org/dateCreated
510
     */
511
    public function dateCreated($dateCreated)
512
    {
513
        return $this->setProperty('dateCreated', $dateCreated);
514
    }
515
516
    /**
517
     * The date on which the CreativeWork was most recently modified or when the
518
     * item's entry was modified within a DataFeed.
519
     *
520
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
521
     *
522
     * @return static
523
     *
524
     * @see http://schema.org/dateModified
525
     */
526
    public function dateModified($dateModified)
527
    {
528
        return $this->setProperty('dateModified', $dateModified);
529
    }
530
531
    /**
532
     * Date of first broadcast/publication.
533
     *
534
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
535
     *
536
     * @return static
537
     *
538
     * @see http://schema.org/datePublished
539
     */
540
    public function datePublished($datePublished)
541
    {
542
        return $this->setProperty('datePublished', $datePublished);
543
    }
544
545
    /**
546
     * A description of the item.
547
     *
548
     * @param string|string[] $description
549
     *
550
     * @return static
551
     *
552
     * @see http://schema.org/description
553
     */
554
    public function description($description)
555
    {
556
        return $this->setProperty('description', $description);
557
    }
558
559
    /**
560
     * A sub property of description. A short description of the item used to
561
     * disambiguate from other, similar items. Information from other properties
562
     * (in particular, name) may be necessary for the description to be useful
563
     * for disambiguation.
564
     *
565
     * @param string|string[] $disambiguatingDescription
566
     *
567
     * @return static
568
     *
569
     * @see http://schema.org/disambiguatingDescription
570
     */
571
    public function disambiguatingDescription($disambiguatingDescription)
572
    {
573
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
574
    }
575
576
    /**
577
     * A link to the page containing the comments of the CreativeWork.
578
     *
579
     * @param string|string[] $discussionUrl
580
     *
581
     * @return static
582
     *
583
     * @see http://schema.org/discussionUrl
584
     */
585
    public function discussionUrl($discussionUrl)
586
    {
587
        return $this->setProperty('discussionUrl', $discussionUrl);
588
    }
589
590
    /**
591
     * A downloadable form of this dataset, at a specific location, in a
592
     * specific format.
593
     *
594
     * @param \Spatie\SchemaOrg\Contracts\DataDownloadContract|\Spatie\SchemaOrg\Contracts\DataDownloadContract[] $distribution
595
     *
596
     * @return static
597
     *
598
     * @see http://schema.org/distribution
599
     */
600
    public function distribution($distribution)
601
    {
602
        return $this->setProperty('distribution', $distribution);
603
    }
604
605
    /**
606
     * Specifies the Person who edited the CreativeWork.
607
     *
608
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
609
     *
610
     * @return static
611
     *
612
     * @see http://schema.org/editor
613
     */
614
    public function editor($editor)
615
    {
616
        return $this->setProperty('editor', $editor);
617
    }
618
619
    /**
620
     * An alignment to an established educational framework.
621
     *
622
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
623
     *
624
     * @return static
625
     *
626
     * @see http://schema.org/educationalAlignment
627
     */
628
    public function educationalAlignment($educationalAlignment)
629
    {
630
        return $this->setProperty('educationalAlignment', $educationalAlignment);
631
    }
632
633
    /**
634
     * The purpose of a work in the context of education; for example,
635
     * 'assignment', 'group work'.
636
     *
637
     * @param string|string[] $educationalUse
638
     *
639
     * @return static
640
     *
641
     * @see http://schema.org/educationalUse
642
     */
643
    public function educationalUse($educationalUse)
644
    {
645
        return $this->setProperty('educationalUse', $educationalUse);
646
    }
647
648
    /**
649
     * A media object that encodes this CreativeWork. This property is a synonym
650
     * for associatedMedia.
651
     *
652
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
653
     *
654
     * @return static
655
     *
656
     * @see http://schema.org/encoding
657
     */
658
    public function encoding($encoding)
659
    {
660
        return $this->setProperty('encoding', $encoding);
661
    }
662
663
    /**
664
     * Media type typically expressed using a MIME format (see [IANA
665
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
666
     * [MDN
667
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
668
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
669
     * .mp3 etc.).
670
     * 
671
     * In cases where a [[CreativeWork]] has several media type representations,
672
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
673
     * particular [[encodingFormat]] information.
674
     * 
675
     * Unregistered or niche encoding and file formats can be indicated instead
676
     * via the most appropriate URL, e.g. defining Web page or a
677
     * Wikipedia/Wikidata entry.
678
     *
679
     * @param string|string[] $encodingFormat
680
     *
681
     * @return static
682
     *
683
     * @see http://schema.org/encodingFormat
684
     */
685
    public function encodingFormat($encodingFormat)
686
    {
687
        return $this->setProperty('encodingFormat', $encodingFormat);
688
    }
689
690
    /**
691
     * A media object that encodes this CreativeWork.
692
     *
693
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
694
     *
695
     * @return static
696
     *
697
     * @see http://schema.org/encodings
698
     */
699
    public function encodings($encodings)
700
    {
701
        return $this->setProperty('encodings', $encodings);
702
    }
703
704
    /**
705
     * A creative work that this work is an
706
     * example/instance/realization/derivation of.
707
     *
708
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
709
     *
710
     * @return static
711
     *
712
     * @see http://schema.org/exampleOfWork
713
     */
714
    public function exampleOfWork($exampleOfWork)
715
    {
716
        return $this->setProperty('exampleOfWork', $exampleOfWork);
717
    }
718
719
    /**
720
     * Date the content expires and is no longer useful or available. For
721
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
722
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
723
     * publisher wants to indicate that it may no longer be relevant (or helpful
724
     * to highlight) after some date.
725
     *
726
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
727
     *
728
     * @return static
729
     *
730
     * @see http://schema.org/expires
731
     */
732
    public function expires($expires)
733
    {
734
        return $this->setProperty('expires', $expires);
735
    }
736
737
    /**
738
     * Media type, typically MIME format (see [IANA
739
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
740
     * the content e.g. application/zip of a SoftwareApplication binary. In
741
     * cases where a CreativeWork has several media type representations,
742
     * 'encoding' can be used to indicate each MediaObject alongside particular
743
     * fileFormat information. Unregistered or niche file formats can be
744
     * indicated instead via the most appropriate URL, e.g. defining Web page or
745
     * a Wikipedia entry.
746
     *
747
     * @param string|string[] $fileFormat
748
     *
749
     * @return static
750
     *
751
     * @see http://schema.org/fileFormat
752
     */
753
    public function fileFormat($fileFormat)
754
    {
755
        return $this->setProperty('fileFormat', $fileFormat);
756
    }
757
758
    /**
759
     * A person or organization that supports (sponsors) something through some
760
     * kind of financial contribution.
761
     *
762
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
763
     *
764
     * @return static
765
     *
766
     * @see http://schema.org/funder
767
     */
768
    public function funder($funder)
769
    {
770
        return $this->setProperty('funder', $funder);
771
    }
772
773
    /**
774
     * Genre of the creative work, broadcast channel or group.
775
     *
776
     * @param string|string[] $genre
777
     *
778
     * @return static
779
     *
780
     * @see http://schema.org/genre
781
     */
782
    public function genre($genre)
783
    {
784
        return $this->setProperty('genre', $genre);
785
    }
786
787
    /**
788
     * Indicates an item or CreativeWork that is part of this item, or
789
     * CreativeWork (in some sense).
790
     *
791
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
792
     *
793
     * @return static
794
     *
795
     * @see http://schema.org/hasPart
796
     */
797
    public function hasPart($hasPart)
798
    {
799
        return $this->setProperty('hasPart', $hasPart);
800
    }
801
802
    /**
803
     * Headline of the article.
804
     *
805
     * @param string|string[] $headline
806
     *
807
     * @return static
808
     *
809
     * @see http://schema.org/headline
810
     */
811
    public function headline($headline)
812
    {
813
        return $this->setProperty('headline', $headline);
814
    }
815
816
    /**
817
     * The identifier property represents any kind of identifier for any kind of
818
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
819
     * dedicated properties for representing many of these, either as textual
820
     * strings or as URL (URI) links. See [background
821
     * notes](/docs/datamodel.html#identifierBg) for more details.
822
     *
823
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
824
     *
825
     * @return static
826
     *
827
     * @see http://schema.org/identifier
828
     */
829
    public function identifier($identifier)
830
    {
831
        return $this->setProperty('identifier', $identifier);
832
    }
833
834
    /**
835
     * An image of the item. This can be a [[URL]] or a fully described
836
     * [[ImageObject]].
837
     *
838
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
839
     *
840
     * @return static
841
     *
842
     * @see http://schema.org/image
843
     */
844
    public function image($image)
845
    {
846
        return $this->setProperty('image', $image);
847
    }
848
849
    /**
850
     * The language of the content or performance or used in an action. Please
851
     * use one of the language codes from the [IETF BCP 47
852
     * standard](http://tools.ietf.org/html/bcp47). See also
853
     * [[availableLanguage]].
854
     *
855
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
856
     *
857
     * @return static
858
     *
859
     * @see http://schema.org/inLanguage
860
     */
861
    public function inLanguage($inLanguage)
862
    {
863
        return $this->setProperty('inLanguage', $inLanguage);
864
    }
865
866
    /**
867
     * A data catalog which contains this dataset (this property was previously
868
     * 'catalog', preferred name is now 'includedInDataCatalog').
869
     *
870
     * @param \Spatie\SchemaOrg\Contracts\DataCatalogContract|\Spatie\SchemaOrg\Contracts\DataCatalogContract[] $includedDataCatalog
871
     *
872
     * @return static
873
     *
874
     * @see http://schema.org/includedDataCatalog
875
     */
876
    public function includedDataCatalog($includedDataCatalog)
877
    {
878
        return $this->setProperty('includedDataCatalog', $includedDataCatalog);
879
    }
880
881
    /**
882
     * A data catalog which contains this dataset.
883
     *
884
     * @param \Spatie\SchemaOrg\Contracts\DataCatalogContract|\Spatie\SchemaOrg\Contracts\DataCatalogContract[] $includedInDataCatalog
885
     *
886
     * @return static
887
     *
888
     * @see http://schema.org/includedInDataCatalog
889
     */
890
    public function includedInDataCatalog($includedInDataCatalog)
891
    {
892
        return $this->setProperty('includedInDataCatalog', $includedInDataCatalog);
893
    }
894
895
    /**
896
     * The number of interactions for the CreativeWork using the WebSite or
897
     * SoftwareApplication. The most specific child type of InteractionCounter
898
     * should be used.
899
     *
900
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
901
     *
902
     * @return static
903
     *
904
     * @see http://schema.org/interactionStatistic
905
     */
906
    public function interactionStatistic($interactionStatistic)
907
    {
908
        return $this->setProperty('interactionStatistic', $interactionStatistic);
909
    }
910
911
    /**
912
     * The predominant mode of learning supported by the learning resource.
913
     * Acceptable values are 'active', 'expositive', or 'mixed'.
914
     *
915
     * @param string|string[] $interactivityType
916
     *
917
     * @return static
918
     *
919
     * @see http://schema.org/interactivityType
920
     */
921
    public function interactivityType($interactivityType)
922
    {
923
        return $this->setProperty('interactivityType', $interactivityType);
924
    }
925
926
    /**
927
     * A flag to signal that the item, event, or place is accessible for free.
928
     *
929
     * @param bool|bool[] $isAccessibleForFree
930
     *
931
     * @return static
932
     *
933
     * @see http://schema.org/isAccessibleForFree
934
     */
935
    public function isAccessibleForFree($isAccessibleForFree)
936
    {
937
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
938
    }
939
940
    /**
941
     * A resource from which this work is derived or from which it is a
942
     * modification or adaption.
943
     *
944
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
945
     *
946
     * @return static
947
     *
948
     * @see http://schema.org/isBasedOn
949
     */
950
    public function isBasedOn($isBasedOn)
951
    {
952
        return $this->setProperty('isBasedOn', $isBasedOn);
953
    }
954
955
    /**
956
     * A resource that was used in the creation of this resource. This term can
957
     * be repeated for multiple sources. For example,
958
     * http://example.com/great-multiplication-intro.html.
959
     *
960
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
961
     *
962
     * @return static
963
     *
964
     * @see http://schema.org/isBasedOnUrl
965
     */
966
    public function isBasedOnUrl($isBasedOnUrl)
967
    {
968
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
969
    }
970
971
    /**
972
     * Indicates whether this content is family friendly.
973
     *
974
     * @param bool|bool[] $isFamilyFriendly
975
     *
976
     * @return static
977
     *
978
     * @see http://schema.org/isFamilyFriendly
979
     */
980
    public function isFamilyFriendly($isFamilyFriendly)
981
    {
982
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
983
    }
984
985
    /**
986
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
987
     * some sense), is part of.
988
     *
989
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
990
     *
991
     * @return static
992
     *
993
     * @see http://schema.org/isPartOf
994
     */
995
    public function isPartOf($isPartOf)
996
    {
997
        return $this->setProperty('isPartOf', $isPartOf);
998
    }
999
1000
    /**
1001
     * The International Standard Serial Number (ISSN) that identifies this
1002
     * serial publication. You can repeat this property to identify different
1003
     * formats of, or the linking ISSN (ISSN-L) for, this serial publication.
1004
     *
1005
     * @param string|string[] $issn
1006
     *
1007
     * @return static
1008
     *
1009
     * @see http://schema.org/issn
1010
     */
1011
    public function issn($issn)
1012
    {
1013
        return $this->setProperty('issn', $issn);
1014
    }
1015
1016
    /**
1017
     * Keywords or tags used to describe this content. Multiple entries in a
1018
     * keywords list are typically delimited by commas.
1019
     *
1020
     * @param string|string[] $keywords
1021
     *
1022
     * @return static
1023
     *
1024
     * @see http://schema.org/keywords
1025
     */
1026
    public function keywords($keywords)
1027
    {
1028
        return $this->setProperty('keywords', $keywords);
1029
    }
1030
1031
    /**
1032
     * The predominant type or kind characterizing the learning resource. For
1033
     * example, 'presentation', 'handout'.
1034
     *
1035
     * @param string|string[] $learningResourceType
1036
     *
1037
     * @return static
1038
     *
1039
     * @see http://schema.org/learningResourceType
1040
     */
1041
    public function learningResourceType($learningResourceType)
1042
    {
1043
        return $this->setProperty('learningResourceType', $learningResourceType);
1044
    }
1045
1046
    /**
1047
     * A license document that applies to this content, typically indicated by
1048
     * URL.
1049
     *
1050
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1051
     *
1052
     * @return static
1053
     *
1054
     * @see http://schema.org/license
1055
     */
1056
    public function license($license)
1057
    {
1058
        return $this->setProperty('license', $license);
1059
    }
1060
1061
    /**
1062
     * The location where the CreativeWork was created, which may not be the
1063
     * same as the location depicted in the CreativeWork.
1064
     *
1065
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1066
     *
1067
     * @return static
1068
     *
1069
     * @see http://schema.org/locationCreated
1070
     */
1071
    public function locationCreated($locationCreated)
1072
    {
1073
        return $this->setProperty('locationCreated', $locationCreated);
1074
    }
1075
1076
    /**
1077
     * Indicates the primary entity described in some page or other
1078
     * CreativeWork.
1079
     *
1080
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1081
     *
1082
     * @return static
1083
     *
1084
     * @see http://schema.org/mainEntity
1085
     */
1086
    public function mainEntity($mainEntity)
1087
    {
1088
        return $this->setProperty('mainEntity', $mainEntity);
1089
    }
1090
1091
    /**
1092
     * Indicates a page (or other CreativeWork) for which this thing is the main
1093
     * entity being described. See [background
1094
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1095
     *
1096
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1097
     *
1098
     * @return static
1099
     *
1100
     * @see http://schema.org/mainEntityOfPage
1101
     */
1102
    public function mainEntityOfPage($mainEntityOfPage)
1103
    {
1104
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1105
    }
1106
1107
    /**
1108
     * A material that something is made from, e.g. leather, wool, cotton,
1109
     * paper.
1110
     *
1111
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1112
     *
1113
     * @return static
1114
     *
1115
     * @see http://schema.org/material
1116
     */
1117
    public function material($material)
1118
    {
1119
        return $this->setProperty('material', $material);
1120
    }
1121
1122
    /**
1123
     * Indicates that the CreativeWork contains a reference to, but is not
1124
     * necessarily about a concept.
1125
     *
1126
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1127
     *
1128
     * @return static
1129
     *
1130
     * @see http://schema.org/mentions
1131
     */
1132
    public function mentions($mentions)
1133
    {
1134
        return $this->setProperty('mentions', $mentions);
1135
    }
1136
1137
    /**
1138
     * The name of the item.
1139
     *
1140
     * @param string|string[] $name
1141
     *
1142
     * @return static
1143
     *
1144
     * @see http://schema.org/name
1145
     */
1146
    public function name($name)
1147
    {
1148
        return $this->setProperty('name', $name);
1149
    }
1150
1151
    /**
1152
     * An offer to provide this item—for example, an offer to sell a
1153
     * product, rent the DVD of a movie, perform a service, or give away tickets
1154
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1155
     * offered, i.e. sell, lease, etc. This property can also be used to
1156
     * describe a [[Demand]]. While this property is listed as expected on a
1157
     * number of common types, it can be used in others. In that case, using a
1158
     * second type, such as Product or a subtype of Product, can clarify the
1159
     * nature of the offer.
1160
     *
1161
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1162
     *
1163
     * @return static
1164
     *
1165
     * @see http://schema.org/offers
1166
     */
1167
    public function offers($offers)
1168
    {
1169
        return $this->setProperty('offers', $offers);
1170
    }
1171
1172
    /**
1173
     * The position of an item in a series or sequence of items.
1174
     *
1175
     * @param int|int[]|string|string[] $position
1176
     *
1177
     * @return static
1178
     *
1179
     * @see http://schema.org/position
1180
     */
1181
    public function position($position)
1182
    {
1183
        return $this->setProperty('position', $position);
1184
    }
1185
1186
    /**
1187
     * Indicates a potential Action, which describes an idealized action in
1188
     * which this thing would play an 'object' role.
1189
     *
1190
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1191
     *
1192
     * @return static
1193
     *
1194
     * @see http://schema.org/potentialAction
1195
     */
1196
    public function potentialAction($potentialAction)
1197
    {
1198
        return $this->setProperty('potentialAction', $potentialAction);
1199
    }
1200
1201
    /**
1202
     * The person or organization who produced the work (e.g. music album,
1203
     * movie, tv/radio series etc.).
1204
     *
1205
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1206
     *
1207
     * @return static
1208
     *
1209
     * @see http://schema.org/producer
1210
     */
1211
    public function producer($producer)
1212
    {
1213
        return $this->setProperty('producer', $producer);
1214
    }
1215
1216
    /**
1217
     * The service provider, service operator, or service performer; the goods
1218
     * producer. Another party (a seller) may offer those services or goods on
1219
     * behalf of the provider. A provider may also serve as the seller.
1220
     *
1221
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1222
     *
1223
     * @return static
1224
     *
1225
     * @see http://schema.org/provider
1226
     */
1227
    public function provider($provider)
1228
    {
1229
        return $this->setProperty('provider', $provider);
1230
    }
1231
1232
    /**
1233
     * A publication event associated with the item.
1234
     *
1235
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1236
     *
1237
     * @return static
1238
     *
1239
     * @see http://schema.org/publication
1240
     */
1241
    public function publication($publication)
1242
    {
1243
        return $this->setProperty('publication', $publication);
1244
    }
1245
1246
    /**
1247
     * The publisher of the creative work.
1248
     *
1249
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1250
     *
1251
     * @return static
1252
     *
1253
     * @see http://schema.org/publisher
1254
     */
1255
    public function publisher($publisher)
1256
    {
1257
        return $this->setProperty('publisher', $publisher);
1258
    }
1259
1260
    /**
1261
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1262
     * document describing the editorial principles of an [[Organization]] (or
1263
     * individual e.g. a [[Person]] writing a blog) that relate to their
1264
     * activities as a publisher, e.g. ethics or diversity policies. When
1265
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1266
     * those of the party primarily responsible for the creation of the
1267
     * [[CreativeWork]].
1268
     * 
1269
     * While such policies are most typically expressed in natural language,
1270
     * sometimes related information (e.g. indicating a [[funder]]) can be
1271
     * expressed using schema.org terminology.
1272
     *
1273
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1274
     *
1275
     * @return static
1276
     *
1277
     * @see http://schema.org/publishingPrinciples
1278
     */
1279
    public function publishingPrinciples($publishingPrinciples)
1280
    {
1281
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1282
    }
1283
1284
    /**
1285
     * The Event where the CreativeWork was recorded. The CreativeWork may
1286
     * capture all or part of the event.
1287
     *
1288
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1289
     *
1290
     * @return static
1291
     *
1292
     * @see http://schema.org/recordedAt
1293
     */
1294
    public function recordedAt($recordedAt)
1295
    {
1296
        return $this->setProperty('recordedAt', $recordedAt);
1297
    }
1298
1299
    /**
1300
     * The place and time the release was issued, expressed as a
1301
     * PublicationEvent.
1302
     *
1303
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1304
     *
1305
     * @return static
1306
     *
1307
     * @see http://schema.org/releasedEvent
1308
     */
1309
    public function releasedEvent($releasedEvent)
1310
    {
1311
        return $this->setProperty('releasedEvent', $releasedEvent);
1312
    }
1313
1314
    /**
1315
     * A review of the item.
1316
     *
1317
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1318
     *
1319
     * @return static
1320
     *
1321
     * @see http://schema.org/review
1322
     */
1323
    public function review($review)
1324
    {
1325
        return $this->setProperty('review', $review);
1326
    }
1327
1328
    /**
1329
     * Review of the item.
1330
     *
1331
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1332
     *
1333
     * @return static
1334
     *
1335
     * @see http://schema.org/reviews
1336
     */
1337
    public function reviews($reviews)
1338
    {
1339
        return $this->setProperty('reviews', $reviews);
1340
    }
1341
1342
    /**
1343
     * URL of a reference Web page that unambiguously indicates the item's
1344
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1345
     * official website.
1346
     *
1347
     * @param string|string[] $sameAs
1348
     *
1349
     * @return static
1350
     *
1351
     * @see http://schema.org/sameAs
1352
     */
1353
    public function sameAs($sameAs)
1354
    {
1355
        return $this->setProperty('sameAs', $sameAs);
1356
    }
1357
1358
    /**
1359
     * Indicates (by URL or string) a particular version of a schema used in
1360
     * some CreativeWork. For example, a document could declare a schemaVersion
1361
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1362
     * of schema version was required by some application.
1363
     *
1364
     * @param string|string[] $schemaVersion
1365
     *
1366
     * @return static
1367
     *
1368
     * @see http://schema.org/schemaVersion
1369
     */
1370
    public function schemaVersion($schemaVersion)
1371
    {
1372
        return $this->setProperty('schemaVersion', $schemaVersion);
1373
    }
1374
1375
    /**
1376
     * The Organization on whose behalf the creator was working.
1377
     *
1378
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1379
     *
1380
     * @return static
1381
     *
1382
     * @see http://schema.org/sourceOrganization
1383
     */
1384
    public function sourceOrganization($sourceOrganization)
1385
    {
1386
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1387
    }
1388
1389
    /**
1390
     * The "spatial" property can be used in cases when more specific properties
1391
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1392
     * not known to be appropriate.
1393
     *
1394
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1395
     *
1396
     * @return static
1397
     *
1398
     * @see http://schema.org/spatial
1399
     */
1400
    public function spatial($spatial)
1401
    {
1402
        return $this->setProperty('spatial', $spatial);
1403
    }
1404
1405
    /**
1406
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1407
     * the focus of the content. It is a subproperty of
1408
     *       contentLocation intended primarily for more technical and detailed
1409
     * materials. For example with a Dataset, it indicates
1410
     *       areas that the dataset describes: a dataset of New York weather
1411
     * would have spatialCoverage which was the place: the state of New York.
1412
     *
1413
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1414
     *
1415
     * @return static
1416
     *
1417
     * @see http://schema.org/spatialCoverage
1418
     */
1419
    public function spatialCoverage($spatialCoverage)
1420
    {
1421
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1422
    }
1423
1424
    /**
1425
     * A person or organization that supports a thing through a pledge, promise,
1426
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1427
     * corporate sponsor of an event.
1428
     *
1429
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1430
     *
1431
     * @return static
1432
     *
1433
     * @see http://schema.org/sponsor
1434
     */
1435
    public function sponsor($sponsor)
1436
    {
1437
        return $this->setProperty('sponsor', $sponsor);
1438
    }
1439
1440
    /**
1441
     * A CreativeWork or Event about this Thing.
1442
     *
1443
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1444
     *
1445
     * @return static
1446
     *
1447
     * @see http://schema.org/subjectOf
1448
     */
1449
    public function subjectOf($subjectOf)
1450
    {
1451
        return $this->setProperty('subjectOf', $subjectOf);
1452
    }
1453
1454
    /**
1455
     * The "temporal" property can be used in cases where more specific
1456
     * properties
1457
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1458
     * [[datePublished]]) are not known to be appropriate.
1459
     *
1460
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1461
     *
1462
     * @return static
1463
     *
1464
     * @see http://schema.org/temporal
1465
     */
1466
    public function temporal($temporal)
1467
    {
1468
        return $this->setProperty('temporal', $temporal);
1469
    }
1470
1471
    /**
1472
     * The temporalCoverage of a CreativeWork indicates the period that the
1473
     * content applies to, i.e. that it describes, either as a DateTime or as a
1474
     * textual string indicating a time period in [ISO 8601 time interval
1475
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1476
     *       the case of a Dataset it will typically indicate the relevant time
1477
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1478
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1479
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1480
     * temporalCoverage in broader terms - textually or via well-known URL.
1481
     *       Written works such as books may sometimes have precise temporal
1482
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1483
     * interval format format via "1939/1945".
1484
     * 
1485
     * Open-ended date ranges can be written with ".." in place of the end date.
1486
     * For example, "2015-11/.." indicates a range beginning in November 2015
1487
     * and with no specified final date. This is tentative and might be updated
1488
     * in future when ISO 8601 is officially updated.
1489
     *
1490
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1491
     *
1492
     * @return static
1493
     *
1494
     * @see http://schema.org/temporalCoverage
1495
     */
1496
    public function temporalCoverage($temporalCoverage)
1497
    {
1498
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1499
    }
1500
1501
    /**
1502
     * The textual content of this CreativeWork.
1503
     *
1504
     * @param string|string[] $text
1505
     *
1506
     * @return static
1507
     *
1508
     * @see http://schema.org/text
1509
     */
1510
    public function text($text)
1511
    {
1512
        return $this->setProperty('text', $text);
1513
    }
1514
1515
    /**
1516
     * A thumbnail image relevant to the Thing.
1517
     *
1518
     * @param string|string[] $thumbnailUrl
1519
     *
1520
     * @return static
1521
     *
1522
     * @see http://schema.org/thumbnailUrl
1523
     */
1524
    public function thumbnailUrl($thumbnailUrl)
1525
    {
1526
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1527
    }
1528
1529
    /**
1530
     * Approximate or typical time it takes to work with or through this
1531
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1532
     * 'PT1H25M'.
1533
     *
1534
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1535
     *
1536
     * @return static
1537
     *
1538
     * @see http://schema.org/timeRequired
1539
     */
1540
    public function timeRequired($timeRequired)
1541
    {
1542
        return $this->setProperty('timeRequired', $timeRequired);
1543
    }
1544
1545
    /**
1546
     * Organization or person who adapts a creative work to different languages,
1547
     * regional differences and technical requirements of a target market, or
1548
     * that translates during some event.
1549
     *
1550
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1551
     *
1552
     * @return static
1553
     *
1554
     * @see http://schema.org/translator
1555
     */
1556
    public function translator($translator)
1557
    {
1558
        return $this->setProperty('translator', $translator);
1559
    }
1560
1561
    /**
1562
     * The typical expected age range, e.g. '7-9', '11-'.
1563
     *
1564
     * @param string|string[] $typicalAgeRange
1565
     *
1566
     * @return static
1567
     *
1568
     * @see http://schema.org/typicalAgeRange
1569
     */
1570
    public function typicalAgeRange($typicalAgeRange)
1571
    {
1572
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1573
    }
1574
1575
    /**
1576
     * URL of the item.
1577
     *
1578
     * @param string|string[] $url
1579
     *
1580
     * @return static
1581
     *
1582
     * @see http://schema.org/url
1583
     */
1584
    public function url($url)
1585
    {
1586
        return $this->setProperty('url', $url);
1587
    }
1588
1589
    /**
1590
     * The version of the CreativeWork embodied by a specified resource.
1591
     *
1592
     * @param float|float[]|int|int[]|string|string[] $version
1593
     *
1594
     * @return static
1595
     *
1596
     * @see http://schema.org/version
1597
     */
1598
    public function version($version)
1599
    {
1600
        return $this->setProperty('version', $version);
1601
    }
1602
1603
    /**
1604
     * An embedded video object.
1605
     *
1606
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1607
     *
1608
     * @return static
1609
     *
1610
     * @see http://schema.org/video
1611
     */
1612
    public function video($video)
1613
    {
1614
        return $this->setProperty('video', $video);
1615
    }
1616
1617
    /**
1618
     * Example/instance/realization/derivation of the concept of this creative
1619
     * work. eg. The paperback edition, first edition, or eBook.
1620
     *
1621
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1622
     *
1623
     * @return static
1624
     *
1625
     * @see http://schema.org/workExample
1626
     */
1627
    public function workExample($workExample)
1628
    {
1629
        return $this->setProperty('workExample', $workExample);
1630
    }
1631
1632
}
1633

src/Dataset.php 1 location

@@ 15-1616 (lines=1602) @@
12
 * @see http://schema.org/Dataset
13
 *
14
 */
15
class Dataset extends BaseType implements DatasetContract, CreativeWorkContract, ThingContract
16
{
17
    /**
18
     * The subject matter of the content.
19
     *
20
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
21
     *
22
     * @return static
23
     *
24
     * @see http://schema.org/about
25
     */
26
    public function about($about)
27
    {
28
        return $this->setProperty('about', $about);
29
    }
30
31
    /**
32
     * The human sensory perceptual system or cognitive faculty through which a
33
     * person may process or perceive information. Expected values include:
34
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
35
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
36
     *
37
     * @param string|string[] $accessMode
38
     *
39
     * @return static
40
     *
41
     * @see http://schema.org/accessMode
42
     */
43
    public function accessMode($accessMode)
44
    {
45
        return $this->setProperty('accessMode', $accessMode);
46
    }
47
48
    /**
49
     * A list of single or combined accessModes that are sufficient to
50
     * understand all the intellectual content of a resource. Expected values
51
     * include:  auditory, tactile, textual, visual.
52
     *
53
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
54
     *
55
     * @return static
56
     *
57
     * @see http://schema.org/accessModeSufficient
58
     */
59
    public function accessModeSufficient($accessModeSufficient)
60
    {
61
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
62
    }
63
64
    /**
65
     * Indicates that the resource is compatible with the referenced
66
     * accessibility API ([WebSchemas wiki lists possible
67
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
68
     *
69
     * @param string|string[] $accessibilityAPI
70
     *
71
     * @return static
72
     *
73
     * @see http://schema.org/accessibilityAPI
74
     */
75
    public function accessibilityAPI($accessibilityAPI)
76
    {
77
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
78
    }
79
80
    /**
81
     * Identifies input methods that are sufficient to fully control the
82
     * described resource ([WebSchemas wiki lists possible
83
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
84
     *
85
     * @param string|string[] $accessibilityControl
86
     *
87
     * @return static
88
     *
89
     * @see http://schema.org/accessibilityControl
90
     */
91
    public function accessibilityControl($accessibilityControl)
92
    {
93
        return $this->setProperty('accessibilityControl', $accessibilityControl);
94
    }
95
96
    /**
97
     * Content features of the resource, such as accessible media, alternatives
98
     * and supported enhancements for accessibility ([WebSchemas wiki lists
99
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
100
     *
101
     * @param string|string[] $accessibilityFeature
102
     *
103
     * @return static
104
     *
105
     * @see http://schema.org/accessibilityFeature
106
     */
107
    public function accessibilityFeature($accessibilityFeature)
108
    {
109
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
110
    }
111
112
    /**
113
     * A characteristic of the described resource that is physiologically
114
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
115
     * wiki lists possible
116
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
117
     *
118
     * @param string|string[] $accessibilityHazard
119
     *
120
     * @return static
121
     *
122
     * @see http://schema.org/accessibilityHazard
123
     */
124
    public function accessibilityHazard($accessibilityHazard)
125
    {
126
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
127
    }
128
129
    /**
130
     * A human-readable summary of specific accessibility features or
131
     * deficiencies, consistent with the other accessibility metadata but
132
     * expressing subtleties such as "short descriptions are present but long
133
     * descriptions will be needed for non-visual users" or "short descriptions
134
     * are present and no long descriptions are needed."
135
     *
136
     * @param string|string[] $accessibilitySummary
137
     *
138
     * @return static
139
     *
140
     * @see http://schema.org/accessibilitySummary
141
     */
142
    public function accessibilitySummary($accessibilitySummary)
143
    {
144
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
145
    }
146
147
    /**
148
     * Specifies the Person that is legally accountable for the CreativeWork.
149
     *
150
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
151
     *
152
     * @return static
153
     *
154
     * @see http://schema.org/accountablePerson
155
     */
156
    public function accountablePerson($accountablePerson)
157
    {
158
        return $this->setProperty('accountablePerson', $accountablePerson);
159
    }
160
161
    /**
162
     * An additional type for the item, typically used for adding more specific
163
     * types from external vocabularies in microdata syntax. This is a
164
     * relationship between something and a class that the thing is in. In RDFa
165
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
166
     * attribute - for multiple types. Schema.org tools may have only weaker
167
     * understanding of extra types, in particular those defined externally.
168
     *
169
     * @param string|string[] $additionalType
170
     *
171
     * @return static
172
     *
173
     * @see http://schema.org/additionalType
174
     */
175
    public function additionalType($additionalType)
176
    {
177
        return $this->setProperty('additionalType', $additionalType);
178
    }
179
180
    /**
181
     * The overall rating, based on a collection of reviews or ratings, of the
182
     * item.
183
     *
184
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
185
     *
186
     * @return static
187
     *
188
     * @see http://schema.org/aggregateRating
189
     */
190
    public function aggregateRating($aggregateRating)
191
    {
192
        return $this->setProperty('aggregateRating', $aggregateRating);
193
    }
194
195
    /**
196
     * An alias for the item.
197
     *
198
     * @param string|string[] $alternateName
199
     *
200
     * @return static
201
     *
202
     * @see http://schema.org/alternateName
203
     */
204
    public function alternateName($alternateName)
205
    {
206
        return $this->setProperty('alternateName', $alternateName);
207
    }
208
209
    /**
210
     * A secondary title of the CreativeWork.
211
     *
212
     * @param string|string[] $alternativeHeadline
213
     *
214
     * @return static
215
     *
216
     * @see http://schema.org/alternativeHeadline
217
     */
218
    public function alternativeHeadline($alternativeHeadline)
219
    {
220
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
221
    }
222
223
    /**
224
     * A media object that encodes this CreativeWork. This property is a synonym
225
     * for encoding.
226
     *
227
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
228
     *
229
     * @return static
230
     *
231
     * @see http://schema.org/associatedMedia
232
     */
233
    public function associatedMedia($associatedMedia)
234
    {
235
        return $this->setProperty('associatedMedia', $associatedMedia);
236
    }
237
238
    /**
239
     * An intended audience, i.e. a group for whom something was created.
240
     *
241
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
242
     *
243
     * @return static
244
     *
245
     * @see http://schema.org/audience
246
     */
247
    public function audience($audience)
248
    {
249
        return $this->setProperty('audience', $audience);
250
    }
251
252
    /**
253
     * An embedded audio object.
254
     *
255
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
256
     *
257
     * @return static
258
     *
259
     * @see http://schema.org/audio
260
     */
261
    public function audio($audio)
262
    {
263
        return $this->setProperty('audio', $audio);
264
    }
265
266
    /**
267
     * The author of this content or rating. Please note that author is special
268
     * in that HTML 5 provides a special mechanism for indicating authorship via
269
     * the rel tag. That is equivalent to this and may be used interchangeably.
270
     *
271
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
272
     *
273
     * @return static
274
     *
275
     * @see http://schema.org/author
276
     */
277
    public function author($author)
278
    {
279
        return $this->setProperty('author', $author);
280
    }
281
282
    /**
283
     * An award won by or for this item.
284
     *
285
     * @param string|string[] $award
286
     *
287
     * @return static
288
     *
289
     * @see http://schema.org/award
290
     */
291
    public function award($award)
292
    {
293
        return $this->setProperty('award', $award);
294
    }
295
296
    /**
297
     * Awards won by or for this item.
298
     *
299
     * @param string|string[] $awards
300
     *
301
     * @return static
302
     *
303
     * @see http://schema.org/awards
304
     */
305
    public function awards($awards)
306
    {
307
        return $this->setProperty('awards', $awards);
308
    }
309
310
    /**
311
     * A data catalog which contains this dataset.
312
     *
313
     * @param \Spatie\SchemaOrg\Contracts\DataCatalogContract|\Spatie\SchemaOrg\Contracts\DataCatalogContract[] $catalog
314
     *
315
     * @return static
316
     *
317
     * @see http://schema.org/catalog
318
     */
319
    public function catalog($catalog)
320
    {
321
        return $this->setProperty('catalog', $catalog);
322
    }
323
324
    /**
325
     * Fictional person connected with a creative work.
326
     *
327
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
328
     *
329
     * @return static
330
     *
331
     * @see http://schema.org/character
332
     */
333
    public function character($character)
334
    {
335
        return $this->setProperty('character', $character);
336
    }
337
338
    /**
339
     * A citation or reference to another creative work, such as another
340
     * publication, web page, scholarly article, etc.
341
     *
342
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
343
     *
344
     * @return static
345
     *
346
     * @see http://schema.org/citation
347
     */
348
    public function citation($citation)
349
    {
350
        return $this->setProperty('citation', $citation);
351
    }
352
353
    /**
354
     * Comments, typically from users.
355
     *
356
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
357
     *
358
     * @return static
359
     *
360
     * @see http://schema.org/comment
361
     */
362
    public function comment($comment)
363
    {
364
        return $this->setProperty('comment', $comment);
365
    }
366
367
    /**
368
     * The number of comments this CreativeWork (e.g. Article, Question or
369
     * Answer) has received. This is most applicable to works published in Web
370
     * sites with commenting system; additional comments may exist elsewhere.
371
     *
372
     * @param int|int[] $commentCount
373
     *
374
     * @return static
375
     *
376
     * @see http://schema.org/commentCount
377
     */
378
    public function commentCount($commentCount)
379
    {
380
        return $this->setProperty('commentCount', $commentCount);
381
    }
382
383
    /**
384
     * The location depicted or described in the content. For example, the
385
     * location in a photograph or painting.
386
     *
387
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
388
     *
389
     * @return static
390
     *
391
     * @see http://schema.org/contentLocation
392
     */
393
    public function contentLocation($contentLocation)
394
    {
395
        return $this->setProperty('contentLocation', $contentLocation);
396
    }
397
398
    /**
399
     * Official rating of a piece of content—for example,'MPAA PG-13'.
400
     *
401
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
402
     *
403
     * @return static
404
     *
405
     * @see http://schema.org/contentRating
406
     */
407
    public function contentRating($contentRating)
408
    {
409
        return $this->setProperty('contentRating', $contentRating);
410
    }
411
412
    /**
413
     * A secondary contributor to the CreativeWork or Event.
414
     *
415
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
416
     *
417
     * @return static
418
     *
419
     * @see http://schema.org/contributor
420
     */
421
    public function contributor($contributor)
422
    {
423
        return $this->setProperty('contributor', $contributor);
424
    }
425
426
    /**
427
     * The party holding the legal copyright to the CreativeWork.
428
     *
429
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
430
     *
431
     * @return static
432
     *
433
     * @see http://schema.org/copyrightHolder
434
     */
435
    public function copyrightHolder($copyrightHolder)
436
    {
437
        return $this->setProperty('copyrightHolder', $copyrightHolder);
438
    }
439
440
    /**
441
     * The year during which the claimed copyright for the CreativeWork was
442
     * first asserted.
443
     *
444
     * @param float|float[]|int|int[] $copyrightYear
445
     *
446
     * @return static
447
     *
448
     * @see http://schema.org/copyrightYear
449
     */
450
    public function copyrightYear($copyrightYear)
451
    {
452
        return $this->setProperty('copyrightYear', $copyrightYear);
453
    }
454
455
    /**
456
     * The creator/author of this CreativeWork. This is the same as the Author
457
     * property for CreativeWork.
458
     *
459
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
460
     *
461
     * @return static
462
     *
463
     * @see http://schema.org/creator
464
     */
465
    public function creator($creator)
466
    {
467
        return $this->setProperty('creator', $creator);
468
    }
469
470
    /**
471
     * The range of temporal applicability of a dataset, e.g. for a 2011 census
472
     * dataset, the year 2011 (in ISO 8601 time interval format).
473
     *
474
     * @param \DateTimeInterface|\DateTimeInterface[] $datasetTimeInterval
475
     *
476
     * @return static
477
     *
478
     * @see http://schema.org/datasetTimeInterval
479
     */
480
    public function datasetTimeInterval($datasetTimeInterval)
481
    {
482
        return $this->setProperty('datasetTimeInterval', $datasetTimeInterval);
483
    }
484
485
    /**
486
     * The date on which the CreativeWork was created or the item was added to a
487
     * DataFeed.
488
     *
489
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
490
     *
491
     * @return static
492
     *
493
     * @see http://schema.org/dateCreated
494
     */
495
    public function dateCreated($dateCreated)
496
    {
497
        return $this->setProperty('dateCreated', $dateCreated);
498
    }
499
500
    /**
501
     * The date on which the CreativeWork was most recently modified or when the
502
     * item's entry was modified within a DataFeed.
503
     *
504
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
505
     *
506
     * @return static
507
     *
508
     * @see http://schema.org/dateModified
509
     */
510
    public function dateModified($dateModified)
511
    {
512
        return $this->setProperty('dateModified', $dateModified);
513
    }
514
515
    /**
516
     * Date of first broadcast/publication.
517
     *
518
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
519
     *
520
     * @return static
521
     *
522
     * @see http://schema.org/datePublished
523
     */
524
    public function datePublished($datePublished)
525
    {
526
        return $this->setProperty('datePublished', $datePublished);
527
    }
528
529
    /**
530
     * A description of the item.
531
     *
532
     * @param string|string[] $description
533
     *
534
     * @return static
535
     *
536
     * @see http://schema.org/description
537
     */
538
    public function description($description)
539
    {
540
        return $this->setProperty('description', $description);
541
    }
542
543
    /**
544
     * A sub property of description. A short description of the item used to
545
     * disambiguate from other, similar items. Information from other properties
546
     * (in particular, name) may be necessary for the description to be useful
547
     * for disambiguation.
548
     *
549
     * @param string|string[] $disambiguatingDescription
550
     *
551
     * @return static
552
     *
553
     * @see http://schema.org/disambiguatingDescription
554
     */
555
    public function disambiguatingDescription($disambiguatingDescription)
556
    {
557
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
558
    }
559
560
    /**
561
     * A link to the page containing the comments of the CreativeWork.
562
     *
563
     * @param string|string[] $discussionUrl
564
     *
565
     * @return static
566
     *
567
     * @see http://schema.org/discussionUrl
568
     */
569
    public function discussionUrl($discussionUrl)
570
    {
571
        return $this->setProperty('discussionUrl', $discussionUrl);
572
    }
573
574
    /**
575
     * A downloadable form of this dataset, at a specific location, in a
576
     * specific format.
577
     *
578
     * @param \Spatie\SchemaOrg\Contracts\DataDownloadContract|\Spatie\SchemaOrg\Contracts\DataDownloadContract[] $distribution
579
     *
580
     * @return static
581
     *
582
     * @see http://schema.org/distribution
583
     */
584
    public function distribution($distribution)
585
    {
586
        return $this->setProperty('distribution', $distribution);
587
    }
588
589
    /**
590
     * Specifies the Person who edited the CreativeWork.
591
     *
592
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
593
     *
594
     * @return static
595
     *
596
     * @see http://schema.org/editor
597
     */
598
    public function editor($editor)
599
    {
600
        return $this->setProperty('editor', $editor);
601
    }
602
603
    /**
604
     * An alignment to an established educational framework.
605
     *
606
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
607
     *
608
     * @return static
609
     *
610
     * @see http://schema.org/educationalAlignment
611
     */
612
    public function educationalAlignment($educationalAlignment)
613
    {
614
        return $this->setProperty('educationalAlignment', $educationalAlignment);
615
    }
616
617
    /**
618
     * The purpose of a work in the context of education; for example,
619
     * 'assignment', 'group work'.
620
     *
621
     * @param string|string[] $educationalUse
622
     *
623
     * @return static
624
     *
625
     * @see http://schema.org/educationalUse
626
     */
627
    public function educationalUse($educationalUse)
628
    {
629
        return $this->setProperty('educationalUse', $educationalUse);
630
    }
631
632
    /**
633
     * A media object that encodes this CreativeWork. This property is a synonym
634
     * for associatedMedia.
635
     *
636
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
637
     *
638
     * @return static
639
     *
640
     * @see http://schema.org/encoding
641
     */
642
    public function encoding($encoding)
643
    {
644
        return $this->setProperty('encoding', $encoding);
645
    }
646
647
    /**
648
     * Media type typically expressed using a MIME format (see [IANA
649
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
650
     * [MDN
651
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
652
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
653
     * .mp3 etc.).
654
     * 
655
     * In cases where a [[CreativeWork]] has several media type representations,
656
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
657
     * particular [[encodingFormat]] information.
658
     * 
659
     * Unregistered or niche encoding and file formats can be indicated instead
660
     * via the most appropriate URL, e.g. defining Web page or a
661
     * Wikipedia/Wikidata entry.
662
     *
663
     * @param string|string[] $encodingFormat
664
     *
665
     * @return static
666
     *
667
     * @see http://schema.org/encodingFormat
668
     */
669
    public function encodingFormat($encodingFormat)
670
    {
671
        return $this->setProperty('encodingFormat', $encodingFormat);
672
    }
673
674
    /**
675
     * A media object that encodes this CreativeWork.
676
     *
677
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
678
     *
679
     * @return static
680
     *
681
     * @see http://schema.org/encodings
682
     */
683
    public function encodings($encodings)
684
    {
685
        return $this->setProperty('encodings', $encodings);
686
    }
687
688
    /**
689
     * A creative work that this work is an
690
     * example/instance/realization/derivation of.
691
     *
692
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
693
     *
694
     * @return static
695
     *
696
     * @see http://schema.org/exampleOfWork
697
     */
698
    public function exampleOfWork($exampleOfWork)
699
    {
700
        return $this->setProperty('exampleOfWork', $exampleOfWork);
701
    }
702
703
    /**
704
     * Date the content expires and is no longer useful or available. For
705
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
706
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
707
     * publisher wants to indicate that it may no longer be relevant (or helpful
708
     * to highlight) after some date.
709
     *
710
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
711
     *
712
     * @return static
713
     *
714
     * @see http://schema.org/expires
715
     */
716
    public function expires($expires)
717
    {
718
        return $this->setProperty('expires', $expires);
719
    }
720
721
    /**
722
     * Media type, typically MIME format (see [IANA
723
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
724
     * the content e.g. application/zip of a SoftwareApplication binary. In
725
     * cases where a CreativeWork has several media type representations,
726
     * 'encoding' can be used to indicate each MediaObject alongside particular
727
     * fileFormat information. Unregistered or niche file formats can be
728
     * indicated instead via the most appropriate URL, e.g. defining Web page or
729
     * a Wikipedia entry.
730
     *
731
     * @param string|string[] $fileFormat
732
     *
733
     * @return static
734
     *
735
     * @see http://schema.org/fileFormat
736
     */
737
    public function fileFormat($fileFormat)
738
    {
739
        return $this->setProperty('fileFormat', $fileFormat);
740
    }
741
742
    /**
743
     * A person or organization that supports (sponsors) something through some
744
     * kind of financial contribution.
745
     *
746
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
747
     *
748
     * @return static
749
     *
750
     * @see http://schema.org/funder
751
     */
752
    public function funder($funder)
753
    {
754
        return $this->setProperty('funder', $funder);
755
    }
756
757
    /**
758
     * Genre of the creative work, broadcast channel or group.
759
     *
760
     * @param string|string[] $genre
761
     *
762
     * @return static
763
     *
764
     * @see http://schema.org/genre
765
     */
766
    public function genre($genre)
767
    {
768
        return $this->setProperty('genre', $genre);
769
    }
770
771
    /**
772
     * Indicates an item or CreativeWork that is part of this item, or
773
     * CreativeWork (in some sense).
774
     *
775
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
776
     *
777
     * @return static
778
     *
779
     * @see http://schema.org/hasPart
780
     */
781
    public function hasPart($hasPart)
782
    {
783
        return $this->setProperty('hasPart', $hasPart);
784
    }
785
786
    /**
787
     * Headline of the article.
788
     *
789
     * @param string|string[] $headline
790
     *
791
     * @return static
792
     *
793
     * @see http://schema.org/headline
794
     */
795
    public function headline($headline)
796
    {
797
        return $this->setProperty('headline', $headline);
798
    }
799
800
    /**
801
     * The identifier property represents any kind of identifier for any kind of
802
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
803
     * dedicated properties for representing many of these, either as textual
804
     * strings or as URL (URI) links. See [background
805
     * notes](/docs/datamodel.html#identifierBg) for more details.
806
     *
807
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
808
     *
809
     * @return static
810
     *
811
     * @see http://schema.org/identifier
812
     */
813
    public function identifier($identifier)
814
    {
815
        return $this->setProperty('identifier', $identifier);
816
    }
817
818
    /**
819
     * An image of the item. This can be a [[URL]] or a fully described
820
     * [[ImageObject]].
821
     *
822
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
823
     *
824
     * @return static
825
     *
826
     * @see http://schema.org/image
827
     */
828
    public function image($image)
829
    {
830
        return $this->setProperty('image', $image);
831
    }
832
833
    /**
834
     * The language of the content or performance or used in an action. Please
835
     * use one of the language codes from the [IETF BCP 47
836
     * standard](http://tools.ietf.org/html/bcp47). See also
837
     * [[availableLanguage]].
838
     *
839
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
840
     *
841
     * @return static
842
     *
843
     * @see http://schema.org/inLanguage
844
     */
845
    public function inLanguage($inLanguage)
846
    {
847
        return $this->setProperty('inLanguage', $inLanguage);
848
    }
849
850
    /**
851
     * A data catalog which contains this dataset (this property was previously
852
     * 'catalog', preferred name is now 'includedInDataCatalog').
853
     *
854
     * @param \Spatie\SchemaOrg\Contracts\DataCatalogContract|\Spatie\SchemaOrg\Contracts\DataCatalogContract[] $includedDataCatalog
855
     *
856
     * @return static
857
     *
858
     * @see http://schema.org/includedDataCatalog
859
     */
860
    public function includedDataCatalog($includedDataCatalog)
861
    {
862
        return $this->setProperty('includedDataCatalog', $includedDataCatalog);
863
    }
864
865
    /**
866
     * A data catalog which contains this dataset.
867
     *
868
     * @param \Spatie\SchemaOrg\Contracts\DataCatalogContract|\Spatie\SchemaOrg\Contracts\DataCatalogContract[] $includedInDataCatalog
869
     *
870
     * @return static
871
     *
872
     * @see http://schema.org/includedInDataCatalog
873
     */
874
    public function includedInDataCatalog($includedInDataCatalog)
875
    {
876
        return $this->setProperty('includedInDataCatalog', $includedInDataCatalog);
877
    }
878
879
    /**
880
     * The number of interactions for the CreativeWork using the WebSite or
881
     * SoftwareApplication. The most specific child type of InteractionCounter
882
     * should be used.
883
     *
884
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
885
     *
886
     * @return static
887
     *
888
     * @see http://schema.org/interactionStatistic
889
     */
890
    public function interactionStatistic($interactionStatistic)
891
    {
892
        return $this->setProperty('interactionStatistic', $interactionStatistic);
893
    }
894
895
    /**
896
     * The predominant mode of learning supported by the learning resource.
897
     * Acceptable values are 'active', 'expositive', or 'mixed'.
898
     *
899
     * @param string|string[] $interactivityType
900
     *
901
     * @return static
902
     *
903
     * @see http://schema.org/interactivityType
904
     */
905
    public function interactivityType($interactivityType)
906
    {
907
        return $this->setProperty('interactivityType', $interactivityType);
908
    }
909
910
    /**
911
     * A flag to signal that the item, event, or place is accessible for free.
912
     *
913
     * @param bool|bool[] $isAccessibleForFree
914
     *
915
     * @return static
916
     *
917
     * @see http://schema.org/isAccessibleForFree
918
     */
919
    public function isAccessibleForFree($isAccessibleForFree)
920
    {
921
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
922
    }
923
924
    /**
925
     * A resource from which this work is derived or from which it is a
926
     * modification or adaption.
927
     *
928
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
929
     *
930
     * @return static
931
     *
932
     * @see http://schema.org/isBasedOn
933
     */
934
    public function isBasedOn($isBasedOn)
935
    {
936
        return $this->setProperty('isBasedOn', $isBasedOn);
937
    }
938
939
    /**
940
     * A resource that was used in the creation of this resource. This term can
941
     * be repeated for multiple sources. For example,
942
     * http://example.com/great-multiplication-intro.html.
943
     *
944
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
945
     *
946
     * @return static
947
     *
948
     * @see http://schema.org/isBasedOnUrl
949
     */
950
    public function isBasedOnUrl($isBasedOnUrl)
951
    {
952
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
953
    }
954
955
    /**
956
     * Indicates whether this content is family friendly.
957
     *
958
     * @param bool|bool[] $isFamilyFriendly
959
     *
960
     * @return static
961
     *
962
     * @see http://schema.org/isFamilyFriendly
963
     */
964
    public function isFamilyFriendly($isFamilyFriendly)
965
    {
966
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
967
    }
968
969
    /**
970
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
971
     * some sense), is part of.
972
     *
973
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
974
     *
975
     * @return static
976
     *
977
     * @see http://schema.org/isPartOf
978
     */
979
    public function isPartOf($isPartOf)
980
    {
981
        return $this->setProperty('isPartOf', $isPartOf);
982
    }
983
984
    /**
985
     * The International Standard Serial Number (ISSN) that identifies this
986
     * serial publication. You can repeat this property to identify different
987
     * formats of, or the linking ISSN (ISSN-L) for, this serial publication.
988
     *
989
     * @param string|string[] $issn
990
     *
991
     * @return static
992
     *
993
     * @see http://schema.org/issn
994
     */
995
    public function issn($issn)
996
    {
997
        return $this->setProperty('issn', $issn);
998
    }
999
1000
    /**
1001
     * Keywords or tags used to describe this content. Multiple entries in a
1002
     * keywords list are typically delimited by commas.
1003
     *
1004
     * @param string|string[] $keywords
1005
     *
1006
     * @return static
1007
     *
1008
     * @see http://schema.org/keywords
1009
     */
1010
    public function keywords($keywords)
1011
    {
1012
        return $this->setProperty('keywords', $keywords);
1013
    }
1014
1015
    /**
1016
     * The predominant type or kind characterizing the learning resource. For
1017
     * example, 'presentation', 'handout'.
1018
     *
1019
     * @param string|string[] $learningResourceType
1020
     *
1021
     * @return static
1022
     *
1023
     * @see http://schema.org/learningResourceType
1024
     */
1025
    public function learningResourceType($learningResourceType)
1026
    {
1027
        return $this->setProperty('learningResourceType', $learningResourceType);
1028
    }
1029
1030
    /**
1031
     * A license document that applies to this content, typically indicated by
1032
     * URL.
1033
     *
1034
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1035
     *
1036
     * @return static
1037
     *
1038
     * @see http://schema.org/license
1039
     */
1040
    public function license($license)
1041
    {
1042
        return $this->setProperty('license', $license);
1043
    }
1044
1045
    /**
1046
     * The location where the CreativeWork was created, which may not be the
1047
     * same as the location depicted in the CreativeWork.
1048
     *
1049
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1050
     *
1051
     * @return static
1052
     *
1053
     * @see http://schema.org/locationCreated
1054
     */
1055
    public function locationCreated($locationCreated)
1056
    {
1057
        return $this->setProperty('locationCreated', $locationCreated);
1058
    }
1059
1060
    /**
1061
     * Indicates the primary entity described in some page or other
1062
     * CreativeWork.
1063
     *
1064
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1065
     *
1066
     * @return static
1067
     *
1068
     * @see http://schema.org/mainEntity
1069
     */
1070
    public function mainEntity($mainEntity)
1071
    {
1072
        return $this->setProperty('mainEntity', $mainEntity);
1073
    }
1074
1075
    /**
1076
     * Indicates a page (or other CreativeWork) for which this thing is the main
1077
     * entity being described. See [background
1078
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1079
     *
1080
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1081
     *
1082
     * @return static
1083
     *
1084
     * @see http://schema.org/mainEntityOfPage
1085
     */
1086
    public function mainEntityOfPage($mainEntityOfPage)
1087
    {
1088
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1089
    }
1090
1091
    /**
1092
     * A material that something is made from, e.g. leather, wool, cotton,
1093
     * paper.
1094
     *
1095
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1096
     *
1097
     * @return static
1098
     *
1099
     * @see http://schema.org/material
1100
     */
1101
    public function material($material)
1102
    {
1103
        return $this->setProperty('material', $material);
1104
    }
1105
1106
    /**
1107
     * Indicates that the CreativeWork contains a reference to, but is not
1108
     * necessarily about a concept.
1109
     *
1110
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1111
     *
1112
     * @return static
1113
     *
1114
     * @see http://schema.org/mentions
1115
     */
1116
    public function mentions($mentions)
1117
    {
1118
        return $this->setProperty('mentions', $mentions);
1119
    }
1120
1121
    /**
1122
     * The name of the item.
1123
     *
1124
     * @param string|string[] $name
1125
     *
1126
     * @return static
1127
     *
1128
     * @see http://schema.org/name
1129
     */
1130
    public function name($name)
1131
    {
1132
        return $this->setProperty('name', $name);
1133
    }
1134
1135
    /**
1136
     * An offer to provide this item—for example, an offer to sell a
1137
     * product, rent the DVD of a movie, perform a service, or give away tickets
1138
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1139
     * offered, i.e. sell, lease, etc. This property can also be used to
1140
     * describe a [[Demand]]. While this property is listed as expected on a
1141
     * number of common types, it can be used in others. In that case, using a
1142
     * second type, such as Product or a subtype of Product, can clarify the
1143
     * nature of the offer.
1144
     *
1145
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1146
     *
1147
     * @return static
1148
     *
1149
     * @see http://schema.org/offers
1150
     */
1151
    public function offers($offers)
1152
    {
1153
        return $this->setProperty('offers', $offers);
1154
    }
1155
1156
    /**
1157
     * The position of an item in a series or sequence of items.
1158
     *
1159
     * @param int|int[]|string|string[] $position
1160
     *
1161
     * @return static
1162
     *
1163
     * @see http://schema.org/position
1164
     */
1165
    public function position($position)
1166
    {
1167
        return $this->setProperty('position', $position);
1168
    }
1169
1170
    /**
1171
     * Indicates a potential Action, which describes an idealized action in
1172
     * which this thing would play an 'object' role.
1173
     *
1174
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1175
     *
1176
     * @return static
1177
     *
1178
     * @see http://schema.org/potentialAction
1179
     */
1180
    public function potentialAction($potentialAction)
1181
    {
1182
        return $this->setProperty('potentialAction', $potentialAction);
1183
    }
1184
1185
    /**
1186
     * The person or organization who produced the work (e.g. music album,
1187
     * movie, tv/radio series etc.).
1188
     *
1189
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1190
     *
1191
     * @return static
1192
     *
1193
     * @see http://schema.org/producer
1194
     */
1195
    public function producer($producer)
1196
    {
1197
        return $this->setProperty('producer', $producer);
1198
    }
1199
1200
    /**
1201
     * The service provider, service operator, or service performer; the goods
1202
     * producer. Another party (a seller) may offer those services or goods on
1203
     * behalf of the provider. A provider may also serve as the seller.
1204
     *
1205
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1206
     *
1207
     * @return static
1208
     *
1209
     * @see http://schema.org/provider
1210
     */
1211
    public function provider($provider)
1212
    {
1213
        return $this->setProperty('provider', $provider);
1214
    }
1215
1216
    /**
1217
     * A publication event associated with the item.
1218
     *
1219
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1220
     *
1221
     * @return static
1222
     *
1223
     * @see http://schema.org/publication
1224
     */
1225
    public function publication($publication)
1226
    {
1227
        return $this->setProperty('publication', $publication);
1228
    }
1229
1230
    /**
1231
     * The publisher of the creative work.
1232
     *
1233
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1234
     *
1235
     * @return static
1236
     *
1237
     * @see http://schema.org/publisher
1238
     */
1239
    public function publisher($publisher)
1240
    {
1241
        return $this->setProperty('publisher', $publisher);
1242
    }
1243
1244
    /**
1245
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1246
     * document describing the editorial principles of an [[Organization]] (or
1247
     * individual e.g. a [[Person]] writing a blog) that relate to their
1248
     * activities as a publisher, e.g. ethics or diversity policies. When
1249
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1250
     * those of the party primarily responsible for the creation of the
1251
     * [[CreativeWork]].
1252
     * 
1253
     * While such policies are most typically expressed in natural language,
1254
     * sometimes related information (e.g. indicating a [[funder]]) can be
1255
     * expressed using schema.org terminology.
1256
     *
1257
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1258
     *
1259
     * @return static
1260
     *
1261
     * @see http://schema.org/publishingPrinciples
1262
     */
1263
    public function publishingPrinciples($publishingPrinciples)
1264
    {
1265
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1266
    }
1267
1268
    /**
1269
     * The Event where the CreativeWork was recorded. The CreativeWork may
1270
     * capture all or part of the event.
1271
     *
1272
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1273
     *
1274
     * @return static
1275
     *
1276
     * @see http://schema.org/recordedAt
1277
     */
1278
    public function recordedAt($recordedAt)
1279
    {
1280
        return $this->setProperty('recordedAt', $recordedAt);
1281
    }
1282
1283
    /**
1284
     * The place and time the release was issued, expressed as a
1285
     * PublicationEvent.
1286
     *
1287
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1288
     *
1289
     * @return static
1290
     *
1291
     * @see http://schema.org/releasedEvent
1292
     */
1293
    public function releasedEvent($releasedEvent)
1294
    {
1295
        return $this->setProperty('releasedEvent', $releasedEvent);
1296
    }
1297
1298
    /**
1299
     * A review of the item.
1300
     *
1301
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1302
     *
1303
     * @return static
1304
     *
1305
     * @see http://schema.org/review
1306
     */
1307
    public function review($review)
1308
    {
1309
        return $this->setProperty('review', $review);
1310
    }
1311
1312
    /**
1313
     * Review of the item.
1314
     *
1315
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1316
     *
1317
     * @return static
1318
     *
1319
     * @see http://schema.org/reviews
1320
     */
1321
    public function reviews($reviews)
1322
    {
1323
        return $this->setProperty('reviews', $reviews);
1324
    }
1325
1326
    /**
1327
     * URL of a reference Web page that unambiguously indicates the item's
1328
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1329
     * official website.
1330
     *
1331
     * @param string|string[] $sameAs
1332
     *
1333
     * @return static
1334
     *
1335
     * @see http://schema.org/sameAs
1336
     */
1337
    public function sameAs($sameAs)
1338
    {
1339
        return $this->setProperty('sameAs', $sameAs);
1340
    }
1341
1342
    /**
1343
     * Indicates (by URL or string) a particular version of a schema used in
1344
     * some CreativeWork. For example, a document could declare a schemaVersion
1345
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1346
     * of schema version was required by some application.
1347
     *
1348
     * @param string|string[] $schemaVersion
1349
     *
1350
     * @return static
1351
     *
1352
     * @see http://schema.org/schemaVersion
1353
     */
1354
    public function schemaVersion($schemaVersion)
1355
    {
1356
        return $this->setProperty('schemaVersion', $schemaVersion);
1357
    }
1358
1359
    /**
1360
     * The Organization on whose behalf the creator was working.
1361
     *
1362
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1363
     *
1364
     * @return static
1365
     *
1366
     * @see http://schema.org/sourceOrganization
1367
     */
1368
    public function sourceOrganization($sourceOrganization)
1369
    {
1370
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1371
    }
1372
1373
    /**
1374
     * The "spatial" property can be used in cases when more specific properties
1375
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1376
     * not known to be appropriate.
1377
     *
1378
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1379
     *
1380
     * @return static
1381
     *
1382
     * @see http://schema.org/spatial
1383
     */
1384
    public function spatial($spatial)
1385
    {
1386
        return $this->setProperty('spatial', $spatial);
1387
    }
1388
1389
    /**
1390
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1391
     * the focus of the content. It is a subproperty of
1392
     *       contentLocation intended primarily for more technical and detailed
1393
     * materials. For example with a Dataset, it indicates
1394
     *       areas that the dataset describes: a dataset of New York weather
1395
     * would have spatialCoverage which was the place: the state of New York.
1396
     *
1397
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1398
     *
1399
     * @return static
1400
     *
1401
     * @see http://schema.org/spatialCoverage
1402
     */
1403
    public function spatialCoverage($spatialCoverage)
1404
    {
1405
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1406
    }
1407
1408
    /**
1409
     * A person or organization that supports a thing through a pledge, promise,
1410
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1411
     * corporate sponsor of an event.
1412
     *
1413
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1414
     *
1415
     * @return static
1416
     *
1417
     * @see http://schema.org/sponsor
1418
     */
1419
    public function sponsor($sponsor)
1420
    {
1421
        return $this->setProperty('sponsor', $sponsor);
1422
    }
1423
1424
    /**
1425
     * A CreativeWork or Event about this Thing.
1426
     *
1427
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1428
     *
1429
     * @return static
1430
     *
1431
     * @see http://schema.org/subjectOf
1432
     */
1433
    public function subjectOf($subjectOf)
1434
    {
1435
        return $this->setProperty('subjectOf', $subjectOf);
1436
    }
1437
1438
    /**
1439
     * The "temporal" property can be used in cases where more specific
1440
     * properties
1441
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1442
     * [[datePublished]]) are not known to be appropriate.
1443
     *
1444
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1445
     *
1446
     * @return static
1447
     *
1448
     * @see http://schema.org/temporal
1449
     */
1450
    public function temporal($temporal)
1451
    {
1452
        return $this->setProperty('temporal', $temporal);
1453
    }
1454
1455
    /**
1456
     * The temporalCoverage of a CreativeWork indicates the period that the
1457
     * content applies to, i.e. that it describes, either as a DateTime or as a
1458
     * textual string indicating a time period in [ISO 8601 time interval
1459
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1460
     *       the case of a Dataset it will typically indicate the relevant time
1461
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1462
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1463
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1464
     * temporalCoverage in broader terms - textually or via well-known URL.
1465
     *       Written works such as books may sometimes have precise temporal
1466
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1467
     * interval format format via "1939/1945".
1468
     * 
1469
     * Open-ended date ranges can be written with ".." in place of the end date.
1470
     * For example, "2015-11/.." indicates a range beginning in November 2015
1471
     * and with no specified final date. This is tentative and might be updated
1472
     * in future when ISO 8601 is officially updated.
1473
     *
1474
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1475
     *
1476
     * @return static
1477
     *
1478
     * @see http://schema.org/temporalCoverage
1479
     */
1480
    public function temporalCoverage($temporalCoverage)
1481
    {
1482
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1483
    }
1484
1485
    /**
1486
     * The textual content of this CreativeWork.
1487
     *
1488
     * @param string|string[] $text
1489
     *
1490
     * @return static
1491
     *
1492
     * @see http://schema.org/text
1493
     */
1494
    public function text($text)
1495
    {
1496
        return $this->setProperty('text', $text);
1497
    }
1498
1499
    /**
1500
     * A thumbnail image relevant to the Thing.
1501
     *
1502
     * @param string|string[] $thumbnailUrl
1503
     *
1504
     * @return static
1505
     *
1506
     * @see http://schema.org/thumbnailUrl
1507
     */
1508
    public function thumbnailUrl($thumbnailUrl)
1509
    {
1510
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1511
    }
1512
1513
    /**
1514
     * Approximate or typical time it takes to work with or through this
1515
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1516
     * 'PT1H25M'.
1517
     *
1518
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1519
     *
1520
     * @return static
1521
     *
1522
     * @see http://schema.org/timeRequired
1523
     */
1524
    public function timeRequired($timeRequired)
1525
    {
1526
        return $this->setProperty('timeRequired', $timeRequired);
1527
    }
1528
1529
    /**
1530
     * Organization or person who adapts a creative work to different languages,
1531
     * regional differences and technical requirements of a target market, or
1532
     * that translates during some event.
1533
     *
1534
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1535
     *
1536
     * @return static
1537
     *
1538
     * @see http://schema.org/translator
1539
     */
1540
    public function translator($translator)
1541
    {
1542
        return $this->setProperty('translator', $translator);
1543
    }
1544
1545
    /**
1546
     * The typical expected age range, e.g. '7-9', '11-'.
1547
     *
1548
     * @param string|string[] $typicalAgeRange
1549
     *
1550
     * @return static
1551
     *
1552
     * @see http://schema.org/typicalAgeRange
1553
     */
1554
    public function typicalAgeRange($typicalAgeRange)
1555
    {
1556
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1557
    }
1558
1559
    /**
1560
     * URL of the item.
1561
     *
1562
     * @param string|string[] $url
1563
     *
1564
     * @return static
1565
     *
1566
     * @see http://schema.org/url
1567
     */
1568
    public function url($url)
1569
    {
1570
        return $this->setProperty('url', $url);
1571
    }
1572
1573
    /**
1574
     * The version of the CreativeWork embodied by a specified resource.
1575
     *
1576
     * @param float|float[]|int|int[]|string|string[] $version
1577
     *
1578
     * @return static
1579
     *
1580
     * @see http://schema.org/version
1581
     */
1582
    public function version($version)
1583
    {
1584
        return $this->setProperty('version', $version);
1585
    }
1586
1587
    /**
1588
     * An embedded video object.
1589
     *
1590
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1591
     *
1592
     * @return static
1593
     *
1594
     * @see http://schema.org/video
1595
     */
1596
    public function video($video)
1597
    {
1598
        return $this->setProperty('video', $video);
1599
    }
1600
1601
    /**
1602
     * Example/instance/realization/derivation of the concept of this creative
1603
     * work. eg. The paperback edition, first edition, or eBook.
1604
     *
1605
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1606
     *
1607
     * @return static
1608
     *
1609
     * @see http://schema.org/workExample
1610
     */
1611
    public function workExample($workExample)
1612
    {
1613
        return $this->setProperty('workExample', $workExample);
1614
    }
1615
1616
}
1617

src/HowToSection.php 1 location

@@ 19-1644 (lines=1626) @@
16
 * @see http://schema.org/HowToSection
17
 *
18
 */
19
class HowToSection extends BaseType implements HowToSectionContract, CreativeWorkContract, IntangibleContract, ItemListContract, ListItemContract, ThingContract
20
{
21
    /**
22
     * The subject matter of the content.
23
     *
24
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
25
     *
26
     * @return static
27
     *
28
     * @see http://schema.org/about
29
     */
30
    public function about($about)
31
    {
32
        return $this->setProperty('about', $about);
33
    }
34
35
    /**
36
     * The human sensory perceptual system or cognitive faculty through which a
37
     * person may process or perceive information. Expected values include:
38
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
39
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
40
     *
41
     * @param string|string[] $accessMode
42
     *
43
     * @return static
44
     *
45
     * @see http://schema.org/accessMode
46
     */
47
    public function accessMode($accessMode)
48
    {
49
        return $this->setProperty('accessMode', $accessMode);
50
    }
51
52
    /**
53
     * A list of single or combined accessModes that are sufficient to
54
     * understand all the intellectual content of a resource. Expected values
55
     * include:  auditory, tactile, textual, visual.
56
     *
57
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
58
     *
59
     * @return static
60
     *
61
     * @see http://schema.org/accessModeSufficient
62
     */
63
    public function accessModeSufficient($accessModeSufficient)
64
    {
65
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
66
    }
67
68
    /**
69
     * Indicates that the resource is compatible with the referenced
70
     * accessibility API ([WebSchemas wiki lists possible
71
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
72
     *
73
     * @param string|string[] $accessibilityAPI
74
     *
75
     * @return static
76
     *
77
     * @see http://schema.org/accessibilityAPI
78
     */
79
    public function accessibilityAPI($accessibilityAPI)
80
    {
81
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
82
    }
83
84
    /**
85
     * Identifies input methods that are sufficient to fully control the
86
     * described resource ([WebSchemas wiki lists possible
87
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
88
     *
89
     * @param string|string[] $accessibilityControl
90
     *
91
     * @return static
92
     *
93
     * @see http://schema.org/accessibilityControl
94
     */
95
    public function accessibilityControl($accessibilityControl)
96
    {
97
        return $this->setProperty('accessibilityControl', $accessibilityControl);
98
    }
99
100
    /**
101
     * Content features of the resource, such as accessible media, alternatives
102
     * and supported enhancements for accessibility ([WebSchemas wiki lists
103
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
104
     *
105
     * @param string|string[] $accessibilityFeature
106
     *
107
     * @return static
108
     *
109
     * @see http://schema.org/accessibilityFeature
110
     */
111
    public function accessibilityFeature($accessibilityFeature)
112
    {
113
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
114
    }
115
116
    /**
117
     * A characteristic of the described resource that is physiologically
118
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
119
     * wiki lists possible
120
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
121
     *
122
     * @param string|string[] $accessibilityHazard
123
     *
124
     * @return static
125
     *
126
     * @see http://schema.org/accessibilityHazard
127
     */
128
    public function accessibilityHazard($accessibilityHazard)
129
    {
130
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
131
    }
132
133
    /**
134
     * A human-readable summary of specific accessibility features or
135
     * deficiencies, consistent with the other accessibility metadata but
136
     * expressing subtleties such as "short descriptions are present but long
137
     * descriptions will be needed for non-visual users" or "short descriptions
138
     * are present and no long descriptions are needed."
139
     *
140
     * @param string|string[] $accessibilitySummary
141
     *
142
     * @return static
143
     *
144
     * @see http://schema.org/accessibilitySummary
145
     */
146
    public function accessibilitySummary($accessibilitySummary)
147
    {
148
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
149
    }
150
151
    /**
152
     * Specifies the Person that is legally accountable for the CreativeWork.
153
     *
154
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
155
     *
156
     * @return static
157
     *
158
     * @see http://schema.org/accountablePerson
159
     */
160
    public function accountablePerson($accountablePerson)
161
    {
162
        return $this->setProperty('accountablePerson', $accountablePerson);
163
    }
164
165
    /**
166
     * An additional type for the item, typically used for adding more specific
167
     * types from external vocabularies in microdata syntax. This is a
168
     * relationship between something and a class that the thing is in. In RDFa
169
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
170
     * attribute - for multiple types. Schema.org tools may have only weaker
171
     * understanding of extra types, in particular those defined externally.
172
     *
173
     * @param string|string[] $additionalType
174
     *
175
     * @return static
176
     *
177
     * @see http://schema.org/additionalType
178
     */
179
    public function additionalType($additionalType)
180
    {
181
        return $this->setProperty('additionalType', $additionalType);
182
    }
183
184
    /**
185
     * The overall rating, based on a collection of reviews or ratings, of the
186
     * item.
187
     *
188
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
189
     *
190
     * @return static
191
     *
192
     * @see http://schema.org/aggregateRating
193
     */
194
    public function aggregateRating($aggregateRating)
195
    {
196
        return $this->setProperty('aggregateRating', $aggregateRating);
197
    }
198
199
    /**
200
     * An alias for the item.
201
     *
202
     * @param string|string[] $alternateName
203
     *
204
     * @return static
205
     *
206
     * @see http://schema.org/alternateName
207
     */
208
    public function alternateName($alternateName)
209
    {
210
        return $this->setProperty('alternateName', $alternateName);
211
    }
212
213
    /**
214
     * A secondary title of the CreativeWork.
215
     *
216
     * @param string|string[] $alternativeHeadline
217
     *
218
     * @return static
219
     *
220
     * @see http://schema.org/alternativeHeadline
221
     */
222
    public function alternativeHeadline($alternativeHeadline)
223
    {
224
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
225
    }
226
227
    /**
228
     * A media object that encodes this CreativeWork. This property is a synonym
229
     * for encoding.
230
     *
231
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
232
     *
233
     * @return static
234
     *
235
     * @see http://schema.org/associatedMedia
236
     */
237
    public function associatedMedia($associatedMedia)
238
    {
239
        return $this->setProperty('associatedMedia', $associatedMedia);
240
    }
241
242
    /**
243
     * An intended audience, i.e. a group for whom something was created.
244
     *
245
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
246
     *
247
     * @return static
248
     *
249
     * @see http://schema.org/audience
250
     */
251
    public function audience($audience)
252
    {
253
        return $this->setProperty('audience', $audience);
254
    }
255
256
    /**
257
     * An embedded audio object.
258
     *
259
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
260
     *
261
     * @return static
262
     *
263
     * @see http://schema.org/audio
264
     */
265
    public function audio($audio)
266
    {
267
        return $this->setProperty('audio', $audio);
268
    }
269
270
    /**
271
     * The author of this content or rating. Please note that author is special
272
     * in that HTML 5 provides a special mechanism for indicating authorship via
273
     * the rel tag. That is equivalent to this and may be used interchangeably.
274
     *
275
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
276
     *
277
     * @return static
278
     *
279
     * @see http://schema.org/author
280
     */
281
    public function author($author)
282
    {
283
        return $this->setProperty('author', $author);
284
    }
285
286
    /**
287
     * An award won by or for this item.
288
     *
289
     * @param string|string[] $award
290
     *
291
     * @return static
292
     *
293
     * @see http://schema.org/award
294
     */
295
    public function award($award)
296
    {
297
        return $this->setProperty('award', $award);
298
    }
299
300
    /**
301
     * Awards won by or for this item.
302
     *
303
     * @param string|string[] $awards
304
     *
305
     * @return static
306
     *
307
     * @see http://schema.org/awards
308
     */
309
    public function awards($awards)
310
    {
311
        return $this->setProperty('awards', $awards);
312
    }
313
314
    /**
315
     * Fictional person connected with a creative work.
316
     *
317
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
318
     *
319
     * @return static
320
     *
321
     * @see http://schema.org/character
322
     */
323
    public function character($character)
324
    {
325
        return $this->setProperty('character', $character);
326
    }
327
328
    /**
329
     * A citation or reference to another creative work, such as another
330
     * publication, web page, scholarly article, etc.
331
     *
332
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
333
     *
334
     * @return static
335
     *
336
     * @see http://schema.org/citation
337
     */
338
    public function citation($citation)
339
    {
340
        return $this->setProperty('citation', $citation);
341
    }
342
343
    /**
344
     * Comments, typically from users.
345
     *
346
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
347
     *
348
     * @return static
349
     *
350
     * @see http://schema.org/comment
351
     */
352
    public function comment($comment)
353
    {
354
        return $this->setProperty('comment', $comment);
355
    }
356
357
    /**
358
     * The number of comments this CreativeWork (e.g. Article, Question or
359
     * Answer) has received. This is most applicable to works published in Web
360
     * sites with commenting system; additional comments may exist elsewhere.
361
     *
362
     * @param int|int[] $commentCount
363
     *
364
     * @return static
365
     *
366
     * @see http://schema.org/commentCount
367
     */
368
    public function commentCount($commentCount)
369
    {
370
        return $this->setProperty('commentCount', $commentCount);
371
    }
372
373
    /**
374
     * The location depicted or described in the content. For example, the
375
     * location in a photograph or painting.
376
     *
377
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
378
     *
379
     * @return static
380
     *
381
     * @see http://schema.org/contentLocation
382
     */
383
    public function contentLocation($contentLocation)
384
    {
385
        return $this->setProperty('contentLocation', $contentLocation);
386
    }
387
388
    /**
389
     * Official rating of a piece of content—for example,'MPAA PG-13'.
390
     *
391
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
392
     *
393
     * @return static
394
     *
395
     * @see http://schema.org/contentRating
396
     */
397
    public function contentRating($contentRating)
398
    {
399
        return $this->setProperty('contentRating', $contentRating);
400
    }
401
402
    /**
403
     * A secondary contributor to the CreativeWork or Event.
404
     *
405
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
406
     *
407
     * @return static
408
     *
409
     * @see http://schema.org/contributor
410
     */
411
    public function contributor($contributor)
412
    {
413
        return $this->setProperty('contributor', $contributor);
414
    }
415
416
    /**
417
     * The party holding the legal copyright to the CreativeWork.
418
     *
419
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
420
     *
421
     * @return static
422
     *
423
     * @see http://schema.org/copyrightHolder
424
     */
425
    public function copyrightHolder($copyrightHolder)
426
    {
427
        return $this->setProperty('copyrightHolder', $copyrightHolder);
428
    }
429
430
    /**
431
     * The year during which the claimed copyright for the CreativeWork was
432
     * first asserted.
433
     *
434
     * @param float|float[]|int|int[] $copyrightYear
435
     *
436
     * @return static
437
     *
438
     * @see http://schema.org/copyrightYear
439
     */
440
    public function copyrightYear($copyrightYear)
441
    {
442
        return $this->setProperty('copyrightYear', $copyrightYear);
443
    }
444
445
    /**
446
     * The creator/author of this CreativeWork. This is the same as the Author
447
     * property for CreativeWork.
448
     *
449
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
450
     *
451
     * @return static
452
     *
453
     * @see http://schema.org/creator
454
     */
455
    public function creator($creator)
456
    {
457
        return $this->setProperty('creator', $creator);
458
    }
459
460
    /**
461
     * The date on which the CreativeWork was created or the item was added to a
462
     * DataFeed.
463
     *
464
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
465
     *
466
     * @return static
467
     *
468
     * @see http://schema.org/dateCreated
469
     */
470
    public function dateCreated($dateCreated)
471
    {
472
        return $this->setProperty('dateCreated', $dateCreated);
473
    }
474
475
    /**
476
     * The date on which the CreativeWork was most recently modified or when the
477
     * item's entry was modified within a DataFeed.
478
     *
479
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
480
     *
481
     * @return static
482
     *
483
     * @see http://schema.org/dateModified
484
     */
485
    public function dateModified($dateModified)
486
    {
487
        return $this->setProperty('dateModified', $dateModified);
488
    }
489
490
    /**
491
     * Date of first broadcast/publication.
492
     *
493
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
494
     *
495
     * @return static
496
     *
497
     * @see http://schema.org/datePublished
498
     */
499
    public function datePublished($datePublished)
500
    {
501
        return $this->setProperty('datePublished', $datePublished);
502
    }
503
504
    /**
505
     * A description of the item.
506
     *
507
     * @param string|string[] $description
508
     *
509
     * @return static
510
     *
511
     * @see http://schema.org/description
512
     */
513
    public function description($description)
514
    {
515
        return $this->setProperty('description', $description);
516
    }
517
518
    /**
519
     * A sub property of description. A short description of the item used to
520
     * disambiguate from other, similar items. Information from other properties
521
     * (in particular, name) may be necessary for the description to be useful
522
     * for disambiguation.
523
     *
524
     * @param string|string[] $disambiguatingDescription
525
     *
526
     * @return static
527
     *
528
     * @see http://schema.org/disambiguatingDescription
529
     */
530
    public function disambiguatingDescription($disambiguatingDescription)
531
    {
532
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
533
    }
534
535
    /**
536
     * A link to the page containing the comments of the CreativeWork.
537
     *
538
     * @param string|string[] $discussionUrl
539
     *
540
     * @return static
541
     *
542
     * @see http://schema.org/discussionUrl
543
     */
544
    public function discussionUrl($discussionUrl)
545
    {
546
        return $this->setProperty('discussionUrl', $discussionUrl);
547
    }
548
549
    /**
550
     * Specifies the Person who edited the CreativeWork.
551
     *
552
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
553
     *
554
     * @return static
555
     *
556
     * @see http://schema.org/editor
557
     */
558
    public function editor($editor)
559
    {
560
        return $this->setProperty('editor', $editor);
561
    }
562
563
    /**
564
     * An alignment to an established educational framework.
565
     *
566
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
567
     *
568
     * @return static
569
     *
570
     * @see http://schema.org/educationalAlignment
571
     */
572
    public function educationalAlignment($educationalAlignment)
573
    {
574
        return $this->setProperty('educationalAlignment', $educationalAlignment);
575
    }
576
577
    /**
578
     * The purpose of a work in the context of education; for example,
579
     * 'assignment', 'group work'.
580
     *
581
     * @param string|string[] $educationalUse
582
     *
583
     * @return static
584
     *
585
     * @see http://schema.org/educationalUse
586
     */
587
    public function educationalUse($educationalUse)
588
    {
589
        return $this->setProperty('educationalUse', $educationalUse);
590
    }
591
592
    /**
593
     * A media object that encodes this CreativeWork. This property is a synonym
594
     * for associatedMedia.
595
     *
596
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
597
     *
598
     * @return static
599
     *
600
     * @see http://schema.org/encoding
601
     */
602
    public function encoding($encoding)
603
    {
604
        return $this->setProperty('encoding', $encoding);
605
    }
606
607
    /**
608
     * Media type typically expressed using a MIME format (see [IANA
609
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
610
     * [MDN
611
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
612
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
613
     * .mp3 etc.).
614
     * 
615
     * In cases where a [[CreativeWork]] has several media type representations,
616
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
617
     * particular [[encodingFormat]] information.
618
     * 
619
     * Unregistered or niche encoding and file formats can be indicated instead
620
     * via the most appropriate URL, e.g. defining Web page or a
621
     * Wikipedia/Wikidata entry.
622
     *
623
     * @param string|string[] $encodingFormat
624
     *
625
     * @return static
626
     *
627
     * @see http://schema.org/encodingFormat
628
     */
629
    public function encodingFormat($encodingFormat)
630
    {
631
        return $this->setProperty('encodingFormat', $encodingFormat);
632
    }
633
634
    /**
635
     * A media object that encodes this CreativeWork.
636
     *
637
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
638
     *
639
     * @return static
640
     *
641
     * @see http://schema.org/encodings
642
     */
643
    public function encodings($encodings)
644
    {
645
        return $this->setProperty('encodings', $encodings);
646
    }
647
648
    /**
649
     * A creative work that this work is an
650
     * example/instance/realization/derivation of.
651
     *
652
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
653
     *
654
     * @return static
655
     *
656
     * @see http://schema.org/exampleOfWork
657
     */
658
    public function exampleOfWork($exampleOfWork)
659
    {
660
        return $this->setProperty('exampleOfWork', $exampleOfWork);
661
    }
662
663
    /**
664
     * Date the content expires and is no longer useful or available. For
665
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
666
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
667
     * publisher wants to indicate that it may no longer be relevant (or helpful
668
     * to highlight) after some date.
669
     *
670
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
671
     *
672
     * @return static
673
     *
674
     * @see http://schema.org/expires
675
     */
676
    public function expires($expires)
677
    {
678
        return $this->setProperty('expires', $expires);
679
    }
680
681
    /**
682
     * Media type, typically MIME format (see [IANA
683
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
684
     * the content e.g. application/zip of a SoftwareApplication binary. In
685
     * cases where a CreativeWork has several media type representations,
686
     * 'encoding' can be used to indicate each MediaObject alongside particular
687
     * fileFormat information. Unregistered or niche file formats can be
688
     * indicated instead via the most appropriate URL, e.g. defining Web page or
689
     * a Wikipedia entry.
690
     *
691
     * @param string|string[] $fileFormat
692
     *
693
     * @return static
694
     *
695
     * @see http://schema.org/fileFormat
696
     */
697
    public function fileFormat($fileFormat)
698
    {
699
        return $this->setProperty('fileFormat', $fileFormat);
700
    }
701
702
    /**
703
     * A person or organization that supports (sponsors) something through some
704
     * kind of financial contribution.
705
     *
706
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
707
     *
708
     * @return static
709
     *
710
     * @see http://schema.org/funder
711
     */
712
    public function funder($funder)
713
    {
714
        return $this->setProperty('funder', $funder);
715
    }
716
717
    /**
718
     * Genre of the creative work, broadcast channel or group.
719
     *
720
     * @param string|string[] $genre
721
     *
722
     * @return static
723
     *
724
     * @see http://schema.org/genre
725
     */
726
    public function genre($genre)
727
    {
728
        return $this->setProperty('genre', $genre);
729
    }
730
731
    /**
732
     * Indicates an item or CreativeWork that is part of this item, or
733
     * CreativeWork (in some sense).
734
     *
735
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
736
     *
737
     * @return static
738
     *
739
     * @see http://schema.org/hasPart
740
     */
741
    public function hasPart($hasPart)
742
    {
743
        return $this->setProperty('hasPart', $hasPart);
744
    }
745
746
    /**
747
     * Headline of the article.
748
     *
749
     * @param string|string[] $headline
750
     *
751
     * @return static
752
     *
753
     * @see http://schema.org/headline
754
     */
755
    public function headline($headline)
756
    {
757
        return $this->setProperty('headline', $headline);
758
    }
759
760
    /**
761
     * The identifier property represents any kind of identifier for any kind of
762
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
763
     * dedicated properties for representing many of these, either as textual
764
     * strings or as URL (URI) links. See [background
765
     * notes](/docs/datamodel.html#identifierBg) for more details.
766
     *
767
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
768
     *
769
     * @return static
770
     *
771
     * @see http://schema.org/identifier
772
     */
773
    public function identifier($identifier)
774
    {
775
        return $this->setProperty('identifier', $identifier);
776
    }
777
778
    /**
779
     * An image of the item. This can be a [[URL]] or a fully described
780
     * [[ImageObject]].
781
     *
782
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
783
     *
784
     * @return static
785
     *
786
     * @see http://schema.org/image
787
     */
788
    public function image($image)
789
    {
790
        return $this->setProperty('image', $image);
791
    }
792
793
    /**
794
     * The language of the content or performance or used in an action. Please
795
     * use one of the language codes from the [IETF BCP 47
796
     * standard](http://tools.ietf.org/html/bcp47). See also
797
     * [[availableLanguage]].
798
     *
799
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
800
     *
801
     * @return static
802
     *
803
     * @see http://schema.org/inLanguage
804
     */
805
    public function inLanguage($inLanguage)
806
    {
807
        return $this->setProperty('inLanguage', $inLanguage);
808
    }
809
810
    /**
811
     * The number of interactions for the CreativeWork using the WebSite or
812
     * SoftwareApplication. The most specific child type of InteractionCounter
813
     * should be used.
814
     *
815
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
816
     *
817
     * @return static
818
     *
819
     * @see http://schema.org/interactionStatistic
820
     */
821
    public function interactionStatistic($interactionStatistic)
822
    {
823
        return $this->setProperty('interactionStatistic', $interactionStatistic);
824
    }
825
826
    /**
827
     * The predominant mode of learning supported by the learning resource.
828
     * Acceptable values are 'active', 'expositive', or 'mixed'.
829
     *
830
     * @param string|string[] $interactivityType
831
     *
832
     * @return static
833
     *
834
     * @see http://schema.org/interactivityType
835
     */
836
    public function interactivityType($interactivityType)
837
    {
838
        return $this->setProperty('interactivityType', $interactivityType);
839
    }
840
841
    /**
842
     * A flag to signal that the item, event, or place is accessible for free.
843
     *
844
     * @param bool|bool[] $isAccessibleForFree
845
     *
846
     * @return static
847
     *
848
     * @see http://schema.org/isAccessibleForFree
849
     */
850
    public function isAccessibleForFree($isAccessibleForFree)
851
    {
852
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
853
    }
854
855
    /**
856
     * A resource from which this work is derived or from which it is a
857
     * modification or adaption.
858
     *
859
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
860
     *
861
     * @return static
862
     *
863
     * @see http://schema.org/isBasedOn
864
     */
865
    public function isBasedOn($isBasedOn)
866
    {
867
        return $this->setProperty('isBasedOn', $isBasedOn);
868
    }
869
870
    /**
871
     * A resource that was used in the creation of this resource. This term can
872
     * be repeated for multiple sources. For example,
873
     * http://example.com/great-multiplication-intro.html.
874
     *
875
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
876
     *
877
     * @return static
878
     *
879
     * @see http://schema.org/isBasedOnUrl
880
     */
881
    public function isBasedOnUrl($isBasedOnUrl)
882
    {
883
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
884
    }
885
886
    /**
887
     * Indicates whether this content is family friendly.
888
     *
889
     * @param bool|bool[] $isFamilyFriendly
890
     *
891
     * @return static
892
     *
893
     * @see http://schema.org/isFamilyFriendly
894
     */
895
    public function isFamilyFriendly($isFamilyFriendly)
896
    {
897
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
898
    }
899
900
    /**
901
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
902
     * some sense), is part of.
903
     *
904
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
905
     *
906
     * @return static
907
     *
908
     * @see http://schema.org/isPartOf
909
     */
910
    public function isPartOf($isPartOf)
911
    {
912
        return $this->setProperty('isPartOf', $isPartOf);
913
    }
914
915
    /**
916
     * An entity represented by an entry in a list or data feed (e.g. an
917
     * 'artist' in a list of 'artists')’.
918
     *
919
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $item
920
     *
921
     * @return static
922
     *
923
     * @see http://schema.org/item
924
     */
925
    public function item($item)
926
    {
927
        return $this->setProperty('item', $item);
928
    }
929
930
    /**
931
     * For itemListElement values, you can use simple strings (e.g. "Peter",
932
     * "Paul", "Mary"), existing entities, or use ListItem.
933
     * 
934
     * Text values are best if the elements in the list are plain strings.
935
     * Existing entities are best for a simple, unordered list of existing
936
     * things in your data. ListItem is used with ordered lists when you want to
937
     * provide additional context about the element in that list or when the
938
     * same item might be in different places in different lists.
939
     * 
940
     * Note: The order of elements in your mark-up is not sufficient for
941
     * indicating the order or elements.  Use ListItem with a 'position'
942
     * property in such cases.
943
     *
944
     * @param \Spatie\SchemaOrg\Contracts\ListItemContract|\Spatie\SchemaOrg\Contracts\ListItemContract[]|\Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[]|string|string[] $itemListElement
945
     *
946
     * @return static
947
     *
948
     * @see http://schema.org/itemListElement
949
     */
950
    public function itemListElement($itemListElement)
951
    {
952
        return $this->setProperty('itemListElement', $itemListElement);
953
    }
954
955
    /**
956
     * Type of ordering (e.g. Ascending, Descending, Unordered).
957
     *
958
     * @param \Spatie\SchemaOrg\Contracts\ItemListOrderTypeContract|\Spatie\SchemaOrg\Contracts\ItemListOrderTypeContract[]|string|string[] $itemListOrder
959
     *
960
     * @return static
961
     *
962
     * @see http://schema.org/itemListOrder
963
     */
964
    public function itemListOrder($itemListOrder)
965
    {
966
        return $this->setProperty('itemListOrder', $itemListOrder);
967
    }
968
969
    /**
970
     * Keywords or tags used to describe this content. Multiple entries in a
971
     * keywords list are typically delimited by commas.
972
     *
973
     * @param string|string[] $keywords
974
     *
975
     * @return static
976
     *
977
     * @see http://schema.org/keywords
978
     */
979
    public function keywords($keywords)
980
    {
981
        return $this->setProperty('keywords', $keywords);
982
    }
983
984
    /**
985
     * The predominant type or kind characterizing the learning resource. For
986
     * example, 'presentation', 'handout'.
987
     *
988
     * @param string|string[] $learningResourceType
989
     *
990
     * @return static
991
     *
992
     * @see http://schema.org/learningResourceType
993
     */
994
    public function learningResourceType($learningResourceType)
995
    {
996
        return $this->setProperty('learningResourceType', $learningResourceType);
997
    }
998
999
    /**
1000
     * A license document that applies to this content, typically indicated by
1001
     * URL.
1002
     *
1003
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1004
     *
1005
     * @return static
1006
     *
1007
     * @see http://schema.org/license
1008
     */
1009
    public function license($license)
1010
    {
1011
        return $this->setProperty('license', $license);
1012
    }
1013
1014
    /**
1015
     * The location where the CreativeWork was created, which may not be the
1016
     * same as the location depicted in the CreativeWork.
1017
     *
1018
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1019
     *
1020
     * @return static
1021
     *
1022
     * @see http://schema.org/locationCreated
1023
     */
1024
    public function locationCreated($locationCreated)
1025
    {
1026
        return $this->setProperty('locationCreated', $locationCreated);
1027
    }
1028
1029
    /**
1030
     * Indicates the primary entity described in some page or other
1031
     * CreativeWork.
1032
     *
1033
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1034
     *
1035
     * @return static
1036
     *
1037
     * @see http://schema.org/mainEntity
1038
     */
1039
    public function mainEntity($mainEntity)
1040
    {
1041
        return $this->setProperty('mainEntity', $mainEntity);
1042
    }
1043
1044
    /**
1045
     * Indicates a page (or other CreativeWork) for which this thing is the main
1046
     * entity being described. See [background
1047
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1048
     *
1049
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1050
     *
1051
     * @return static
1052
     *
1053
     * @see http://schema.org/mainEntityOfPage
1054
     */
1055
    public function mainEntityOfPage($mainEntityOfPage)
1056
    {
1057
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1058
    }
1059
1060
    /**
1061
     * A material that something is made from, e.g. leather, wool, cotton,
1062
     * paper.
1063
     *
1064
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1065
     *
1066
     * @return static
1067
     *
1068
     * @see http://schema.org/material
1069
     */
1070
    public function material($material)
1071
    {
1072
        return $this->setProperty('material', $material);
1073
    }
1074
1075
    /**
1076
     * Indicates that the CreativeWork contains a reference to, but is not
1077
     * necessarily about a concept.
1078
     *
1079
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1080
     *
1081
     * @return static
1082
     *
1083
     * @see http://schema.org/mentions
1084
     */
1085
    public function mentions($mentions)
1086
    {
1087
        return $this->setProperty('mentions', $mentions);
1088
    }
1089
1090
    /**
1091
     * The name of the item.
1092
     *
1093
     * @param string|string[] $name
1094
     *
1095
     * @return static
1096
     *
1097
     * @see http://schema.org/name
1098
     */
1099
    public function name($name)
1100
    {
1101
        return $this->setProperty('name', $name);
1102
    }
1103
1104
    /**
1105
     * A link to the ListItem that follows the current one.
1106
     *
1107
     * @param \Spatie\SchemaOrg\Contracts\ListItemContract|\Spatie\SchemaOrg\Contracts\ListItemContract[] $nextItem
1108
     *
1109
     * @return static
1110
     *
1111
     * @see http://schema.org/nextItem
1112
     */
1113
    public function nextItem($nextItem)
1114
    {
1115
        return $this->setProperty('nextItem', $nextItem);
1116
    }
1117
1118
    /**
1119
     * The number of items in an ItemList. Note that some descriptions might not
1120
     * fully describe all items in a list (e.g., multi-page pagination); in such
1121
     * cases, the numberOfItems would be for the entire list.
1122
     *
1123
     * @param int|int[] $numberOfItems
1124
     *
1125
     * @return static
1126
     *
1127
     * @see http://schema.org/numberOfItems
1128
     */
1129
    public function numberOfItems($numberOfItems)
1130
    {
1131
        return $this->setProperty('numberOfItems', $numberOfItems);
1132
    }
1133
1134
    /**
1135
     * An offer to provide this item—for example, an offer to sell a
1136
     * product, rent the DVD of a movie, perform a service, or give away tickets
1137
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1138
     * offered, i.e. sell, lease, etc. This property can also be used to
1139
     * describe a [[Demand]]. While this property is listed as expected on a
1140
     * number of common types, it can be used in others. In that case, using a
1141
     * second type, such as Product or a subtype of Product, can clarify the
1142
     * nature of the offer.
1143
     *
1144
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1145
     *
1146
     * @return static
1147
     *
1148
     * @see http://schema.org/offers
1149
     */
1150
    public function offers($offers)
1151
    {
1152
        return $this->setProperty('offers', $offers);
1153
    }
1154
1155
    /**
1156
     * The position of an item in a series or sequence of items.
1157
     *
1158
     * @param int|int[]|string|string[] $position
1159
     *
1160
     * @return static
1161
     *
1162
     * @see http://schema.org/position
1163
     */
1164
    public function position($position)
1165
    {
1166
        return $this->setProperty('position', $position);
1167
    }
1168
1169
    /**
1170
     * Indicates a potential Action, which describes an idealized action in
1171
     * which this thing would play an 'object' role.
1172
     *
1173
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1174
     *
1175
     * @return static
1176
     *
1177
     * @see http://schema.org/potentialAction
1178
     */
1179
    public function potentialAction($potentialAction)
1180
    {
1181
        return $this->setProperty('potentialAction', $potentialAction);
1182
    }
1183
1184
    /**
1185
     * A link to the ListItem that preceeds the current one.
1186
     *
1187
     * @param \Spatie\SchemaOrg\Contracts\ListItemContract|\Spatie\SchemaOrg\Contracts\ListItemContract[] $previousItem
1188
     *
1189
     * @return static
1190
     *
1191
     * @see http://schema.org/previousItem
1192
     */
1193
    public function previousItem($previousItem)
1194
    {
1195
        return $this->setProperty('previousItem', $previousItem);
1196
    }
1197
1198
    /**
1199
     * The person or organization who produced the work (e.g. music album,
1200
     * movie, tv/radio series etc.).
1201
     *
1202
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1203
     *
1204
     * @return static
1205
     *
1206
     * @see http://schema.org/producer
1207
     */
1208
    public function producer($producer)
1209
    {
1210
        return $this->setProperty('producer', $producer);
1211
    }
1212
1213
    /**
1214
     * The service provider, service operator, or service performer; the goods
1215
     * producer. Another party (a seller) may offer those services or goods on
1216
     * behalf of the provider. A provider may also serve as the seller.
1217
     *
1218
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1219
     *
1220
     * @return static
1221
     *
1222
     * @see http://schema.org/provider
1223
     */
1224
    public function provider($provider)
1225
    {
1226
        return $this->setProperty('provider', $provider);
1227
    }
1228
1229
    /**
1230
     * A publication event associated with the item.
1231
     *
1232
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1233
     *
1234
     * @return static
1235
     *
1236
     * @see http://schema.org/publication
1237
     */
1238
    public function publication($publication)
1239
    {
1240
        return $this->setProperty('publication', $publication);
1241
    }
1242
1243
    /**
1244
     * The publisher of the creative work.
1245
     *
1246
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1247
     *
1248
     * @return static
1249
     *
1250
     * @see http://schema.org/publisher
1251
     */
1252
    public function publisher($publisher)
1253
    {
1254
        return $this->setProperty('publisher', $publisher);
1255
    }
1256
1257
    /**
1258
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1259
     * document describing the editorial principles of an [[Organization]] (or
1260
     * individual e.g. a [[Person]] writing a blog) that relate to their
1261
     * activities as a publisher, e.g. ethics or diversity policies. When
1262
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1263
     * those of the party primarily responsible for the creation of the
1264
     * [[CreativeWork]].
1265
     * 
1266
     * While such policies are most typically expressed in natural language,
1267
     * sometimes related information (e.g. indicating a [[funder]]) can be
1268
     * expressed using schema.org terminology.
1269
     *
1270
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1271
     *
1272
     * @return static
1273
     *
1274
     * @see http://schema.org/publishingPrinciples
1275
     */
1276
    public function publishingPrinciples($publishingPrinciples)
1277
    {
1278
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1279
    }
1280
1281
    /**
1282
     * The Event where the CreativeWork was recorded. The CreativeWork may
1283
     * capture all or part of the event.
1284
     *
1285
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1286
     *
1287
     * @return static
1288
     *
1289
     * @see http://schema.org/recordedAt
1290
     */
1291
    public function recordedAt($recordedAt)
1292
    {
1293
        return $this->setProperty('recordedAt', $recordedAt);
1294
    }
1295
1296
    /**
1297
     * The place and time the release was issued, expressed as a
1298
     * PublicationEvent.
1299
     *
1300
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1301
     *
1302
     * @return static
1303
     *
1304
     * @see http://schema.org/releasedEvent
1305
     */
1306
    public function releasedEvent($releasedEvent)
1307
    {
1308
        return $this->setProperty('releasedEvent', $releasedEvent);
1309
    }
1310
1311
    /**
1312
     * A review of the item.
1313
     *
1314
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1315
     *
1316
     * @return static
1317
     *
1318
     * @see http://schema.org/review
1319
     */
1320
    public function review($review)
1321
    {
1322
        return $this->setProperty('review', $review);
1323
    }
1324
1325
    /**
1326
     * Review of the item.
1327
     *
1328
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1329
     *
1330
     * @return static
1331
     *
1332
     * @see http://schema.org/reviews
1333
     */
1334
    public function reviews($reviews)
1335
    {
1336
        return $this->setProperty('reviews', $reviews);
1337
    }
1338
1339
    /**
1340
     * URL of a reference Web page that unambiguously indicates the item's
1341
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1342
     * official website.
1343
     *
1344
     * @param string|string[] $sameAs
1345
     *
1346
     * @return static
1347
     *
1348
     * @see http://schema.org/sameAs
1349
     */
1350
    public function sameAs($sameAs)
1351
    {
1352
        return $this->setProperty('sameAs', $sameAs);
1353
    }
1354
1355
    /**
1356
     * Indicates (by URL or string) a particular version of a schema used in
1357
     * some CreativeWork. For example, a document could declare a schemaVersion
1358
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1359
     * of schema version was required by some application.
1360
     *
1361
     * @param string|string[] $schemaVersion
1362
     *
1363
     * @return static
1364
     *
1365
     * @see http://schema.org/schemaVersion
1366
     */
1367
    public function schemaVersion($schemaVersion)
1368
    {
1369
        return $this->setProperty('schemaVersion', $schemaVersion);
1370
    }
1371
1372
    /**
1373
     * The Organization on whose behalf the creator was working.
1374
     *
1375
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1376
     *
1377
     * @return static
1378
     *
1379
     * @see http://schema.org/sourceOrganization
1380
     */
1381
    public function sourceOrganization($sourceOrganization)
1382
    {
1383
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1384
    }
1385
1386
    /**
1387
     * The "spatial" property can be used in cases when more specific properties
1388
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1389
     * not known to be appropriate.
1390
     *
1391
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1392
     *
1393
     * @return static
1394
     *
1395
     * @see http://schema.org/spatial
1396
     */
1397
    public function spatial($spatial)
1398
    {
1399
        return $this->setProperty('spatial', $spatial);
1400
    }
1401
1402
    /**
1403
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1404
     * the focus of the content. It is a subproperty of
1405
     *       contentLocation intended primarily for more technical and detailed
1406
     * materials. For example with a Dataset, it indicates
1407
     *       areas that the dataset describes: a dataset of New York weather
1408
     * would have spatialCoverage which was the place: the state of New York.
1409
     *
1410
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1411
     *
1412
     * @return static
1413
     *
1414
     * @see http://schema.org/spatialCoverage
1415
     */
1416
    public function spatialCoverage($spatialCoverage)
1417
    {
1418
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1419
    }
1420
1421
    /**
1422
     * A person or organization that supports a thing through a pledge, promise,
1423
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1424
     * corporate sponsor of an event.
1425
     *
1426
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1427
     *
1428
     * @return static
1429
     *
1430
     * @see http://schema.org/sponsor
1431
     */
1432
    public function sponsor($sponsor)
1433
    {
1434
        return $this->setProperty('sponsor', $sponsor);
1435
    }
1436
1437
    /**
1438
     * A single step item (as HowToStep, text, document, video, etc.) or a
1439
     * HowToSection (originally misnamed 'steps'; 'step' is preferred).
1440
     *
1441
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[]|string|string[] $steps
1442
     *
1443
     * @return static
1444
     *
1445
     * @see http://schema.org/steps
1446
     */
1447
    public function steps($steps)
1448
    {
1449
        return $this->setProperty('steps', $steps);
1450
    }
1451
1452
    /**
1453
     * A CreativeWork or Event about this Thing.
1454
     *
1455
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1456
     *
1457
     * @return static
1458
     *
1459
     * @see http://schema.org/subjectOf
1460
     */
1461
    public function subjectOf($subjectOf)
1462
    {
1463
        return $this->setProperty('subjectOf', $subjectOf);
1464
    }
1465
1466
    /**
1467
     * The "temporal" property can be used in cases where more specific
1468
     * properties
1469
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1470
     * [[datePublished]]) are not known to be appropriate.
1471
     *
1472
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1473
     *
1474
     * @return static
1475
     *
1476
     * @see http://schema.org/temporal
1477
     */
1478
    public function temporal($temporal)
1479
    {
1480
        return $this->setProperty('temporal', $temporal);
1481
    }
1482
1483
    /**
1484
     * The temporalCoverage of a CreativeWork indicates the period that the
1485
     * content applies to, i.e. that it describes, either as a DateTime or as a
1486
     * textual string indicating a time period in [ISO 8601 time interval
1487
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1488
     *       the case of a Dataset it will typically indicate the relevant time
1489
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1490
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1491
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1492
     * temporalCoverage in broader terms - textually or via well-known URL.
1493
     *       Written works such as books may sometimes have precise temporal
1494
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1495
     * interval format format via "1939/1945".
1496
     * 
1497
     * Open-ended date ranges can be written with ".." in place of the end date.
1498
     * For example, "2015-11/.." indicates a range beginning in November 2015
1499
     * and with no specified final date. This is tentative and might be updated
1500
     * in future when ISO 8601 is officially updated.
1501
     *
1502
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1503
     *
1504
     * @return static
1505
     *
1506
     * @see http://schema.org/temporalCoverage
1507
     */
1508
    public function temporalCoverage($temporalCoverage)
1509
    {
1510
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1511
    }
1512
1513
    /**
1514
     * The textual content of this CreativeWork.
1515
     *
1516
     * @param string|string[] $text
1517
     *
1518
     * @return static
1519
     *
1520
     * @see http://schema.org/text
1521
     */
1522
    public function text($text)
1523
    {
1524
        return $this->setProperty('text', $text);
1525
    }
1526
1527
    /**
1528
     * A thumbnail image relevant to the Thing.
1529
     *
1530
     * @param string|string[] $thumbnailUrl
1531
     *
1532
     * @return static
1533
     *
1534
     * @see http://schema.org/thumbnailUrl
1535
     */
1536
    public function thumbnailUrl($thumbnailUrl)
1537
    {
1538
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1539
    }
1540
1541
    /**
1542
     * Approximate or typical time it takes to work with or through this
1543
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1544
     * 'PT1H25M'.
1545
     *
1546
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1547
     *
1548
     * @return static
1549
     *
1550
     * @see http://schema.org/timeRequired
1551
     */
1552
    public function timeRequired($timeRequired)
1553
    {
1554
        return $this->setProperty('timeRequired', $timeRequired);
1555
    }
1556
1557
    /**
1558
     * Organization or person who adapts a creative work to different languages,
1559
     * regional differences and technical requirements of a target market, or
1560
     * that translates during some event.
1561
     *
1562
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1563
     *
1564
     * @return static
1565
     *
1566
     * @see http://schema.org/translator
1567
     */
1568
    public function translator($translator)
1569
    {
1570
        return $this->setProperty('translator', $translator);
1571
    }
1572
1573
    /**
1574
     * The typical expected age range, e.g. '7-9', '11-'.
1575
     *
1576
     * @param string|string[] $typicalAgeRange
1577
     *
1578
     * @return static
1579
     *
1580
     * @see http://schema.org/typicalAgeRange
1581
     */
1582
    public function typicalAgeRange($typicalAgeRange)
1583
    {
1584
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1585
    }
1586
1587
    /**
1588
     * URL of the item.
1589
     *
1590
     * @param string|string[] $url
1591
     *
1592
     * @return static
1593
     *
1594
     * @see http://schema.org/url
1595
     */
1596
    public function url($url)
1597
    {
1598
        return $this->setProperty('url', $url);
1599
    }
1600
1601
    /**
1602
     * The version of the CreativeWork embodied by a specified resource.
1603
     *
1604
     * @param float|float[]|int|int[]|string|string[] $version
1605
     *
1606
     * @return static
1607
     *
1608
     * @see http://schema.org/version
1609
     */
1610
    public function version($version)
1611
    {
1612
        return $this->setProperty('version', $version);
1613
    }
1614
1615
    /**
1616
     * An embedded video object.
1617
     *
1618
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1619
     *
1620
     * @return static
1621
     *
1622
     * @see http://schema.org/video
1623
     */
1624
    public function video($video)
1625
    {
1626
        return $this->setProperty('video', $video);
1627
    }
1628
1629
    /**
1630
     * Example/instance/realization/derivation of the concept of this creative
1631
     * work. eg. The paperback edition, first edition, or eBook.
1632
     *
1633
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1634
     *
1635
     * @return static
1636
     *
1637
     * @see http://schema.org/workExample
1638
     */
1639
    public function workExample($workExample)
1640
    {
1641
        return $this->setProperty('workExample', $workExample);
1642
    }
1643
1644
}
1645

src/HowToStep.php 1 location

@@ 19-1629 (lines=1611) @@
16
 * @see http://schema.org/HowToStep
17
 *
18
 */
19
class HowToStep extends BaseType implements HowToStepContract, CreativeWorkContract, IntangibleContract, ItemListContract, ListItemContract, ThingContract
20
{
21
    /**
22
     * The subject matter of the content.
23
     *
24
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
25
     *
26
     * @return static
27
     *
28
     * @see http://schema.org/about
29
     */
30
    public function about($about)
31
    {
32
        return $this->setProperty('about', $about);
33
    }
34
35
    /**
36
     * The human sensory perceptual system or cognitive faculty through which a
37
     * person may process or perceive information. Expected values include:
38
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
39
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
40
     *
41
     * @param string|string[] $accessMode
42
     *
43
     * @return static
44
     *
45
     * @see http://schema.org/accessMode
46
     */
47
    public function accessMode($accessMode)
48
    {
49
        return $this->setProperty('accessMode', $accessMode);
50
    }
51
52
    /**
53
     * A list of single or combined accessModes that are sufficient to
54
     * understand all the intellectual content of a resource. Expected values
55
     * include:  auditory, tactile, textual, visual.
56
     *
57
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
58
     *
59
     * @return static
60
     *
61
     * @see http://schema.org/accessModeSufficient
62
     */
63
    public function accessModeSufficient($accessModeSufficient)
64
    {
65
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
66
    }
67
68
    /**
69
     * Indicates that the resource is compatible with the referenced
70
     * accessibility API ([WebSchemas wiki lists possible
71
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
72
     *
73
     * @param string|string[] $accessibilityAPI
74
     *
75
     * @return static
76
     *
77
     * @see http://schema.org/accessibilityAPI
78
     */
79
    public function accessibilityAPI($accessibilityAPI)
80
    {
81
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
82
    }
83
84
    /**
85
     * Identifies input methods that are sufficient to fully control the
86
     * described resource ([WebSchemas wiki lists possible
87
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
88
     *
89
     * @param string|string[] $accessibilityControl
90
     *
91
     * @return static
92
     *
93
     * @see http://schema.org/accessibilityControl
94
     */
95
    public function accessibilityControl($accessibilityControl)
96
    {
97
        return $this->setProperty('accessibilityControl', $accessibilityControl);
98
    }
99
100
    /**
101
     * Content features of the resource, such as accessible media, alternatives
102
     * and supported enhancements for accessibility ([WebSchemas wiki lists
103
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
104
     *
105
     * @param string|string[] $accessibilityFeature
106
     *
107
     * @return static
108
     *
109
     * @see http://schema.org/accessibilityFeature
110
     */
111
    public function accessibilityFeature($accessibilityFeature)
112
    {
113
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
114
    }
115
116
    /**
117
     * A characteristic of the described resource that is physiologically
118
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
119
     * wiki lists possible
120
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
121
     *
122
     * @param string|string[] $accessibilityHazard
123
     *
124
     * @return static
125
     *
126
     * @see http://schema.org/accessibilityHazard
127
     */
128
    public function accessibilityHazard($accessibilityHazard)
129
    {
130
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
131
    }
132
133
    /**
134
     * A human-readable summary of specific accessibility features or
135
     * deficiencies, consistent with the other accessibility metadata but
136
     * expressing subtleties such as "short descriptions are present but long
137
     * descriptions will be needed for non-visual users" or "short descriptions
138
     * are present and no long descriptions are needed."
139
     *
140
     * @param string|string[] $accessibilitySummary
141
     *
142
     * @return static
143
     *
144
     * @see http://schema.org/accessibilitySummary
145
     */
146
    public function accessibilitySummary($accessibilitySummary)
147
    {
148
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
149
    }
150
151
    /**
152
     * Specifies the Person that is legally accountable for the CreativeWork.
153
     *
154
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
155
     *
156
     * @return static
157
     *
158
     * @see http://schema.org/accountablePerson
159
     */
160
    public function accountablePerson($accountablePerson)
161
    {
162
        return $this->setProperty('accountablePerson', $accountablePerson);
163
    }
164
165
    /**
166
     * An additional type for the item, typically used for adding more specific
167
     * types from external vocabularies in microdata syntax. This is a
168
     * relationship between something and a class that the thing is in. In RDFa
169
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
170
     * attribute - for multiple types. Schema.org tools may have only weaker
171
     * understanding of extra types, in particular those defined externally.
172
     *
173
     * @param string|string[] $additionalType
174
     *
175
     * @return static
176
     *
177
     * @see http://schema.org/additionalType
178
     */
179
    public function additionalType($additionalType)
180
    {
181
        return $this->setProperty('additionalType', $additionalType);
182
    }
183
184
    /**
185
     * The overall rating, based on a collection of reviews or ratings, of the
186
     * item.
187
     *
188
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
189
     *
190
     * @return static
191
     *
192
     * @see http://schema.org/aggregateRating
193
     */
194
    public function aggregateRating($aggregateRating)
195
    {
196
        return $this->setProperty('aggregateRating', $aggregateRating);
197
    }
198
199
    /**
200
     * An alias for the item.
201
     *
202
     * @param string|string[] $alternateName
203
     *
204
     * @return static
205
     *
206
     * @see http://schema.org/alternateName
207
     */
208
    public function alternateName($alternateName)
209
    {
210
        return $this->setProperty('alternateName', $alternateName);
211
    }
212
213
    /**
214
     * A secondary title of the CreativeWork.
215
     *
216
     * @param string|string[] $alternativeHeadline
217
     *
218
     * @return static
219
     *
220
     * @see http://schema.org/alternativeHeadline
221
     */
222
    public function alternativeHeadline($alternativeHeadline)
223
    {
224
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
225
    }
226
227
    /**
228
     * A media object that encodes this CreativeWork. This property is a synonym
229
     * for encoding.
230
     *
231
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
232
     *
233
     * @return static
234
     *
235
     * @see http://schema.org/associatedMedia
236
     */
237
    public function associatedMedia($associatedMedia)
238
    {
239
        return $this->setProperty('associatedMedia', $associatedMedia);
240
    }
241
242
    /**
243
     * An intended audience, i.e. a group for whom something was created.
244
     *
245
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
246
     *
247
     * @return static
248
     *
249
     * @see http://schema.org/audience
250
     */
251
    public function audience($audience)
252
    {
253
        return $this->setProperty('audience', $audience);
254
    }
255
256
    /**
257
     * An embedded audio object.
258
     *
259
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
260
     *
261
     * @return static
262
     *
263
     * @see http://schema.org/audio
264
     */
265
    public function audio($audio)
266
    {
267
        return $this->setProperty('audio', $audio);
268
    }
269
270
    /**
271
     * The author of this content or rating. Please note that author is special
272
     * in that HTML 5 provides a special mechanism for indicating authorship via
273
     * the rel tag. That is equivalent to this and may be used interchangeably.
274
     *
275
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
276
     *
277
     * @return static
278
     *
279
     * @see http://schema.org/author
280
     */
281
    public function author($author)
282
    {
283
        return $this->setProperty('author', $author);
284
    }
285
286
    /**
287
     * An award won by or for this item.
288
     *
289
     * @param string|string[] $award
290
     *
291
     * @return static
292
     *
293
     * @see http://schema.org/award
294
     */
295
    public function award($award)
296
    {
297
        return $this->setProperty('award', $award);
298
    }
299
300
    /**
301
     * Awards won by or for this item.
302
     *
303
     * @param string|string[] $awards
304
     *
305
     * @return static
306
     *
307
     * @see http://schema.org/awards
308
     */
309
    public function awards($awards)
310
    {
311
        return $this->setProperty('awards', $awards);
312
    }
313
314
    /**
315
     * Fictional person connected with a creative work.
316
     *
317
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
318
     *
319
     * @return static
320
     *
321
     * @see http://schema.org/character
322
     */
323
    public function character($character)
324
    {
325
        return $this->setProperty('character', $character);
326
    }
327
328
    /**
329
     * A citation or reference to another creative work, such as another
330
     * publication, web page, scholarly article, etc.
331
     *
332
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
333
     *
334
     * @return static
335
     *
336
     * @see http://schema.org/citation
337
     */
338
    public function citation($citation)
339
    {
340
        return $this->setProperty('citation', $citation);
341
    }
342
343
    /**
344
     * Comments, typically from users.
345
     *
346
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
347
     *
348
     * @return static
349
     *
350
     * @see http://schema.org/comment
351
     */
352
    public function comment($comment)
353
    {
354
        return $this->setProperty('comment', $comment);
355
    }
356
357
    /**
358
     * The number of comments this CreativeWork (e.g. Article, Question or
359
     * Answer) has received. This is most applicable to works published in Web
360
     * sites with commenting system; additional comments may exist elsewhere.
361
     *
362
     * @param int|int[] $commentCount
363
     *
364
     * @return static
365
     *
366
     * @see http://schema.org/commentCount
367
     */
368
    public function commentCount($commentCount)
369
    {
370
        return $this->setProperty('commentCount', $commentCount);
371
    }
372
373
    /**
374
     * The location depicted or described in the content. For example, the
375
     * location in a photograph or painting.
376
     *
377
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
378
     *
379
     * @return static
380
     *
381
     * @see http://schema.org/contentLocation
382
     */
383
    public function contentLocation($contentLocation)
384
    {
385
        return $this->setProperty('contentLocation', $contentLocation);
386
    }
387
388
    /**
389
     * Official rating of a piece of content—for example,'MPAA PG-13'.
390
     *
391
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
392
     *
393
     * @return static
394
     *
395
     * @see http://schema.org/contentRating
396
     */
397
    public function contentRating($contentRating)
398
    {
399
        return $this->setProperty('contentRating', $contentRating);
400
    }
401
402
    /**
403
     * A secondary contributor to the CreativeWork or Event.
404
     *
405
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
406
     *
407
     * @return static
408
     *
409
     * @see http://schema.org/contributor
410
     */
411
    public function contributor($contributor)
412
    {
413
        return $this->setProperty('contributor', $contributor);
414
    }
415
416
    /**
417
     * The party holding the legal copyright to the CreativeWork.
418
     *
419
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
420
     *
421
     * @return static
422
     *
423
     * @see http://schema.org/copyrightHolder
424
     */
425
    public function copyrightHolder($copyrightHolder)
426
    {
427
        return $this->setProperty('copyrightHolder', $copyrightHolder);
428
    }
429
430
    /**
431
     * The year during which the claimed copyright for the CreativeWork was
432
     * first asserted.
433
     *
434
     * @param float|float[]|int|int[] $copyrightYear
435
     *
436
     * @return static
437
     *
438
     * @see http://schema.org/copyrightYear
439
     */
440
    public function copyrightYear($copyrightYear)
441
    {
442
        return $this->setProperty('copyrightYear', $copyrightYear);
443
    }
444
445
    /**
446
     * The creator/author of this CreativeWork. This is the same as the Author
447
     * property for CreativeWork.
448
     *
449
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
450
     *
451
     * @return static
452
     *
453
     * @see http://schema.org/creator
454
     */
455
    public function creator($creator)
456
    {
457
        return $this->setProperty('creator', $creator);
458
    }
459
460
    /**
461
     * The date on which the CreativeWork was created or the item was added to a
462
     * DataFeed.
463
     *
464
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
465
     *
466
     * @return static
467
     *
468
     * @see http://schema.org/dateCreated
469
     */
470
    public function dateCreated($dateCreated)
471
    {
472
        return $this->setProperty('dateCreated', $dateCreated);
473
    }
474
475
    /**
476
     * The date on which the CreativeWork was most recently modified or when the
477
     * item's entry was modified within a DataFeed.
478
     *
479
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
480
     *
481
     * @return static
482
     *
483
     * @see http://schema.org/dateModified
484
     */
485
    public function dateModified($dateModified)
486
    {
487
        return $this->setProperty('dateModified', $dateModified);
488
    }
489
490
    /**
491
     * Date of first broadcast/publication.
492
     *
493
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
494
     *
495
     * @return static
496
     *
497
     * @see http://schema.org/datePublished
498
     */
499
    public function datePublished($datePublished)
500
    {
501
        return $this->setProperty('datePublished', $datePublished);
502
    }
503
504
    /**
505
     * A description of the item.
506
     *
507
     * @param string|string[] $description
508
     *
509
     * @return static
510
     *
511
     * @see http://schema.org/description
512
     */
513
    public function description($description)
514
    {
515
        return $this->setProperty('description', $description);
516
    }
517
518
    /**
519
     * A sub property of description. A short description of the item used to
520
     * disambiguate from other, similar items. Information from other properties
521
     * (in particular, name) may be necessary for the description to be useful
522
     * for disambiguation.
523
     *
524
     * @param string|string[] $disambiguatingDescription
525
     *
526
     * @return static
527
     *
528
     * @see http://schema.org/disambiguatingDescription
529
     */
530
    public function disambiguatingDescription($disambiguatingDescription)
531
    {
532
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
533
    }
534
535
    /**
536
     * A link to the page containing the comments of the CreativeWork.
537
     *
538
     * @param string|string[] $discussionUrl
539
     *
540
     * @return static
541
     *
542
     * @see http://schema.org/discussionUrl
543
     */
544
    public function discussionUrl($discussionUrl)
545
    {
546
        return $this->setProperty('discussionUrl', $discussionUrl);
547
    }
548
549
    /**
550
     * Specifies the Person who edited the CreativeWork.
551
     *
552
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
553
     *
554
     * @return static
555
     *
556
     * @see http://schema.org/editor
557
     */
558
    public function editor($editor)
559
    {
560
        return $this->setProperty('editor', $editor);
561
    }
562
563
    /**
564
     * An alignment to an established educational framework.
565
     *
566
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
567
     *
568
     * @return static
569
     *
570
     * @see http://schema.org/educationalAlignment
571
     */
572
    public function educationalAlignment($educationalAlignment)
573
    {
574
        return $this->setProperty('educationalAlignment', $educationalAlignment);
575
    }
576
577
    /**
578
     * The purpose of a work in the context of education; for example,
579
     * 'assignment', 'group work'.
580
     *
581
     * @param string|string[] $educationalUse
582
     *
583
     * @return static
584
     *
585
     * @see http://schema.org/educationalUse
586
     */
587
    public function educationalUse($educationalUse)
588
    {
589
        return $this->setProperty('educationalUse', $educationalUse);
590
    }
591
592
    /**
593
     * A media object that encodes this CreativeWork. This property is a synonym
594
     * for associatedMedia.
595
     *
596
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
597
     *
598
     * @return static
599
     *
600
     * @see http://schema.org/encoding
601
     */
602
    public function encoding($encoding)
603
    {
604
        return $this->setProperty('encoding', $encoding);
605
    }
606
607
    /**
608
     * Media type typically expressed using a MIME format (see [IANA
609
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
610
     * [MDN
611
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
612
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
613
     * .mp3 etc.).
614
     * 
615
     * In cases where a [[CreativeWork]] has several media type representations,
616
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
617
     * particular [[encodingFormat]] information.
618
     * 
619
     * Unregistered or niche encoding and file formats can be indicated instead
620
     * via the most appropriate URL, e.g. defining Web page or a
621
     * Wikipedia/Wikidata entry.
622
     *
623
     * @param string|string[] $encodingFormat
624
     *
625
     * @return static
626
     *
627
     * @see http://schema.org/encodingFormat
628
     */
629
    public function encodingFormat($encodingFormat)
630
    {
631
        return $this->setProperty('encodingFormat', $encodingFormat);
632
    }
633
634
    /**
635
     * A media object that encodes this CreativeWork.
636
     *
637
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
638
     *
639
     * @return static
640
     *
641
     * @see http://schema.org/encodings
642
     */
643
    public function encodings($encodings)
644
    {
645
        return $this->setProperty('encodings', $encodings);
646
    }
647
648
    /**
649
     * A creative work that this work is an
650
     * example/instance/realization/derivation of.
651
     *
652
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
653
     *
654
     * @return static
655
     *
656
     * @see http://schema.org/exampleOfWork
657
     */
658
    public function exampleOfWork($exampleOfWork)
659
    {
660
        return $this->setProperty('exampleOfWork', $exampleOfWork);
661
    }
662
663
    /**
664
     * Date the content expires and is no longer useful or available. For
665
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
666
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
667
     * publisher wants to indicate that it may no longer be relevant (or helpful
668
     * to highlight) after some date.
669
     *
670
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
671
     *
672
     * @return static
673
     *
674
     * @see http://schema.org/expires
675
     */
676
    public function expires($expires)
677
    {
678
        return $this->setProperty('expires', $expires);
679
    }
680
681
    /**
682
     * Media type, typically MIME format (see [IANA
683
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
684
     * the content e.g. application/zip of a SoftwareApplication binary. In
685
     * cases where a CreativeWork has several media type representations,
686
     * 'encoding' can be used to indicate each MediaObject alongside particular
687
     * fileFormat information. Unregistered or niche file formats can be
688
     * indicated instead via the most appropriate URL, e.g. defining Web page or
689
     * a Wikipedia entry.
690
     *
691
     * @param string|string[] $fileFormat
692
     *
693
     * @return static
694
     *
695
     * @see http://schema.org/fileFormat
696
     */
697
    public function fileFormat($fileFormat)
698
    {
699
        return $this->setProperty('fileFormat', $fileFormat);
700
    }
701
702
    /**
703
     * A person or organization that supports (sponsors) something through some
704
     * kind of financial contribution.
705
     *
706
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
707
     *
708
     * @return static
709
     *
710
     * @see http://schema.org/funder
711
     */
712
    public function funder($funder)
713
    {
714
        return $this->setProperty('funder', $funder);
715
    }
716
717
    /**
718
     * Genre of the creative work, broadcast channel or group.
719
     *
720
     * @param string|string[] $genre
721
     *
722
     * @return static
723
     *
724
     * @see http://schema.org/genre
725
     */
726
    public function genre($genre)
727
    {
728
        return $this->setProperty('genre', $genre);
729
    }
730
731
    /**
732
     * Indicates an item or CreativeWork that is part of this item, or
733
     * CreativeWork (in some sense).
734
     *
735
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
736
     *
737
     * @return static
738
     *
739
     * @see http://schema.org/hasPart
740
     */
741
    public function hasPart($hasPart)
742
    {
743
        return $this->setProperty('hasPart', $hasPart);
744
    }
745
746
    /**
747
     * Headline of the article.
748
     *
749
     * @param string|string[] $headline
750
     *
751
     * @return static
752
     *
753
     * @see http://schema.org/headline
754
     */
755
    public function headline($headline)
756
    {
757
        return $this->setProperty('headline', $headline);
758
    }
759
760
    /**
761
     * The identifier property represents any kind of identifier for any kind of
762
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
763
     * dedicated properties for representing many of these, either as textual
764
     * strings or as URL (URI) links. See [background
765
     * notes](/docs/datamodel.html#identifierBg) for more details.
766
     *
767
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
768
     *
769
     * @return static
770
     *
771
     * @see http://schema.org/identifier
772
     */
773
    public function identifier($identifier)
774
    {
775
        return $this->setProperty('identifier', $identifier);
776
    }
777
778
    /**
779
     * An image of the item. This can be a [[URL]] or a fully described
780
     * [[ImageObject]].
781
     *
782
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
783
     *
784
     * @return static
785
     *
786
     * @see http://schema.org/image
787
     */
788
    public function image($image)
789
    {
790
        return $this->setProperty('image', $image);
791
    }
792
793
    /**
794
     * The language of the content or performance or used in an action. Please
795
     * use one of the language codes from the [IETF BCP 47
796
     * standard](http://tools.ietf.org/html/bcp47). See also
797
     * [[availableLanguage]].
798
     *
799
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
800
     *
801
     * @return static
802
     *
803
     * @see http://schema.org/inLanguage
804
     */
805
    public function inLanguage($inLanguage)
806
    {
807
        return $this->setProperty('inLanguage', $inLanguage);
808
    }
809
810
    /**
811
     * The number of interactions for the CreativeWork using the WebSite or
812
     * SoftwareApplication. The most specific child type of InteractionCounter
813
     * should be used.
814
     *
815
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
816
     *
817
     * @return static
818
     *
819
     * @see http://schema.org/interactionStatistic
820
     */
821
    public function interactionStatistic($interactionStatistic)
822
    {
823
        return $this->setProperty('interactionStatistic', $interactionStatistic);
824
    }
825
826
    /**
827
     * The predominant mode of learning supported by the learning resource.
828
     * Acceptable values are 'active', 'expositive', or 'mixed'.
829
     *
830
     * @param string|string[] $interactivityType
831
     *
832
     * @return static
833
     *
834
     * @see http://schema.org/interactivityType
835
     */
836
    public function interactivityType($interactivityType)
837
    {
838
        return $this->setProperty('interactivityType', $interactivityType);
839
    }
840
841
    /**
842
     * A flag to signal that the item, event, or place is accessible for free.
843
     *
844
     * @param bool|bool[] $isAccessibleForFree
845
     *
846
     * @return static
847
     *
848
     * @see http://schema.org/isAccessibleForFree
849
     */
850
    public function isAccessibleForFree($isAccessibleForFree)
851
    {
852
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
853
    }
854
855
    /**
856
     * A resource from which this work is derived or from which it is a
857
     * modification or adaption.
858
     *
859
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
860
     *
861
     * @return static
862
     *
863
     * @see http://schema.org/isBasedOn
864
     */
865
    public function isBasedOn($isBasedOn)
866
    {
867
        return $this->setProperty('isBasedOn', $isBasedOn);
868
    }
869
870
    /**
871
     * A resource that was used in the creation of this resource. This term can
872
     * be repeated for multiple sources. For example,
873
     * http://example.com/great-multiplication-intro.html.
874
     *
875
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
876
     *
877
     * @return static
878
     *
879
     * @see http://schema.org/isBasedOnUrl
880
     */
881
    public function isBasedOnUrl($isBasedOnUrl)
882
    {
883
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
884
    }
885
886
    /**
887
     * Indicates whether this content is family friendly.
888
     *
889
     * @param bool|bool[] $isFamilyFriendly
890
     *
891
     * @return static
892
     *
893
     * @see http://schema.org/isFamilyFriendly
894
     */
895
    public function isFamilyFriendly($isFamilyFriendly)
896
    {
897
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
898
    }
899
900
    /**
901
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
902
     * some sense), is part of.
903
     *
904
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
905
     *
906
     * @return static
907
     *
908
     * @see http://schema.org/isPartOf
909
     */
910
    public function isPartOf($isPartOf)
911
    {
912
        return $this->setProperty('isPartOf', $isPartOf);
913
    }
914
915
    /**
916
     * An entity represented by an entry in a list or data feed (e.g. an
917
     * 'artist' in a list of 'artists')’.
918
     *
919
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $item
920
     *
921
     * @return static
922
     *
923
     * @see http://schema.org/item
924
     */
925
    public function item($item)
926
    {
927
        return $this->setProperty('item', $item);
928
    }
929
930
    /**
931
     * For itemListElement values, you can use simple strings (e.g. "Peter",
932
     * "Paul", "Mary"), existing entities, or use ListItem.
933
     * 
934
     * Text values are best if the elements in the list are plain strings.
935
     * Existing entities are best for a simple, unordered list of existing
936
     * things in your data. ListItem is used with ordered lists when you want to
937
     * provide additional context about the element in that list or when the
938
     * same item might be in different places in different lists.
939
     * 
940
     * Note: The order of elements in your mark-up is not sufficient for
941
     * indicating the order or elements.  Use ListItem with a 'position'
942
     * property in such cases.
943
     *
944
     * @param \Spatie\SchemaOrg\Contracts\ListItemContract|\Spatie\SchemaOrg\Contracts\ListItemContract[]|\Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[]|string|string[] $itemListElement
945
     *
946
     * @return static
947
     *
948
     * @see http://schema.org/itemListElement
949
     */
950
    public function itemListElement($itemListElement)
951
    {
952
        return $this->setProperty('itemListElement', $itemListElement);
953
    }
954
955
    /**
956
     * Type of ordering (e.g. Ascending, Descending, Unordered).
957
     *
958
     * @param \Spatie\SchemaOrg\Contracts\ItemListOrderTypeContract|\Spatie\SchemaOrg\Contracts\ItemListOrderTypeContract[]|string|string[] $itemListOrder
959
     *
960
     * @return static
961
     *
962
     * @see http://schema.org/itemListOrder
963
     */
964
    public function itemListOrder($itemListOrder)
965
    {
966
        return $this->setProperty('itemListOrder', $itemListOrder);
967
    }
968
969
    /**
970
     * Keywords or tags used to describe this content. Multiple entries in a
971
     * keywords list are typically delimited by commas.
972
     *
973
     * @param string|string[] $keywords
974
     *
975
     * @return static
976
     *
977
     * @see http://schema.org/keywords
978
     */
979
    public function keywords($keywords)
980
    {
981
        return $this->setProperty('keywords', $keywords);
982
    }
983
984
    /**
985
     * The predominant type or kind characterizing the learning resource. For
986
     * example, 'presentation', 'handout'.
987
     *
988
     * @param string|string[] $learningResourceType
989
     *
990
     * @return static
991
     *
992
     * @see http://schema.org/learningResourceType
993
     */
994
    public function learningResourceType($learningResourceType)
995
    {
996
        return $this->setProperty('learningResourceType', $learningResourceType);
997
    }
998
999
    /**
1000
     * A license document that applies to this content, typically indicated by
1001
     * URL.
1002
     *
1003
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1004
     *
1005
     * @return static
1006
     *
1007
     * @see http://schema.org/license
1008
     */
1009
    public function license($license)
1010
    {
1011
        return $this->setProperty('license', $license);
1012
    }
1013
1014
    /**
1015
     * The location where the CreativeWork was created, which may not be the
1016
     * same as the location depicted in the CreativeWork.
1017
     *
1018
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1019
     *
1020
     * @return static
1021
     *
1022
     * @see http://schema.org/locationCreated
1023
     */
1024
    public function locationCreated($locationCreated)
1025
    {
1026
        return $this->setProperty('locationCreated', $locationCreated);
1027
    }
1028
1029
    /**
1030
     * Indicates the primary entity described in some page or other
1031
     * CreativeWork.
1032
     *
1033
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1034
     *
1035
     * @return static
1036
     *
1037
     * @see http://schema.org/mainEntity
1038
     */
1039
    public function mainEntity($mainEntity)
1040
    {
1041
        return $this->setProperty('mainEntity', $mainEntity);
1042
    }
1043
1044
    /**
1045
     * Indicates a page (or other CreativeWork) for which this thing is the main
1046
     * entity being described. See [background
1047
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1048
     *
1049
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1050
     *
1051
     * @return static
1052
     *
1053
     * @see http://schema.org/mainEntityOfPage
1054
     */
1055
    public function mainEntityOfPage($mainEntityOfPage)
1056
    {
1057
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1058
    }
1059
1060
    /**
1061
     * A material that something is made from, e.g. leather, wool, cotton,
1062
     * paper.
1063
     *
1064
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1065
     *
1066
     * @return static
1067
     *
1068
     * @see http://schema.org/material
1069
     */
1070
    public function material($material)
1071
    {
1072
        return $this->setProperty('material', $material);
1073
    }
1074
1075
    /**
1076
     * Indicates that the CreativeWork contains a reference to, but is not
1077
     * necessarily about a concept.
1078
     *
1079
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1080
     *
1081
     * @return static
1082
     *
1083
     * @see http://schema.org/mentions
1084
     */
1085
    public function mentions($mentions)
1086
    {
1087
        return $this->setProperty('mentions', $mentions);
1088
    }
1089
1090
    /**
1091
     * The name of the item.
1092
     *
1093
     * @param string|string[] $name
1094
     *
1095
     * @return static
1096
     *
1097
     * @see http://schema.org/name
1098
     */
1099
    public function name($name)
1100
    {
1101
        return $this->setProperty('name', $name);
1102
    }
1103
1104
    /**
1105
     * A link to the ListItem that follows the current one.
1106
     *
1107
     * @param \Spatie\SchemaOrg\Contracts\ListItemContract|\Spatie\SchemaOrg\Contracts\ListItemContract[] $nextItem
1108
     *
1109
     * @return static
1110
     *
1111
     * @see http://schema.org/nextItem
1112
     */
1113
    public function nextItem($nextItem)
1114
    {
1115
        return $this->setProperty('nextItem', $nextItem);
1116
    }
1117
1118
    /**
1119
     * The number of items in an ItemList. Note that some descriptions might not
1120
     * fully describe all items in a list (e.g., multi-page pagination); in such
1121
     * cases, the numberOfItems would be for the entire list.
1122
     *
1123
     * @param int|int[] $numberOfItems
1124
     *
1125
     * @return static
1126
     *
1127
     * @see http://schema.org/numberOfItems
1128
     */
1129
    public function numberOfItems($numberOfItems)
1130
    {
1131
        return $this->setProperty('numberOfItems', $numberOfItems);
1132
    }
1133
1134
    /**
1135
     * An offer to provide this item—for example, an offer to sell a
1136
     * product, rent the DVD of a movie, perform a service, or give away tickets
1137
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1138
     * offered, i.e. sell, lease, etc. This property can also be used to
1139
     * describe a [[Demand]]. While this property is listed as expected on a
1140
     * number of common types, it can be used in others. In that case, using a
1141
     * second type, such as Product or a subtype of Product, can clarify the
1142
     * nature of the offer.
1143
     *
1144
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1145
     *
1146
     * @return static
1147
     *
1148
     * @see http://schema.org/offers
1149
     */
1150
    public function offers($offers)
1151
    {
1152
        return $this->setProperty('offers', $offers);
1153
    }
1154
1155
    /**
1156
     * The position of an item in a series or sequence of items.
1157
     *
1158
     * @param int|int[]|string|string[] $position
1159
     *
1160
     * @return static
1161
     *
1162
     * @see http://schema.org/position
1163
     */
1164
    public function position($position)
1165
    {
1166
        return $this->setProperty('position', $position);
1167
    }
1168
1169
    /**
1170
     * Indicates a potential Action, which describes an idealized action in
1171
     * which this thing would play an 'object' role.
1172
     *
1173
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1174
     *
1175
     * @return static
1176
     *
1177
     * @see http://schema.org/potentialAction
1178
     */
1179
    public function potentialAction($potentialAction)
1180
    {
1181
        return $this->setProperty('potentialAction', $potentialAction);
1182
    }
1183
1184
    /**
1185
     * A link to the ListItem that preceeds the current one.
1186
     *
1187
     * @param \Spatie\SchemaOrg\Contracts\ListItemContract|\Spatie\SchemaOrg\Contracts\ListItemContract[] $previousItem
1188
     *
1189
     * @return static
1190
     *
1191
     * @see http://schema.org/previousItem
1192
     */
1193
    public function previousItem($previousItem)
1194
    {
1195
        return $this->setProperty('previousItem', $previousItem);
1196
    }
1197
1198
    /**
1199
     * The person or organization who produced the work (e.g. music album,
1200
     * movie, tv/radio series etc.).
1201
     *
1202
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1203
     *
1204
     * @return static
1205
     *
1206
     * @see http://schema.org/producer
1207
     */
1208
    public function producer($producer)
1209
    {
1210
        return $this->setProperty('producer', $producer);
1211
    }
1212
1213
    /**
1214
     * The service provider, service operator, or service performer; the goods
1215
     * producer. Another party (a seller) may offer those services or goods on
1216
     * behalf of the provider. A provider may also serve as the seller.
1217
     *
1218
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1219
     *
1220
     * @return static
1221
     *
1222
     * @see http://schema.org/provider
1223
     */
1224
    public function provider($provider)
1225
    {
1226
        return $this->setProperty('provider', $provider);
1227
    }
1228
1229
    /**
1230
     * A publication event associated with the item.
1231
     *
1232
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1233
     *
1234
     * @return static
1235
     *
1236
     * @see http://schema.org/publication
1237
     */
1238
    public function publication($publication)
1239
    {
1240
        return $this->setProperty('publication', $publication);
1241
    }
1242
1243
    /**
1244
     * The publisher of the creative work.
1245
     *
1246
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1247
     *
1248
     * @return static
1249
     *
1250
     * @see http://schema.org/publisher
1251
     */
1252
    public function publisher($publisher)
1253
    {
1254
        return $this->setProperty('publisher', $publisher);
1255
    }
1256
1257
    /**
1258
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1259
     * document describing the editorial principles of an [[Organization]] (or
1260
     * individual e.g. a [[Person]] writing a blog) that relate to their
1261
     * activities as a publisher, e.g. ethics or diversity policies. When
1262
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1263
     * those of the party primarily responsible for the creation of the
1264
     * [[CreativeWork]].
1265
     * 
1266
     * While such policies are most typically expressed in natural language,
1267
     * sometimes related information (e.g. indicating a [[funder]]) can be
1268
     * expressed using schema.org terminology.
1269
     *
1270
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1271
     *
1272
     * @return static
1273
     *
1274
     * @see http://schema.org/publishingPrinciples
1275
     */
1276
    public function publishingPrinciples($publishingPrinciples)
1277
    {
1278
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1279
    }
1280
1281
    /**
1282
     * The Event where the CreativeWork was recorded. The CreativeWork may
1283
     * capture all or part of the event.
1284
     *
1285
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1286
     *
1287
     * @return static
1288
     *
1289
     * @see http://schema.org/recordedAt
1290
     */
1291
    public function recordedAt($recordedAt)
1292
    {
1293
        return $this->setProperty('recordedAt', $recordedAt);
1294
    }
1295
1296
    /**
1297
     * The place and time the release was issued, expressed as a
1298
     * PublicationEvent.
1299
     *
1300
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1301
     *
1302
     * @return static
1303
     *
1304
     * @see http://schema.org/releasedEvent
1305
     */
1306
    public function releasedEvent($releasedEvent)
1307
    {
1308
        return $this->setProperty('releasedEvent', $releasedEvent);
1309
    }
1310
1311
    /**
1312
     * A review of the item.
1313
     *
1314
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1315
     *
1316
     * @return static
1317
     *
1318
     * @see http://schema.org/review
1319
     */
1320
    public function review($review)
1321
    {
1322
        return $this->setProperty('review', $review);
1323
    }
1324
1325
    /**
1326
     * Review of the item.
1327
     *
1328
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1329
     *
1330
     * @return static
1331
     *
1332
     * @see http://schema.org/reviews
1333
     */
1334
    public function reviews($reviews)
1335
    {
1336
        return $this->setProperty('reviews', $reviews);
1337
    }
1338
1339
    /**
1340
     * URL of a reference Web page that unambiguously indicates the item's
1341
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1342
     * official website.
1343
     *
1344
     * @param string|string[] $sameAs
1345
     *
1346
     * @return static
1347
     *
1348
     * @see http://schema.org/sameAs
1349
     */
1350
    public function sameAs($sameAs)
1351
    {
1352
        return $this->setProperty('sameAs', $sameAs);
1353
    }
1354
1355
    /**
1356
     * Indicates (by URL or string) a particular version of a schema used in
1357
     * some CreativeWork. For example, a document could declare a schemaVersion
1358
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1359
     * of schema version was required by some application.
1360
     *
1361
     * @param string|string[] $schemaVersion
1362
     *
1363
     * @return static
1364
     *
1365
     * @see http://schema.org/schemaVersion
1366
     */
1367
    public function schemaVersion($schemaVersion)
1368
    {
1369
        return $this->setProperty('schemaVersion', $schemaVersion);
1370
    }
1371
1372
    /**
1373
     * The Organization on whose behalf the creator was working.
1374
     *
1375
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1376
     *
1377
     * @return static
1378
     *
1379
     * @see http://schema.org/sourceOrganization
1380
     */
1381
    public function sourceOrganization($sourceOrganization)
1382
    {
1383
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1384
    }
1385
1386
    /**
1387
     * The "spatial" property can be used in cases when more specific properties
1388
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1389
     * not known to be appropriate.
1390
     *
1391
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1392
     *
1393
     * @return static
1394
     *
1395
     * @see http://schema.org/spatial
1396
     */
1397
    public function spatial($spatial)
1398
    {
1399
        return $this->setProperty('spatial', $spatial);
1400
    }
1401
1402
    /**
1403
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1404
     * the focus of the content. It is a subproperty of
1405
     *       contentLocation intended primarily for more technical and detailed
1406
     * materials. For example with a Dataset, it indicates
1407
     *       areas that the dataset describes: a dataset of New York weather
1408
     * would have spatialCoverage which was the place: the state of New York.
1409
     *
1410
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1411
     *
1412
     * @return static
1413
     *
1414
     * @see http://schema.org/spatialCoverage
1415
     */
1416
    public function spatialCoverage($spatialCoverage)
1417
    {
1418
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1419
    }
1420
1421
    /**
1422
     * A person or organization that supports a thing through a pledge, promise,
1423
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1424
     * corporate sponsor of an event.
1425
     *
1426
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1427
     *
1428
     * @return static
1429
     *
1430
     * @see http://schema.org/sponsor
1431
     */
1432
    public function sponsor($sponsor)
1433
    {
1434
        return $this->setProperty('sponsor', $sponsor);
1435
    }
1436
1437
    /**
1438
     * A CreativeWork or Event about this Thing.
1439
     *
1440
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1441
     *
1442
     * @return static
1443
     *
1444
     * @see http://schema.org/subjectOf
1445
     */
1446
    public function subjectOf($subjectOf)
1447
    {
1448
        return $this->setProperty('subjectOf', $subjectOf);
1449
    }
1450
1451
    /**
1452
     * The "temporal" property can be used in cases where more specific
1453
     * properties
1454
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1455
     * [[datePublished]]) are not known to be appropriate.
1456
     *
1457
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1458
     *
1459
     * @return static
1460
     *
1461
     * @see http://schema.org/temporal
1462
     */
1463
    public function temporal($temporal)
1464
    {
1465
        return $this->setProperty('temporal', $temporal);
1466
    }
1467
1468
    /**
1469
     * The temporalCoverage of a CreativeWork indicates the period that the
1470
     * content applies to, i.e. that it describes, either as a DateTime or as a
1471
     * textual string indicating a time period in [ISO 8601 time interval
1472
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1473
     *       the case of a Dataset it will typically indicate the relevant time
1474
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1475
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1476
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1477
     * temporalCoverage in broader terms - textually or via well-known URL.
1478
     *       Written works such as books may sometimes have precise temporal
1479
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1480
     * interval format format via "1939/1945".
1481
     * 
1482
     * Open-ended date ranges can be written with ".." in place of the end date.
1483
     * For example, "2015-11/.." indicates a range beginning in November 2015
1484
     * and with no specified final date. This is tentative and might be updated
1485
     * in future when ISO 8601 is officially updated.
1486
     *
1487
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1488
     *
1489
     * @return static
1490
     *
1491
     * @see http://schema.org/temporalCoverage
1492
     */
1493
    public function temporalCoverage($temporalCoverage)
1494
    {
1495
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1496
    }
1497
1498
    /**
1499
     * The textual content of this CreativeWork.
1500
     *
1501
     * @param string|string[] $text
1502
     *
1503
     * @return static
1504
     *
1505
     * @see http://schema.org/text
1506
     */
1507
    public function text($text)
1508
    {
1509
        return $this->setProperty('text', $text);
1510
    }
1511
1512
    /**
1513
     * A thumbnail image relevant to the Thing.
1514
     *
1515
     * @param string|string[] $thumbnailUrl
1516
     *
1517
     * @return static
1518
     *
1519
     * @see http://schema.org/thumbnailUrl
1520
     */
1521
    public function thumbnailUrl($thumbnailUrl)
1522
    {
1523
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1524
    }
1525
1526
    /**
1527
     * Approximate or typical time it takes to work with or through this
1528
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1529
     * 'PT1H25M'.
1530
     *
1531
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1532
     *
1533
     * @return static
1534
     *
1535
     * @see http://schema.org/timeRequired
1536
     */
1537
    public function timeRequired($timeRequired)
1538
    {
1539
        return $this->setProperty('timeRequired', $timeRequired);
1540
    }
1541
1542
    /**
1543
     * Organization or person who adapts a creative work to different languages,
1544
     * regional differences and technical requirements of a target market, or
1545
     * that translates during some event.
1546
     *
1547
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1548
     *
1549
     * @return static
1550
     *
1551
     * @see http://schema.org/translator
1552
     */
1553
    public function translator($translator)
1554
    {
1555
        return $this->setProperty('translator', $translator);
1556
    }
1557
1558
    /**
1559
     * The typical expected age range, e.g. '7-9', '11-'.
1560
     *
1561
     * @param string|string[] $typicalAgeRange
1562
     *
1563
     * @return static
1564
     *
1565
     * @see http://schema.org/typicalAgeRange
1566
     */
1567
    public function typicalAgeRange($typicalAgeRange)
1568
    {
1569
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1570
    }
1571
1572
    /**
1573
     * URL of the item.
1574
     *
1575
     * @param string|string[] $url
1576
     *
1577
     * @return static
1578
     *
1579
     * @see http://schema.org/url
1580
     */
1581
    public function url($url)
1582
    {
1583
        return $this->setProperty('url', $url);
1584
    }
1585
1586
    /**
1587
     * The version of the CreativeWork embodied by a specified resource.
1588
     *
1589
     * @param float|float[]|int|int[]|string|string[] $version
1590
     *
1591
     * @return static
1592
     *
1593
     * @see http://schema.org/version
1594
     */
1595
    public function version($version)
1596
    {
1597
        return $this->setProperty('version', $version);
1598
    }
1599
1600
    /**
1601
     * An embedded video object.
1602
     *
1603
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1604
     *
1605
     * @return static
1606
     *
1607
     * @see http://schema.org/video
1608
     */
1609
    public function video($video)
1610
    {
1611
        return $this->setProperty('video', $video);
1612
    }
1613
1614
    /**
1615
     * Example/instance/realization/derivation of the concept of this creative
1616
     * work. eg. The paperback edition, first edition, or eBook.
1617
     *
1618
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1619
     *
1620
     * @return static
1621
     *
1622
     * @see http://schema.org/workExample
1623
     */
1624
    public function workExample($workExample)
1625
    {
1626
        return $this->setProperty('workExample', $workExample);
1627
    }
1628
1629
}
1630

src/MusicAlbum.php 1 location

@@ 16-1628 (lines=1613) @@
13
 * @see http://schema.org/MusicAlbum
14
 *
15
 */
16
class MusicAlbum extends BaseType implements MusicAlbumContract, CreativeWorkContract, MusicPlaylistContract, ThingContract
17
{
18
    /**
19
     * The subject matter of the content.
20
     *
21
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
22
     *
23
     * @return static
24
     *
25
     * @see http://schema.org/about
26
     */
27
    public function about($about)
28
    {
29
        return $this->setProperty('about', $about);
30
    }
31
32
    /**
33
     * The human sensory perceptual system or cognitive faculty through which a
34
     * person may process or perceive information. Expected values include:
35
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
36
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
37
     *
38
     * @param string|string[] $accessMode
39
     *
40
     * @return static
41
     *
42
     * @see http://schema.org/accessMode
43
     */
44
    public function accessMode($accessMode)
45
    {
46
        return $this->setProperty('accessMode', $accessMode);
47
    }
48
49
    /**
50
     * A list of single or combined accessModes that are sufficient to
51
     * understand all the intellectual content of a resource. Expected values
52
     * include:  auditory, tactile, textual, visual.
53
     *
54
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
55
     *
56
     * @return static
57
     *
58
     * @see http://schema.org/accessModeSufficient
59
     */
60
    public function accessModeSufficient($accessModeSufficient)
61
    {
62
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
63
    }
64
65
    /**
66
     * Indicates that the resource is compatible with the referenced
67
     * accessibility API ([WebSchemas wiki lists possible
68
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
69
     *
70
     * @param string|string[] $accessibilityAPI
71
     *
72
     * @return static
73
     *
74
     * @see http://schema.org/accessibilityAPI
75
     */
76
    public function accessibilityAPI($accessibilityAPI)
77
    {
78
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
79
    }
80
81
    /**
82
     * Identifies input methods that are sufficient to fully control the
83
     * described resource ([WebSchemas wiki lists possible
84
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
85
     *
86
     * @param string|string[] $accessibilityControl
87
     *
88
     * @return static
89
     *
90
     * @see http://schema.org/accessibilityControl
91
     */
92
    public function accessibilityControl($accessibilityControl)
93
    {
94
        return $this->setProperty('accessibilityControl', $accessibilityControl);
95
    }
96
97
    /**
98
     * Content features of the resource, such as accessible media, alternatives
99
     * and supported enhancements for accessibility ([WebSchemas wiki lists
100
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
101
     *
102
     * @param string|string[] $accessibilityFeature
103
     *
104
     * @return static
105
     *
106
     * @see http://schema.org/accessibilityFeature
107
     */
108
    public function accessibilityFeature($accessibilityFeature)
109
    {
110
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
111
    }
112
113
    /**
114
     * A characteristic of the described resource that is physiologically
115
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
116
     * wiki lists possible
117
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
118
     *
119
     * @param string|string[] $accessibilityHazard
120
     *
121
     * @return static
122
     *
123
     * @see http://schema.org/accessibilityHazard
124
     */
125
    public function accessibilityHazard($accessibilityHazard)
126
    {
127
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
128
    }
129
130
    /**
131
     * A human-readable summary of specific accessibility features or
132
     * deficiencies, consistent with the other accessibility metadata but
133
     * expressing subtleties such as "short descriptions are present but long
134
     * descriptions will be needed for non-visual users" or "short descriptions
135
     * are present and no long descriptions are needed."
136
     *
137
     * @param string|string[] $accessibilitySummary
138
     *
139
     * @return static
140
     *
141
     * @see http://schema.org/accessibilitySummary
142
     */
143
    public function accessibilitySummary($accessibilitySummary)
144
    {
145
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
146
    }
147
148
    /**
149
     * Specifies the Person that is legally accountable for the CreativeWork.
150
     *
151
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
152
     *
153
     * @return static
154
     *
155
     * @see http://schema.org/accountablePerson
156
     */
157
    public function accountablePerson($accountablePerson)
158
    {
159
        return $this->setProperty('accountablePerson', $accountablePerson);
160
    }
161
162
    /**
163
     * An additional type for the item, typically used for adding more specific
164
     * types from external vocabularies in microdata syntax. This is a
165
     * relationship between something and a class that the thing is in. In RDFa
166
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
167
     * attribute - for multiple types. Schema.org tools may have only weaker
168
     * understanding of extra types, in particular those defined externally.
169
     *
170
     * @param string|string[] $additionalType
171
     *
172
     * @return static
173
     *
174
     * @see http://schema.org/additionalType
175
     */
176
    public function additionalType($additionalType)
177
    {
178
        return $this->setProperty('additionalType', $additionalType);
179
    }
180
181
    /**
182
     * The overall rating, based on a collection of reviews or ratings, of the
183
     * item.
184
     *
185
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
186
     *
187
     * @return static
188
     *
189
     * @see http://schema.org/aggregateRating
190
     */
191
    public function aggregateRating($aggregateRating)
192
    {
193
        return $this->setProperty('aggregateRating', $aggregateRating);
194
    }
195
196
    /**
197
     * Classification of the album by it's type of content: soundtrack, live
198
     * album, studio album, etc.
199
     *
200
     * @param \Spatie\SchemaOrg\Contracts\MusicAlbumProductionTypeContract|\Spatie\SchemaOrg\Contracts\MusicAlbumProductionTypeContract[] $albumProductionType
201
     *
202
     * @return static
203
     *
204
     * @see http://schema.org/albumProductionType
205
     */
206
    public function albumProductionType($albumProductionType)
207
    {
208
        return $this->setProperty('albumProductionType', $albumProductionType);
209
    }
210
211
    /**
212
     * A release of this album.
213
     *
214
     * @param \Spatie\SchemaOrg\Contracts\MusicReleaseContract|\Spatie\SchemaOrg\Contracts\MusicReleaseContract[] $albumRelease
215
     *
216
     * @return static
217
     *
218
     * @see http://schema.org/albumRelease
219
     */
220
    public function albumRelease($albumRelease)
221
    {
222
        return $this->setProperty('albumRelease', $albumRelease);
223
    }
224
225
    /**
226
     * The kind of release which this album is: single, EP or album.
227
     *
228
     * @param \Spatie\SchemaOrg\Contracts\MusicAlbumReleaseTypeContract|\Spatie\SchemaOrg\Contracts\MusicAlbumReleaseTypeContract[] $albumReleaseType
229
     *
230
     * @return static
231
     *
232
     * @see http://schema.org/albumReleaseType
233
     */
234
    public function albumReleaseType($albumReleaseType)
235
    {
236
        return $this->setProperty('albumReleaseType', $albumReleaseType);
237
    }
238
239
    /**
240
     * An alias for the item.
241
     *
242
     * @param string|string[] $alternateName
243
     *
244
     * @return static
245
     *
246
     * @see http://schema.org/alternateName
247
     */
248
    public function alternateName($alternateName)
249
    {
250
        return $this->setProperty('alternateName', $alternateName);
251
    }
252
253
    /**
254
     * A secondary title of the CreativeWork.
255
     *
256
     * @param string|string[] $alternativeHeadline
257
     *
258
     * @return static
259
     *
260
     * @see http://schema.org/alternativeHeadline
261
     */
262
    public function alternativeHeadline($alternativeHeadline)
263
    {
264
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
265
    }
266
267
    /**
268
     * A media object that encodes this CreativeWork. This property is a synonym
269
     * for encoding.
270
     *
271
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
272
     *
273
     * @return static
274
     *
275
     * @see http://schema.org/associatedMedia
276
     */
277
    public function associatedMedia($associatedMedia)
278
    {
279
        return $this->setProperty('associatedMedia', $associatedMedia);
280
    }
281
282
    /**
283
     * An intended audience, i.e. a group for whom something was created.
284
     *
285
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
286
     *
287
     * @return static
288
     *
289
     * @see http://schema.org/audience
290
     */
291
    public function audience($audience)
292
    {
293
        return $this->setProperty('audience', $audience);
294
    }
295
296
    /**
297
     * An embedded audio object.
298
     *
299
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
300
     *
301
     * @return static
302
     *
303
     * @see http://schema.org/audio
304
     */
305
    public function audio($audio)
306
    {
307
        return $this->setProperty('audio', $audio);
308
    }
309
310
    /**
311
     * The author of this content or rating. Please note that author is special
312
     * in that HTML 5 provides a special mechanism for indicating authorship via
313
     * the rel tag. That is equivalent to this and may be used interchangeably.
314
     *
315
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
316
     *
317
     * @return static
318
     *
319
     * @see http://schema.org/author
320
     */
321
    public function author($author)
322
    {
323
        return $this->setProperty('author', $author);
324
    }
325
326
    /**
327
     * An award won by or for this item.
328
     *
329
     * @param string|string[] $award
330
     *
331
     * @return static
332
     *
333
     * @see http://schema.org/award
334
     */
335
    public function award($award)
336
    {
337
        return $this->setProperty('award', $award);
338
    }
339
340
    /**
341
     * Awards won by or for this item.
342
     *
343
     * @param string|string[] $awards
344
     *
345
     * @return static
346
     *
347
     * @see http://schema.org/awards
348
     */
349
    public function awards($awards)
350
    {
351
        return $this->setProperty('awards', $awards);
352
    }
353
354
    /**
355
     * The artist that performed this album or recording.
356
     *
357
     * @param \Spatie\SchemaOrg\Contracts\MusicGroupContract|\Spatie\SchemaOrg\Contracts\MusicGroupContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $byArtist
358
     *
359
     * @return static
360
     *
361
     * @see http://schema.org/byArtist
362
     */
363
    public function byArtist($byArtist)
364
    {
365
        return $this->setProperty('byArtist', $byArtist);
366
    }
367
368
    /**
369
     * Fictional person connected with a creative work.
370
     *
371
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
372
     *
373
     * @return static
374
     *
375
     * @see http://schema.org/character
376
     */
377
    public function character($character)
378
    {
379
        return $this->setProperty('character', $character);
380
    }
381
382
    /**
383
     * A citation or reference to another creative work, such as another
384
     * publication, web page, scholarly article, etc.
385
     *
386
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
387
     *
388
     * @return static
389
     *
390
     * @see http://schema.org/citation
391
     */
392
    public function citation($citation)
393
    {
394
        return $this->setProperty('citation', $citation);
395
    }
396
397
    /**
398
     * Comments, typically from users.
399
     *
400
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
401
     *
402
     * @return static
403
     *
404
     * @see http://schema.org/comment
405
     */
406
    public function comment($comment)
407
    {
408
        return $this->setProperty('comment', $comment);
409
    }
410
411
    /**
412
     * The number of comments this CreativeWork (e.g. Article, Question or
413
     * Answer) has received. This is most applicable to works published in Web
414
     * sites with commenting system; additional comments may exist elsewhere.
415
     *
416
     * @param int|int[] $commentCount
417
     *
418
     * @return static
419
     *
420
     * @see http://schema.org/commentCount
421
     */
422
    public function commentCount($commentCount)
423
    {
424
        return $this->setProperty('commentCount', $commentCount);
425
    }
426
427
    /**
428
     * The location depicted or described in the content. For example, the
429
     * location in a photograph or painting.
430
     *
431
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
432
     *
433
     * @return static
434
     *
435
     * @see http://schema.org/contentLocation
436
     */
437
    public function contentLocation($contentLocation)
438
    {
439
        return $this->setProperty('contentLocation', $contentLocation);
440
    }
441
442
    /**
443
     * Official rating of a piece of content—for example,'MPAA PG-13'.
444
     *
445
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
446
     *
447
     * @return static
448
     *
449
     * @see http://schema.org/contentRating
450
     */
451
    public function contentRating($contentRating)
452
    {
453
        return $this->setProperty('contentRating', $contentRating);
454
    }
455
456
    /**
457
     * A secondary contributor to the CreativeWork or Event.
458
     *
459
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
460
     *
461
     * @return static
462
     *
463
     * @see http://schema.org/contributor
464
     */
465
    public function contributor($contributor)
466
    {
467
        return $this->setProperty('contributor', $contributor);
468
    }
469
470
    /**
471
     * The party holding the legal copyright to the CreativeWork.
472
     *
473
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
474
     *
475
     * @return static
476
     *
477
     * @see http://schema.org/copyrightHolder
478
     */
479
    public function copyrightHolder($copyrightHolder)
480
    {
481
        return $this->setProperty('copyrightHolder', $copyrightHolder);
482
    }
483
484
    /**
485
     * The year during which the claimed copyright for the CreativeWork was
486
     * first asserted.
487
     *
488
     * @param float|float[]|int|int[] $copyrightYear
489
     *
490
     * @return static
491
     *
492
     * @see http://schema.org/copyrightYear
493
     */
494
    public function copyrightYear($copyrightYear)
495
    {
496
        return $this->setProperty('copyrightYear', $copyrightYear);
497
    }
498
499
    /**
500
     * The creator/author of this CreativeWork. This is the same as the Author
501
     * property for CreativeWork.
502
     *
503
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
504
     *
505
     * @return static
506
     *
507
     * @see http://schema.org/creator
508
     */
509
    public function creator($creator)
510
    {
511
        return $this->setProperty('creator', $creator);
512
    }
513
514
    /**
515
     * The date on which the CreativeWork was created or the item was added to a
516
     * DataFeed.
517
     *
518
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
519
     *
520
     * @return static
521
     *
522
     * @see http://schema.org/dateCreated
523
     */
524
    public function dateCreated($dateCreated)
525
    {
526
        return $this->setProperty('dateCreated', $dateCreated);
527
    }
528
529
    /**
530
     * The date on which the CreativeWork was most recently modified or when the
531
     * item's entry was modified within a DataFeed.
532
     *
533
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
534
     *
535
     * @return static
536
     *
537
     * @see http://schema.org/dateModified
538
     */
539
    public function dateModified($dateModified)
540
    {
541
        return $this->setProperty('dateModified', $dateModified);
542
    }
543
544
    /**
545
     * Date of first broadcast/publication.
546
     *
547
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
548
     *
549
     * @return static
550
     *
551
     * @see http://schema.org/datePublished
552
     */
553
    public function datePublished($datePublished)
554
    {
555
        return $this->setProperty('datePublished', $datePublished);
556
    }
557
558
    /**
559
     * A description of the item.
560
     *
561
     * @param string|string[] $description
562
     *
563
     * @return static
564
     *
565
     * @see http://schema.org/description
566
     */
567
    public function description($description)
568
    {
569
        return $this->setProperty('description', $description);
570
    }
571
572
    /**
573
     * A sub property of description. A short description of the item used to
574
     * disambiguate from other, similar items. Information from other properties
575
     * (in particular, name) may be necessary for the description to be useful
576
     * for disambiguation.
577
     *
578
     * @param string|string[] $disambiguatingDescription
579
     *
580
     * @return static
581
     *
582
     * @see http://schema.org/disambiguatingDescription
583
     */
584
    public function disambiguatingDescription($disambiguatingDescription)
585
    {
586
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
587
    }
588
589
    /**
590
     * A link to the page containing the comments of the CreativeWork.
591
     *
592
     * @param string|string[] $discussionUrl
593
     *
594
     * @return static
595
     *
596
     * @see http://schema.org/discussionUrl
597
     */
598
    public function discussionUrl($discussionUrl)
599
    {
600
        return $this->setProperty('discussionUrl', $discussionUrl);
601
    }
602
603
    /**
604
     * Specifies the Person who edited the CreativeWork.
605
     *
606
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
607
     *
608
     * @return static
609
     *
610
     * @see http://schema.org/editor
611
     */
612
    public function editor($editor)
613
    {
614
        return $this->setProperty('editor', $editor);
615
    }
616
617
    /**
618
     * An alignment to an established educational framework.
619
     *
620
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
621
     *
622
     * @return static
623
     *
624
     * @see http://schema.org/educationalAlignment
625
     */
626
    public function educationalAlignment($educationalAlignment)
627
    {
628
        return $this->setProperty('educationalAlignment', $educationalAlignment);
629
    }
630
631
    /**
632
     * The purpose of a work in the context of education; for example,
633
     * 'assignment', 'group work'.
634
     *
635
     * @param string|string[] $educationalUse
636
     *
637
     * @return static
638
     *
639
     * @see http://schema.org/educationalUse
640
     */
641
    public function educationalUse($educationalUse)
642
    {
643
        return $this->setProperty('educationalUse', $educationalUse);
644
    }
645
646
    /**
647
     * A media object that encodes this CreativeWork. This property is a synonym
648
     * for associatedMedia.
649
     *
650
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
651
     *
652
     * @return static
653
     *
654
     * @see http://schema.org/encoding
655
     */
656
    public function encoding($encoding)
657
    {
658
        return $this->setProperty('encoding', $encoding);
659
    }
660
661
    /**
662
     * Media type typically expressed using a MIME format (see [IANA
663
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
664
     * [MDN
665
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
666
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
667
     * .mp3 etc.).
668
     * 
669
     * In cases where a [[CreativeWork]] has several media type representations,
670
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
671
     * particular [[encodingFormat]] information.
672
     * 
673
     * Unregistered or niche encoding and file formats can be indicated instead
674
     * via the most appropriate URL, e.g. defining Web page or a
675
     * Wikipedia/Wikidata entry.
676
     *
677
     * @param string|string[] $encodingFormat
678
     *
679
     * @return static
680
     *
681
     * @see http://schema.org/encodingFormat
682
     */
683
    public function encodingFormat($encodingFormat)
684
    {
685
        return $this->setProperty('encodingFormat', $encodingFormat);
686
    }
687
688
    /**
689
     * A media object that encodes this CreativeWork.
690
     *
691
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
692
     *
693
     * @return static
694
     *
695
     * @see http://schema.org/encodings
696
     */
697
    public function encodings($encodings)
698
    {
699
        return $this->setProperty('encodings', $encodings);
700
    }
701
702
    /**
703
     * A creative work that this work is an
704
     * example/instance/realization/derivation of.
705
     *
706
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
707
     *
708
     * @return static
709
     *
710
     * @see http://schema.org/exampleOfWork
711
     */
712
    public function exampleOfWork($exampleOfWork)
713
    {
714
        return $this->setProperty('exampleOfWork', $exampleOfWork);
715
    }
716
717
    /**
718
     * Date the content expires and is no longer useful or available. For
719
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
720
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
721
     * publisher wants to indicate that it may no longer be relevant (or helpful
722
     * to highlight) after some date.
723
     *
724
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
725
     *
726
     * @return static
727
     *
728
     * @see http://schema.org/expires
729
     */
730
    public function expires($expires)
731
    {
732
        return $this->setProperty('expires', $expires);
733
    }
734
735
    /**
736
     * Media type, typically MIME format (see [IANA
737
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
738
     * the content e.g. application/zip of a SoftwareApplication binary. In
739
     * cases where a CreativeWork has several media type representations,
740
     * 'encoding' can be used to indicate each MediaObject alongside particular
741
     * fileFormat information. Unregistered or niche file formats can be
742
     * indicated instead via the most appropriate URL, e.g. defining Web page or
743
     * a Wikipedia entry.
744
     *
745
     * @param string|string[] $fileFormat
746
     *
747
     * @return static
748
     *
749
     * @see http://schema.org/fileFormat
750
     */
751
    public function fileFormat($fileFormat)
752
    {
753
        return $this->setProperty('fileFormat', $fileFormat);
754
    }
755
756
    /**
757
     * A person or organization that supports (sponsors) something through some
758
     * kind of financial contribution.
759
     *
760
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
761
     *
762
     * @return static
763
     *
764
     * @see http://schema.org/funder
765
     */
766
    public function funder($funder)
767
    {
768
        return $this->setProperty('funder', $funder);
769
    }
770
771
    /**
772
     * Genre of the creative work, broadcast channel or group.
773
     *
774
     * @param string|string[] $genre
775
     *
776
     * @return static
777
     *
778
     * @see http://schema.org/genre
779
     */
780
    public function genre($genre)
781
    {
782
        return $this->setProperty('genre', $genre);
783
    }
784
785
    /**
786
     * Indicates an item or CreativeWork that is part of this item, or
787
     * CreativeWork (in some sense).
788
     *
789
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
790
     *
791
     * @return static
792
     *
793
     * @see http://schema.org/hasPart
794
     */
795
    public function hasPart($hasPart)
796
    {
797
        return $this->setProperty('hasPart', $hasPart);
798
    }
799
800
    /**
801
     * Headline of the article.
802
     *
803
     * @param string|string[] $headline
804
     *
805
     * @return static
806
     *
807
     * @see http://schema.org/headline
808
     */
809
    public function headline($headline)
810
    {
811
        return $this->setProperty('headline', $headline);
812
    }
813
814
    /**
815
     * The identifier property represents any kind of identifier for any kind of
816
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
817
     * dedicated properties for representing many of these, either as textual
818
     * strings or as URL (URI) links. See [background
819
     * notes](/docs/datamodel.html#identifierBg) for more details.
820
     *
821
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
822
     *
823
     * @return static
824
     *
825
     * @see http://schema.org/identifier
826
     */
827
    public function identifier($identifier)
828
    {
829
        return $this->setProperty('identifier', $identifier);
830
    }
831
832
    /**
833
     * An image of the item. This can be a [[URL]] or a fully described
834
     * [[ImageObject]].
835
     *
836
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
837
     *
838
     * @return static
839
     *
840
     * @see http://schema.org/image
841
     */
842
    public function image($image)
843
    {
844
        return $this->setProperty('image', $image);
845
    }
846
847
    /**
848
     * The language of the content or performance or used in an action. Please
849
     * use one of the language codes from the [IETF BCP 47
850
     * standard](http://tools.ietf.org/html/bcp47). See also
851
     * [[availableLanguage]].
852
     *
853
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
854
     *
855
     * @return static
856
     *
857
     * @see http://schema.org/inLanguage
858
     */
859
    public function inLanguage($inLanguage)
860
    {
861
        return $this->setProperty('inLanguage', $inLanguage);
862
    }
863
864
    /**
865
     * The number of interactions for the CreativeWork using the WebSite or
866
     * SoftwareApplication. The most specific child type of InteractionCounter
867
     * should be used.
868
     *
869
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
870
     *
871
     * @return static
872
     *
873
     * @see http://schema.org/interactionStatistic
874
     */
875
    public function interactionStatistic($interactionStatistic)
876
    {
877
        return $this->setProperty('interactionStatistic', $interactionStatistic);
878
    }
879
880
    /**
881
     * The predominant mode of learning supported by the learning resource.
882
     * Acceptable values are 'active', 'expositive', or 'mixed'.
883
     *
884
     * @param string|string[] $interactivityType
885
     *
886
     * @return static
887
     *
888
     * @see http://schema.org/interactivityType
889
     */
890
    public function interactivityType($interactivityType)
891
    {
892
        return $this->setProperty('interactivityType', $interactivityType);
893
    }
894
895
    /**
896
     * A flag to signal that the item, event, or place is accessible for free.
897
     *
898
     * @param bool|bool[] $isAccessibleForFree
899
     *
900
     * @return static
901
     *
902
     * @see http://schema.org/isAccessibleForFree
903
     */
904
    public function isAccessibleForFree($isAccessibleForFree)
905
    {
906
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
907
    }
908
909
    /**
910
     * A resource from which this work is derived or from which it is a
911
     * modification or adaption.
912
     *
913
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
914
     *
915
     * @return static
916
     *
917
     * @see http://schema.org/isBasedOn
918
     */
919
    public function isBasedOn($isBasedOn)
920
    {
921
        return $this->setProperty('isBasedOn', $isBasedOn);
922
    }
923
924
    /**
925
     * A resource that was used in the creation of this resource. This term can
926
     * be repeated for multiple sources. For example,
927
     * http://example.com/great-multiplication-intro.html.
928
     *
929
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
930
     *
931
     * @return static
932
     *
933
     * @see http://schema.org/isBasedOnUrl
934
     */
935
    public function isBasedOnUrl($isBasedOnUrl)
936
    {
937
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
938
    }
939
940
    /**
941
     * Indicates whether this content is family friendly.
942
     *
943
     * @param bool|bool[] $isFamilyFriendly
944
     *
945
     * @return static
946
     *
947
     * @see http://schema.org/isFamilyFriendly
948
     */
949
    public function isFamilyFriendly($isFamilyFriendly)
950
    {
951
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
952
    }
953
954
    /**
955
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
956
     * some sense), is part of.
957
     *
958
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
959
     *
960
     * @return static
961
     *
962
     * @see http://schema.org/isPartOf
963
     */
964
    public function isPartOf($isPartOf)
965
    {
966
        return $this->setProperty('isPartOf', $isPartOf);
967
    }
968
969
    /**
970
     * Keywords or tags used to describe this content. Multiple entries in a
971
     * keywords list are typically delimited by commas.
972
     *
973
     * @param string|string[] $keywords
974
     *
975
     * @return static
976
     *
977
     * @see http://schema.org/keywords
978
     */
979
    public function keywords($keywords)
980
    {
981
        return $this->setProperty('keywords', $keywords);
982
    }
983
984
    /**
985
     * The predominant type or kind characterizing the learning resource. For
986
     * example, 'presentation', 'handout'.
987
     *
988
     * @param string|string[] $learningResourceType
989
     *
990
     * @return static
991
     *
992
     * @see http://schema.org/learningResourceType
993
     */
994
    public function learningResourceType($learningResourceType)
995
    {
996
        return $this->setProperty('learningResourceType', $learningResourceType);
997
    }
998
999
    /**
1000
     * A license document that applies to this content, typically indicated by
1001
     * URL.
1002
     *
1003
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1004
     *
1005
     * @return static
1006
     *
1007
     * @see http://schema.org/license
1008
     */
1009
    public function license($license)
1010
    {
1011
        return $this->setProperty('license', $license);
1012
    }
1013
1014
    /**
1015
     * The location where the CreativeWork was created, which may not be the
1016
     * same as the location depicted in the CreativeWork.
1017
     *
1018
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1019
     *
1020
     * @return static
1021
     *
1022
     * @see http://schema.org/locationCreated
1023
     */
1024
    public function locationCreated($locationCreated)
1025
    {
1026
        return $this->setProperty('locationCreated', $locationCreated);
1027
    }
1028
1029
    /**
1030
     * Indicates the primary entity described in some page or other
1031
     * CreativeWork.
1032
     *
1033
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1034
     *
1035
     * @return static
1036
     *
1037
     * @see http://schema.org/mainEntity
1038
     */
1039
    public function mainEntity($mainEntity)
1040
    {
1041
        return $this->setProperty('mainEntity', $mainEntity);
1042
    }
1043
1044
    /**
1045
     * Indicates a page (or other CreativeWork) for which this thing is the main
1046
     * entity being described. See [background
1047
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1048
     *
1049
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1050
     *
1051
     * @return static
1052
     *
1053
     * @see http://schema.org/mainEntityOfPage
1054
     */
1055
    public function mainEntityOfPage($mainEntityOfPage)
1056
    {
1057
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1058
    }
1059
1060
    /**
1061
     * A material that something is made from, e.g. leather, wool, cotton,
1062
     * paper.
1063
     *
1064
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1065
     *
1066
     * @return static
1067
     *
1068
     * @see http://schema.org/material
1069
     */
1070
    public function material($material)
1071
    {
1072
        return $this->setProperty('material', $material);
1073
    }
1074
1075
    /**
1076
     * Indicates that the CreativeWork contains a reference to, but is not
1077
     * necessarily about a concept.
1078
     *
1079
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1080
     *
1081
     * @return static
1082
     *
1083
     * @see http://schema.org/mentions
1084
     */
1085
    public function mentions($mentions)
1086
    {
1087
        return $this->setProperty('mentions', $mentions);
1088
    }
1089
1090
    /**
1091
     * The name of the item.
1092
     *
1093
     * @param string|string[] $name
1094
     *
1095
     * @return static
1096
     *
1097
     * @see http://schema.org/name
1098
     */
1099
    public function name($name)
1100
    {
1101
        return $this->setProperty('name', $name);
1102
    }
1103
1104
    /**
1105
     * The number of tracks in this album or playlist.
1106
     *
1107
     * @param int|int[] $numTracks
1108
     *
1109
     * @return static
1110
     *
1111
     * @see http://schema.org/numTracks
1112
     */
1113
    public function numTracks($numTracks)
1114
    {
1115
        return $this->setProperty('numTracks', $numTracks);
1116
    }
1117
1118
    /**
1119
     * An offer to provide this item—for example, an offer to sell a
1120
     * product, rent the DVD of a movie, perform a service, or give away tickets
1121
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1122
     * offered, i.e. sell, lease, etc. This property can also be used to
1123
     * describe a [[Demand]]. While this property is listed as expected on a
1124
     * number of common types, it can be used in others. In that case, using a
1125
     * second type, such as Product or a subtype of Product, can clarify the
1126
     * nature of the offer.
1127
     *
1128
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1129
     *
1130
     * @return static
1131
     *
1132
     * @see http://schema.org/offers
1133
     */
1134
    public function offers($offers)
1135
    {
1136
        return $this->setProperty('offers', $offers);
1137
    }
1138
1139
    /**
1140
     * The position of an item in a series or sequence of items.
1141
     *
1142
     * @param int|int[]|string|string[] $position
1143
     *
1144
     * @return static
1145
     *
1146
     * @see http://schema.org/position
1147
     */
1148
    public function position($position)
1149
    {
1150
        return $this->setProperty('position', $position);
1151
    }
1152
1153
    /**
1154
     * Indicates a potential Action, which describes an idealized action in
1155
     * which this thing would play an 'object' role.
1156
     *
1157
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1158
     *
1159
     * @return static
1160
     *
1161
     * @see http://schema.org/potentialAction
1162
     */
1163
    public function potentialAction($potentialAction)
1164
    {
1165
        return $this->setProperty('potentialAction', $potentialAction);
1166
    }
1167
1168
    /**
1169
     * The person or organization who produced the work (e.g. music album,
1170
     * movie, tv/radio series etc.).
1171
     *
1172
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1173
     *
1174
     * @return static
1175
     *
1176
     * @see http://schema.org/producer
1177
     */
1178
    public function producer($producer)
1179
    {
1180
        return $this->setProperty('producer', $producer);
1181
    }
1182
1183
    /**
1184
     * The service provider, service operator, or service performer; the goods
1185
     * producer. Another party (a seller) may offer those services or goods on
1186
     * behalf of the provider. A provider may also serve as the seller.
1187
     *
1188
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1189
     *
1190
     * @return static
1191
     *
1192
     * @see http://schema.org/provider
1193
     */
1194
    public function provider($provider)
1195
    {
1196
        return $this->setProperty('provider', $provider);
1197
    }
1198
1199
    /**
1200
     * A publication event associated with the item.
1201
     *
1202
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1203
     *
1204
     * @return static
1205
     *
1206
     * @see http://schema.org/publication
1207
     */
1208
    public function publication($publication)
1209
    {
1210
        return $this->setProperty('publication', $publication);
1211
    }
1212
1213
    /**
1214
     * The publisher of the creative work.
1215
     *
1216
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1217
     *
1218
     * @return static
1219
     *
1220
     * @see http://schema.org/publisher
1221
     */
1222
    public function publisher($publisher)
1223
    {
1224
        return $this->setProperty('publisher', $publisher);
1225
    }
1226
1227
    /**
1228
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1229
     * document describing the editorial principles of an [[Organization]] (or
1230
     * individual e.g. a [[Person]] writing a blog) that relate to their
1231
     * activities as a publisher, e.g. ethics or diversity policies. When
1232
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1233
     * those of the party primarily responsible for the creation of the
1234
     * [[CreativeWork]].
1235
     * 
1236
     * While such policies are most typically expressed in natural language,
1237
     * sometimes related information (e.g. indicating a [[funder]]) can be
1238
     * expressed using schema.org terminology.
1239
     *
1240
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1241
     *
1242
     * @return static
1243
     *
1244
     * @see http://schema.org/publishingPrinciples
1245
     */
1246
    public function publishingPrinciples($publishingPrinciples)
1247
    {
1248
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1249
    }
1250
1251
    /**
1252
     * The Event where the CreativeWork was recorded. The CreativeWork may
1253
     * capture all or part of the event.
1254
     *
1255
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1256
     *
1257
     * @return static
1258
     *
1259
     * @see http://schema.org/recordedAt
1260
     */
1261
    public function recordedAt($recordedAt)
1262
    {
1263
        return $this->setProperty('recordedAt', $recordedAt);
1264
    }
1265
1266
    /**
1267
     * The place and time the release was issued, expressed as a
1268
     * PublicationEvent.
1269
     *
1270
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1271
     *
1272
     * @return static
1273
     *
1274
     * @see http://schema.org/releasedEvent
1275
     */
1276
    public function releasedEvent($releasedEvent)
1277
    {
1278
        return $this->setProperty('releasedEvent', $releasedEvent);
1279
    }
1280
1281
    /**
1282
     * A review of the item.
1283
     *
1284
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1285
     *
1286
     * @return static
1287
     *
1288
     * @see http://schema.org/review
1289
     */
1290
    public function review($review)
1291
    {
1292
        return $this->setProperty('review', $review);
1293
    }
1294
1295
    /**
1296
     * Review of the item.
1297
     *
1298
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1299
     *
1300
     * @return static
1301
     *
1302
     * @see http://schema.org/reviews
1303
     */
1304
    public function reviews($reviews)
1305
    {
1306
        return $this->setProperty('reviews', $reviews);
1307
    }
1308
1309
    /**
1310
     * URL of a reference Web page that unambiguously indicates the item's
1311
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1312
     * official website.
1313
     *
1314
     * @param string|string[] $sameAs
1315
     *
1316
     * @return static
1317
     *
1318
     * @see http://schema.org/sameAs
1319
     */
1320
    public function sameAs($sameAs)
1321
    {
1322
        return $this->setProperty('sameAs', $sameAs);
1323
    }
1324
1325
    /**
1326
     * Indicates (by URL or string) a particular version of a schema used in
1327
     * some CreativeWork. For example, a document could declare a schemaVersion
1328
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1329
     * of schema version was required by some application.
1330
     *
1331
     * @param string|string[] $schemaVersion
1332
     *
1333
     * @return static
1334
     *
1335
     * @see http://schema.org/schemaVersion
1336
     */
1337
    public function schemaVersion($schemaVersion)
1338
    {
1339
        return $this->setProperty('schemaVersion', $schemaVersion);
1340
    }
1341
1342
    /**
1343
     * The Organization on whose behalf the creator was working.
1344
     *
1345
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1346
     *
1347
     * @return static
1348
     *
1349
     * @see http://schema.org/sourceOrganization
1350
     */
1351
    public function sourceOrganization($sourceOrganization)
1352
    {
1353
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1354
    }
1355
1356
    /**
1357
     * The "spatial" property can be used in cases when more specific properties
1358
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1359
     * not known to be appropriate.
1360
     *
1361
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1362
     *
1363
     * @return static
1364
     *
1365
     * @see http://schema.org/spatial
1366
     */
1367
    public function spatial($spatial)
1368
    {
1369
        return $this->setProperty('spatial', $spatial);
1370
    }
1371
1372
    /**
1373
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1374
     * the focus of the content. It is a subproperty of
1375
     *       contentLocation intended primarily for more technical and detailed
1376
     * materials. For example with a Dataset, it indicates
1377
     *       areas that the dataset describes: a dataset of New York weather
1378
     * would have spatialCoverage which was the place: the state of New York.
1379
     *
1380
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1381
     *
1382
     * @return static
1383
     *
1384
     * @see http://schema.org/spatialCoverage
1385
     */
1386
    public function spatialCoverage($spatialCoverage)
1387
    {
1388
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1389
    }
1390
1391
    /**
1392
     * A person or organization that supports a thing through a pledge, promise,
1393
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1394
     * corporate sponsor of an event.
1395
     *
1396
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1397
     *
1398
     * @return static
1399
     *
1400
     * @see http://schema.org/sponsor
1401
     */
1402
    public function sponsor($sponsor)
1403
    {
1404
        return $this->setProperty('sponsor', $sponsor);
1405
    }
1406
1407
    /**
1408
     * A CreativeWork or Event about this Thing.
1409
     *
1410
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1411
     *
1412
     * @return static
1413
     *
1414
     * @see http://schema.org/subjectOf
1415
     */
1416
    public function subjectOf($subjectOf)
1417
    {
1418
        return $this->setProperty('subjectOf', $subjectOf);
1419
    }
1420
1421
    /**
1422
     * The "temporal" property can be used in cases where more specific
1423
     * properties
1424
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1425
     * [[datePublished]]) are not known to be appropriate.
1426
     *
1427
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1428
     *
1429
     * @return static
1430
     *
1431
     * @see http://schema.org/temporal
1432
     */
1433
    public function temporal($temporal)
1434
    {
1435
        return $this->setProperty('temporal', $temporal);
1436
    }
1437
1438
    /**
1439
     * The temporalCoverage of a CreativeWork indicates the period that the
1440
     * content applies to, i.e. that it describes, either as a DateTime or as a
1441
     * textual string indicating a time period in [ISO 8601 time interval
1442
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1443
     *       the case of a Dataset it will typically indicate the relevant time
1444
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1445
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1446
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1447
     * temporalCoverage in broader terms - textually or via well-known URL.
1448
     *       Written works such as books may sometimes have precise temporal
1449
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1450
     * interval format format via "1939/1945".
1451
     * 
1452
     * Open-ended date ranges can be written with ".." in place of the end date.
1453
     * For example, "2015-11/.." indicates a range beginning in November 2015
1454
     * and with no specified final date. This is tentative and might be updated
1455
     * in future when ISO 8601 is officially updated.
1456
     *
1457
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1458
     *
1459
     * @return static
1460
     *
1461
     * @see http://schema.org/temporalCoverage
1462
     */
1463
    public function temporalCoverage($temporalCoverage)
1464
    {
1465
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1466
    }
1467
1468
    /**
1469
     * The textual content of this CreativeWork.
1470
     *
1471
     * @param string|string[] $text
1472
     *
1473
     * @return static
1474
     *
1475
     * @see http://schema.org/text
1476
     */
1477
    public function text($text)
1478
    {
1479
        return $this->setProperty('text', $text);
1480
    }
1481
1482
    /**
1483
     * A thumbnail image relevant to the Thing.
1484
     *
1485
     * @param string|string[] $thumbnailUrl
1486
     *
1487
     * @return static
1488
     *
1489
     * @see http://schema.org/thumbnailUrl
1490
     */
1491
    public function thumbnailUrl($thumbnailUrl)
1492
    {
1493
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1494
    }
1495
1496
    /**
1497
     * Approximate or typical time it takes to work with or through this
1498
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1499
     * 'PT1H25M'.
1500
     *
1501
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1502
     *
1503
     * @return static
1504
     *
1505
     * @see http://schema.org/timeRequired
1506
     */
1507
    public function timeRequired($timeRequired)
1508
    {
1509
        return $this->setProperty('timeRequired', $timeRequired);
1510
    }
1511
1512
    /**
1513
     * A music recording (track)—usually a single song. If an ItemList is
1514
     * given, the list should contain items of type MusicRecording.
1515
     *
1516
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[]|\Spatie\SchemaOrg\Contracts\MusicRecordingContract|\Spatie\SchemaOrg\Contracts\MusicRecordingContract[] $track
1517
     *
1518
     * @return static
1519
     *
1520
     * @see http://schema.org/track
1521
     */
1522
    public function track($track)
1523
    {
1524
        return $this->setProperty('track', $track);
1525
    }
1526
1527
    /**
1528
     * A music recording (track)—usually a single song.
1529
     *
1530
     * @param \Spatie\SchemaOrg\Contracts\MusicRecordingContract|\Spatie\SchemaOrg\Contracts\MusicRecordingContract[] $tracks
1531
     *
1532
     * @return static
1533
     *
1534
     * @see http://schema.org/tracks
1535
     */
1536
    public function tracks($tracks)
1537
    {
1538
        return $this->setProperty('tracks', $tracks);
1539
    }
1540
1541
    /**
1542
     * Organization or person who adapts a creative work to different languages,
1543
     * regional differences and technical requirements of a target market, or
1544
     * that translates during some event.
1545
     *
1546
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1547
     *
1548
     * @return static
1549
     *
1550
     * @see http://schema.org/translator
1551
     */
1552
    public function translator($translator)
1553
    {
1554
        return $this->setProperty('translator', $translator);
1555
    }
1556
1557
    /**
1558
     * The typical expected age range, e.g. '7-9', '11-'.
1559
     *
1560
     * @param string|string[] $typicalAgeRange
1561
     *
1562
     * @return static
1563
     *
1564
     * @see http://schema.org/typicalAgeRange
1565
     */
1566
    public function typicalAgeRange($typicalAgeRange)
1567
    {
1568
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1569
    }
1570
1571
    /**
1572
     * URL of the item.
1573
     *
1574
     * @param string|string[] $url
1575
     *
1576
     * @return static
1577
     *
1578
     * @see http://schema.org/url
1579
     */
1580
    public function url($url)
1581
    {
1582
        return $this->setProperty('url', $url);
1583
    }
1584
1585
    /**
1586
     * The version of the CreativeWork embodied by a specified resource.
1587
     *
1588
     * @param float|float[]|int|int[]|string|string[] $version
1589
     *
1590
     * @return static
1591
     *
1592
     * @see http://schema.org/version
1593
     */
1594
    public function version($version)
1595
    {
1596
        return $this->setProperty('version', $version);
1597
    }
1598
1599
    /**
1600
     * An embedded video object.
1601
     *
1602
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1603
     *
1604
     * @return static
1605
     *
1606
     * @see http://schema.org/video
1607
     */
1608
    public function video($video)
1609
    {
1610
        return $this->setProperty('video', $video);
1611
    }
1612
1613
    /**
1614
     * Example/instance/realization/derivation of the concept of this creative
1615
     * work. eg. The paperback edition, first edition, or eBook.
1616
     *
1617
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1618
     *
1619
     * @return static
1620
     *
1621
     * @see http://schema.org/workExample
1622
     */
1623
    public function workExample($workExample)
1624
    {
1625
        return $this->setProperty('workExample', $workExample);
1626
    }
1627
1628
}
1629

src/MusicRecording.php 1 location

@@ 15-1612 (lines=1598) @@
12
 * @see http://schema.org/MusicRecording
13
 *
14
 */
15
class MusicRecording extends BaseType implements MusicRecordingContract, CreativeWorkContract, ThingContract
16
{
17
    /**
18
     * The subject matter of the content.
19
     *
20
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
21
     *
22
     * @return static
23
     *
24
     * @see http://schema.org/about
25
     */
26
    public function about($about)
27
    {
28
        return $this->setProperty('about', $about);
29
    }
30
31
    /**
32
     * The human sensory perceptual system or cognitive faculty through which a
33
     * person may process or perceive information. Expected values include:
34
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
35
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
36
     *
37
     * @param string|string[] $accessMode
38
     *
39
     * @return static
40
     *
41
     * @see http://schema.org/accessMode
42
     */
43
    public function accessMode($accessMode)
44
    {
45
        return $this->setProperty('accessMode', $accessMode);
46
    }
47
48
    /**
49
     * A list of single or combined accessModes that are sufficient to
50
     * understand all the intellectual content of a resource. Expected values
51
     * include:  auditory, tactile, textual, visual.
52
     *
53
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
54
     *
55
     * @return static
56
     *
57
     * @see http://schema.org/accessModeSufficient
58
     */
59
    public function accessModeSufficient($accessModeSufficient)
60
    {
61
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
62
    }
63
64
    /**
65
     * Indicates that the resource is compatible with the referenced
66
     * accessibility API ([WebSchemas wiki lists possible
67
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
68
     *
69
     * @param string|string[] $accessibilityAPI
70
     *
71
     * @return static
72
     *
73
     * @see http://schema.org/accessibilityAPI
74
     */
75
    public function accessibilityAPI($accessibilityAPI)
76
    {
77
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
78
    }
79
80
    /**
81
     * Identifies input methods that are sufficient to fully control the
82
     * described resource ([WebSchemas wiki lists possible
83
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
84
     *
85
     * @param string|string[] $accessibilityControl
86
     *
87
     * @return static
88
     *
89
     * @see http://schema.org/accessibilityControl
90
     */
91
    public function accessibilityControl($accessibilityControl)
92
    {
93
        return $this->setProperty('accessibilityControl', $accessibilityControl);
94
    }
95
96
    /**
97
     * Content features of the resource, such as accessible media, alternatives
98
     * and supported enhancements for accessibility ([WebSchemas wiki lists
99
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
100
     *
101
     * @param string|string[] $accessibilityFeature
102
     *
103
     * @return static
104
     *
105
     * @see http://schema.org/accessibilityFeature
106
     */
107
    public function accessibilityFeature($accessibilityFeature)
108
    {
109
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
110
    }
111
112
    /**
113
     * A characteristic of the described resource that is physiologically
114
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
115
     * wiki lists possible
116
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
117
     *
118
     * @param string|string[] $accessibilityHazard
119
     *
120
     * @return static
121
     *
122
     * @see http://schema.org/accessibilityHazard
123
     */
124
    public function accessibilityHazard($accessibilityHazard)
125
    {
126
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
127
    }
128
129
    /**
130
     * A human-readable summary of specific accessibility features or
131
     * deficiencies, consistent with the other accessibility metadata but
132
     * expressing subtleties such as "short descriptions are present but long
133
     * descriptions will be needed for non-visual users" or "short descriptions
134
     * are present and no long descriptions are needed."
135
     *
136
     * @param string|string[] $accessibilitySummary
137
     *
138
     * @return static
139
     *
140
     * @see http://schema.org/accessibilitySummary
141
     */
142
    public function accessibilitySummary($accessibilitySummary)
143
    {
144
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
145
    }
146
147
    /**
148
     * Specifies the Person that is legally accountable for the CreativeWork.
149
     *
150
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
151
     *
152
     * @return static
153
     *
154
     * @see http://schema.org/accountablePerson
155
     */
156
    public function accountablePerson($accountablePerson)
157
    {
158
        return $this->setProperty('accountablePerson', $accountablePerson);
159
    }
160
161
    /**
162
     * An additional type for the item, typically used for adding more specific
163
     * types from external vocabularies in microdata syntax. This is a
164
     * relationship between something and a class that the thing is in. In RDFa
165
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
166
     * attribute - for multiple types. Schema.org tools may have only weaker
167
     * understanding of extra types, in particular those defined externally.
168
     *
169
     * @param string|string[] $additionalType
170
     *
171
     * @return static
172
     *
173
     * @see http://schema.org/additionalType
174
     */
175
    public function additionalType($additionalType)
176
    {
177
        return $this->setProperty('additionalType', $additionalType);
178
    }
179
180
    /**
181
     * The overall rating, based on a collection of reviews or ratings, of the
182
     * item.
183
     *
184
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
185
     *
186
     * @return static
187
     *
188
     * @see http://schema.org/aggregateRating
189
     */
190
    public function aggregateRating($aggregateRating)
191
    {
192
        return $this->setProperty('aggregateRating', $aggregateRating);
193
    }
194
195
    /**
196
     * An alias for the item.
197
     *
198
     * @param string|string[] $alternateName
199
     *
200
     * @return static
201
     *
202
     * @see http://schema.org/alternateName
203
     */
204
    public function alternateName($alternateName)
205
    {
206
        return $this->setProperty('alternateName', $alternateName);
207
    }
208
209
    /**
210
     * A secondary title of the CreativeWork.
211
     *
212
     * @param string|string[] $alternativeHeadline
213
     *
214
     * @return static
215
     *
216
     * @see http://schema.org/alternativeHeadline
217
     */
218
    public function alternativeHeadline($alternativeHeadline)
219
    {
220
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
221
    }
222
223
    /**
224
     * A media object that encodes this CreativeWork. This property is a synonym
225
     * for encoding.
226
     *
227
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
228
     *
229
     * @return static
230
     *
231
     * @see http://schema.org/associatedMedia
232
     */
233
    public function associatedMedia($associatedMedia)
234
    {
235
        return $this->setProperty('associatedMedia', $associatedMedia);
236
    }
237
238
    /**
239
     * An intended audience, i.e. a group for whom something was created.
240
     *
241
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
242
     *
243
     * @return static
244
     *
245
     * @see http://schema.org/audience
246
     */
247
    public function audience($audience)
248
    {
249
        return $this->setProperty('audience', $audience);
250
    }
251
252
    /**
253
     * An embedded audio object.
254
     *
255
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
256
     *
257
     * @return static
258
     *
259
     * @see http://schema.org/audio
260
     */
261
    public function audio($audio)
262
    {
263
        return $this->setProperty('audio', $audio);
264
    }
265
266
    /**
267
     * The author of this content or rating. Please note that author is special
268
     * in that HTML 5 provides a special mechanism for indicating authorship via
269
     * the rel tag. That is equivalent to this and may be used interchangeably.
270
     *
271
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
272
     *
273
     * @return static
274
     *
275
     * @see http://schema.org/author
276
     */
277
    public function author($author)
278
    {
279
        return $this->setProperty('author', $author);
280
    }
281
282
    /**
283
     * An award won by or for this item.
284
     *
285
     * @param string|string[] $award
286
     *
287
     * @return static
288
     *
289
     * @see http://schema.org/award
290
     */
291
    public function award($award)
292
    {
293
        return $this->setProperty('award', $award);
294
    }
295
296
    /**
297
     * Awards won by or for this item.
298
     *
299
     * @param string|string[] $awards
300
     *
301
     * @return static
302
     *
303
     * @see http://schema.org/awards
304
     */
305
    public function awards($awards)
306
    {
307
        return $this->setProperty('awards', $awards);
308
    }
309
310
    /**
311
     * The artist that performed this album or recording.
312
     *
313
     * @param \Spatie\SchemaOrg\Contracts\MusicGroupContract|\Spatie\SchemaOrg\Contracts\MusicGroupContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $byArtist
314
     *
315
     * @return static
316
     *
317
     * @see http://schema.org/byArtist
318
     */
319
    public function byArtist($byArtist)
320
    {
321
        return $this->setProperty('byArtist', $byArtist);
322
    }
323
324
    /**
325
     * Fictional person connected with a creative work.
326
     *
327
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
328
     *
329
     * @return static
330
     *
331
     * @see http://schema.org/character
332
     */
333
    public function character($character)
334
    {
335
        return $this->setProperty('character', $character);
336
    }
337
338
    /**
339
     * A citation or reference to another creative work, such as another
340
     * publication, web page, scholarly article, etc.
341
     *
342
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
343
     *
344
     * @return static
345
     *
346
     * @see http://schema.org/citation
347
     */
348
    public function citation($citation)
349
    {
350
        return $this->setProperty('citation', $citation);
351
    }
352
353
    /**
354
     * Comments, typically from users.
355
     *
356
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
357
     *
358
     * @return static
359
     *
360
     * @see http://schema.org/comment
361
     */
362
    public function comment($comment)
363
    {
364
        return $this->setProperty('comment', $comment);
365
    }
366
367
    /**
368
     * The number of comments this CreativeWork (e.g. Article, Question or
369
     * Answer) has received. This is most applicable to works published in Web
370
     * sites with commenting system; additional comments may exist elsewhere.
371
     *
372
     * @param int|int[] $commentCount
373
     *
374
     * @return static
375
     *
376
     * @see http://schema.org/commentCount
377
     */
378
    public function commentCount($commentCount)
379
    {
380
        return $this->setProperty('commentCount', $commentCount);
381
    }
382
383
    /**
384
     * The location depicted or described in the content. For example, the
385
     * location in a photograph or painting.
386
     *
387
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
388
     *
389
     * @return static
390
     *
391
     * @see http://schema.org/contentLocation
392
     */
393
    public function contentLocation($contentLocation)
394
    {
395
        return $this->setProperty('contentLocation', $contentLocation);
396
    }
397
398
    /**
399
     * Official rating of a piece of content—for example,'MPAA PG-13'.
400
     *
401
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
402
     *
403
     * @return static
404
     *
405
     * @see http://schema.org/contentRating
406
     */
407
    public function contentRating($contentRating)
408
    {
409
        return $this->setProperty('contentRating', $contentRating);
410
    }
411
412
    /**
413
     * A secondary contributor to the CreativeWork or Event.
414
     *
415
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
416
     *
417
     * @return static
418
     *
419
     * @see http://schema.org/contributor
420
     */
421
    public function contributor($contributor)
422
    {
423
        return $this->setProperty('contributor', $contributor);
424
    }
425
426
    /**
427
     * The party holding the legal copyright to the CreativeWork.
428
     *
429
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
430
     *
431
     * @return static
432
     *
433
     * @see http://schema.org/copyrightHolder
434
     */
435
    public function copyrightHolder($copyrightHolder)
436
    {
437
        return $this->setProperty('copyrightHolder', $copyrightHolder);
438
    }
439
440
    /**
441
     * The year during which the claimed copyright for the CreativeWork was
442
     * first asserted.
443
     *
444
     * @param float|float[]|int|int[] $copyrightYear
445
     *
446
     * @return static
447
     *
448
     * @see http://schema.org/copyrightYear
449
     */
450
    public function copyrightYear($copyrightYear)
451
    {
452
        return $this->setProperty('copyrightYear', $copyrightYear);
453
    }
454
455
    /**
456
     * The creator/author of this CreativeWork. This is the same as the Author
457
     * property for CreativeWork.
458
     *
459
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
460
     *
461
     * @return static
462
     *
463
     * @see http://schema.org/creator
464
     */
465
    public function creator($creator)
466
    {
467
        return $this->setProperty('creator', $creator);
468
    }
469
470
    /**
471
     * The date on which the CreativeWork was created or the item was added to a
472
     * DataFeed.
473
     *
474
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
475
     *
476
     * @return static
477
     *
478
     * @see http://schema.org/dateCreated
479
     */
480
    public function dateCreated($dateCreated)
481
    {
482
        return $this->setProperty('dateCreated', $dateCreated);
483
    }
484
485
    /**
486
     * The date on which the CreativeWork was most recently modified or when the
487
     * item's entry was modified within a DataFeed.
488
     *
489
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
490
     *
491
     * @return static
492
     *
493
     * @see http://schema.org/dateModified
494
     */
495
    public function dateModified($dateModified)
496
    {
497
        return $this->setProperty('dateModified', $dateModified);
498
    }
499
500
    /**
501
     * Date of first broadcast/publication.
502
     *
503
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
504
     *
505
     * @return static
506
     *
507
     * @see http://schema.org/datePublished
508
     */
509
    public function datePublished($datePublished)
510
    {
511
        return $this->setProperty('datePublished', $datePublished);
512
    }
513
514
    /**
515
     * A description of the item.
516
     *
517
     * @param string|string[] $description
518
     *
519
     * @return static
520
     *
521
     * @see http://schema.org/description
522
     */
523
    public function description($description)
524
    {
525
        return $this->setProperty('description', $description);
526
    }
527
528
    /**
529
     * A sub property of description. A short description of the item used to
530
     * disambiguate from other, similar items. Information from other properties
531
     * (in particular, name) may be necessary for the description to be useful
532
     * for disambiguation.
533
     *
534
     * @param string|string[] $disambiguatingDescription
535
     *
536
     * @return static
537
     *
538
     * @see http://schema.org/disambiguatingDescription
539
     */
540
    public function disambiguatingDescription($disambiguatingDescription)
541
    {
542
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
543
    }
544
545
    /**
546
     * A link to the page containing the comments of the CreativeWork.
547
     *
548
     * @param string|string[] $discussionUrl
549
     *
550
     * @return static
551
     *
552
     * @see http://schema.org/discussionUrl
553
     */
554
    public function discussionUrl($discussionUrl)
555
    {
556
        return $this->setProperty('discussionUrl', $discussionUrl);
557
    }
558
559
    /**
560
     * The duration of the item (movie, audio recording, event, etc.) in [ISO
561
     * 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
562
     *
563
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $duration
564
     *
565
     * @return static
566
     *
567
     * @see http://schema.org/duration
568
     */
569
    public function duration($duration)
570
    {
571
        return $this->setProperty('duration', $duration);
572
    }
573
574
    /**
575
     * Specifies the Person who edited the CreativeWork.
576
     *
577
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
578
     *
579
     * @return static
580
     *
581
     * @see http://schema.org/editor
582
     */
583
    public function editor($editor)
584
    {
585
        return $this->setProperty('editor', $editor);
586
    }
587
588
    /**
589
     * An alignment to an established educational framework.
590
     *
591
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
592
     *
593
     * @return static
594
     *
595
     * @see http://schema.org/educationalAlignment
596
     */
597
    public function educationalAlignment($educationalAlignment)
598
    {
599
        return $this->setProperty('educationalAlignment', $educationalAlignment);
600
    }
601
602
    /**
603
     * The purpose of a work in the context of education; for example,
604
     * 'assignment', 'group work'.
605
     *
606
     * @param string|string[] $educationalUse
607
     *
608
     * @return static
609
     *
610
     * @see http://schema.org/educationalUse
611
     */
612
    public function educationalUse($educationalUse)
613
    {
614
        return $this->setProperty('educationalUse', $educationalUse);
615
    }
616
617
    /**
618
     * A media object that encodes this CreativeWork. This property is a synonym
619
     * for associatedMedia.
620
     *
621
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
622
     *
623
     * @return static
624
     *
625
     * @see http://schema.org/encoding
626
     */
627
    public function encoding($encoding)
628
    {
629
        return $this->setProperty('encoding', $encoding);
630
    }
631
632
    /**
633
     * Media type typically expressed using a MIME format (see [IANA
634
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
635
     * [MDN
636
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
637
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
638
     * .mp3 etc.).
639
     * 
640
     * In cases where a [[CreativeWork]] has several media type representations,
641
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
642
     * particular [[encodingFormat]] information.
643
     * 
644
     * Unregistered or niche encoding and file formats can be indicated instead
645
     * via the most appropriate URL, e.g. defining Web page or a
646
     * Wikipedia/Wikidata entry.
647
     *
648
     * @param string|string[] $encodingFormat
649
     *
650
     * @return static
651
     *
652
     * @see http://schema.org/encodingFormat
653
     */
654
    public function encodingFormat($encodingFormat)
655
    {
656
        return $this->setProperty('encodingFormat', $encodingFormat);
657
    }
658
659
    /**
660
     * A media object that encodes this CreativeWork.
661
     *
662
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
663
     *
664
     * @return static
665
     *
666
     * @see http://schema.org/encodings
667
     */
668
    public function encodings($encodings)
669
    {
670
        return $this->setProperty('encodings', $encodings);
671
    }
672
673
    /**
674
     * A creative work that this work is an
675
     * example/instance/realization/derivation of.
676
     *
677
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
678
     *
679
     * @return static
680
     *
681
     * @see http://schema.org/exampleOfWork
682
     */
683
    public function exampleOfWork($exampleOfWork)
684
    {
685
        return $this->setProperty('exampleOfWork', $exampleOfWork);
686
    }
687
688
    /**
689
     * Date the content expires and is no longer useful or available. For
690
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
691
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
692
     * publisher wants to indicate that it may no longer be relevant (or helpful
693
     * to highlight) after some date.
694
     *
695
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
696
     *
697
     * @return static
698
     *
699
     * @see http://schema.org/expires
700
     */
701
    public function expires($expires)
702
    {
703
        return $this->setProperty('expires', $expires);
704
    }
705
706
    /**
707
     * Media type, typically MIME format (see [IANA
708
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
709
     * the content e.g. application/zip of a SoftwareApplication binary. In
710
     * cases where a CreativeWork has several media type representations,
711
     * 'encoding' can be used to indicate each MediaObject alongside particular
712
     * fileFormat information. Unregistered or niche file formats can be
713
     * indicated instead via the most appropriate URL, e.g. defining Web page or
714
     * a Wikipedia entry.
715
     *
716
     * @param string|string[] $fileFormat
717
     *
718
     * @return static
719
     *
720
     * @see http://schema.org/fileFormat
721
     */
722
    public function fileFormat($fileFormat)
723
    {
724
        return $this->setProperty('fileFormat', $fileFormat);
725
    }
726
727
    /**
728
     * A person or organization that supports (sponsors) something through some
729
     * kind of financial contribution.
730
     *
731
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
732
     *
733
     * @return static
734
     *
735
     * @see http://schema.org/funder
736
     */
737
    public function funder($funder)
738
    {
739
        return $this->setProperty('funder', $funder);
740
    }
741
742
    /**
743
     * Genre of the creative work, broadcast channel or group.
744
     *
745
     * @param string|string[] $genre
746
     *
747
     * @return static
748
     *
749
     * @see http://schema.org/genre
750
     */
751
    public function genre($genre)
752
    {
753
        return $this->setProperty('genre', $genre);
754
    }
755
756
    /**
757
     * Indicates an item or CreativeWork that is part of this item, or
758
     * CreativeWork (in some sense).
759
     *
760
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
761
     *
762
     * @return static
763
     *
764
     * @see http://schema.org/hasPart
765
     */
766
    public function hasPart($hasPart)
767
    {
768
        return $this->setProperty('hasPart', $hasPart);
769
    }
770
771
    /**
772
     * Headline of the article.
773
     *
774
     * @param string|string[] $headline
775
     *
776
     * @return static
777
     *
778
     * @see http://schema.org/headline
779
     */
780
    public function headline($headline)
781
    {
782
        return $this->setProperty('headline', $headline);
783
    }
784
785
    /**
786
     * The identifier property represents any kind of identifier for any kind of
787
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
788
     * dedicated properties for representing many of these, either as textual
789
     * strings or as URL (URI) links. See [background
790
     * notes](/docs/datamodel.html#identifierBg) for more details.
791
     *
792
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
793
     *
794
     * @return static
795
     *
796
     * @see http://schema.org/identifier
797
     */
798
    public function identifier($identifier)
799
    {
800
        return $this->setProperty('identifier', $identifier);
801
    }
802
803
    /**
804
     * An image of the item. This can be a [[URL]] or a fully described
805
     * [[ImageObject]].
806
     *
807
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
808
     *
809
     * @return static
810
     *
811
     * @see http://schema.org/image
812
     */
813
    public function image($image)
814
    {
815
        return $this->setProperty('image', $image);
816
    }
817
818
    /**
819
     * The album to which this recording belongs.
820
     *
821
     * @param \Spatie\SchemaOrg\Contracts\MusicAlbumContract|\Spatie\SchemaOrg\Contracts\MusicAlbumContract[] $inAlbum
822
     *
823
     * @return static
824
     *
825
     * @see http://schema.org/inAlbum
826
     */
827
    public function inAlbum($inAlbum)
828
    {
829
        return $this->setProperty('inAlbum', $inAlbum);
830
    }
831
832
    /**
833
     * The language of the content or performance or used in an action. Please
834
     * use one of the language codes from the [IETF BCP 47
835
     * standard](http://tools.ietf.org/html/bcp47). See also
836
     * [[availableLanguage]].
837
     *
838
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
839
     *
840
     * @return static
841
     *
842
     * @see http://schema.org/inLanguage
843
     */
844
    public function inLanguage($inLanguage)
845
    {
846
        return $this->setProperty('inLanguage', $inLanguage);
847
    }
848
849
    /**
850
     * The playlist to which this recording belongs.
851
     *
852
     * @param \Spatie\SchemaOrg\Contracts\MusicPlaylistContract|\Spatie\SchemaOrg\Contracts\MusicPlaylistContract[] $inPlaylist
853
     *
854
     * @return static
855
     *
856
     * @see http://schema.org/inPlaylist
857
     */
858
    public function inPlaylist($inPlaylist)
859
    {
860
        return $this->setProperty('inPlaylist', $inPlaylist);
861
    }
862
863
    /**
864
     * The number of interactions for the CreativeWork using the WebSite or
865
     * SoftwareApplication. The most specific child type of InteractionCounter
866
     * should be used.
867
     *
868
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
869
     *
870
     * @return static
871
     *
872
     * @see http://schema.org/interactionStatistic
873
     */
874
    public function interactionStatistic($interactionStatistic)
875
    {
876
        return $this->setProperty('interactionStatistic', $interactionStatistic);
877
    }
878
879
    /**
880
     * The predominant mode of learning supported by the learning resource.
881
     * Acceptable values are 'active', 'expositive', or 'mixed'.
882
     *
883
     * @param string|string[] $interactivityType
884
     *
885
     * @return static
886
     *
887
     * @see http://schema.org/interactivityType
888
     */
889
    public function interactivityType($interactivityType)
890
    {
891
        return $this->setProperty('interactivityType', $interactivityType);
892
    }
893
894
    /**
895
     * A flag to signal that the item, event, or place is accessible for free.
896
     *
897
     * @param bool|bool[] $isAccessibleForFree
898
     *
899
     * @return static
900
     *
901
     * @see http://schema.org/isAccessibleForFree
902
     */
903
    public function isAccessibleForFree($isAccessibleForFree)
904
    {
905
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
906
    }
907
908
    /**
909
     * A resource from which this work is derived or from which it is a
910
     * modification or adaption.
911
     *
912
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
913
     *
914
     * @return static
915
     *
916
     * @see http://schema.org/isBasedOn
917
     */
918
    public function isBasedOn($isBasedOn)
919
    {
920
        return $this->setProperty('isBasedOn', $isBasedOn);
921
    }
922
923
    /**
924
     * A resource that was used in the creation of this resource. This term can
925
     * be repeated for multiple sources. For example,
926
     * http://example.com/great-multiplication-intro.html.
927
     *
928
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
929
     *
930
     * @return static
931
     *
932
     * @see http://schema.org/isBasedOnUrl
933
     */
934
    public function isBasedOnUrl($isBasedOnUrl)
935
    {
936
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
937
    }
938
939
    /**
940
     * Indicates whether this content is family friendly.
941
     *
942
     * @param bool|bool[] $isFamilyFriendly
943
     *
944
     * @return static
945
     *
946
     * @see http://schema.org/isFamilyFriendly
947
     */
948
    public function isFamilyFriendly($isFamilyFriendly)
949
    {
950
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
951
    }
952
953
    /**
954
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
955
     * some sense), is part of.
956
     *
957
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
958
     *
959
     * @return static
960
     *
961
     * @see http://schema.org/isPartOf
962
     */
963
    public function isPartOf($isPartOf)
964
    {
965
        return $this->setProperty('isPartOf', $isPartOf);
966
    }
967
968
    /**
969
     * The International Standard Recording Code for the recording.
970
     *
971
     * @param string|string[] $isrcCode
972
     *
973
     * @return static
974
     *
975
     * @see http://schema.org/isrcCode
976
     */
977
    public function isrcCode($isrcCode)
978
    {
979
        return $this->setProperty('isrcCode', $isrcCode);
980
    }
981
982
    /**
983
     * Keywords or tags used to describe this content. Multiple entries in a
984
     * keywords list are typically delimited by commas.
985
     *
986
     * @param string|string[] $keywords
987
     *
988
     * @return static
989
     *
990
     * @see http://schema.org/keywords
991
     */
992
    public function keywords($keywords)
993
    {
994
        return $this->setProperty('keywords', $keywords);
995
    }
996
997
    /**
998
     * The predominant type or kind characterizing the learning resource. For
999
     * example, 'presentation', 'handout'.
1000
     *
1001
     * @param string|string[] $learningResourceType
1002
     *
1003
     * @return static
1004
     *
1005
     * @see http://schema.org/learningResourceType
1006
     */
1007
    public function learningResourceType($learningResourceType)
1008
    {
1009
        return $this->setProperty('learningResourceType', $learningResourceType);
1010
    }
1011
1012
    /**
1013
     * A license document that applies to this content, typically indicated by
1014
     * URL.
1015
     *
1016
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1017
     *
1018
     * @return static
1019
     *
1020
     * @see http://schema.org/license
1021
     */
1022
    public function license($license)
1023
    {
1024
        return $this->setProperty('license', $license);
1025
    }
1026
1027
    /**
1028
     * The location where the CreativeWork was created, which may not be the
1029
     * same as the location depicted in the CreativeWork.
1030
     *
1031
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1032
     *
1033
     * @return static
1034
     *
1035
     * @see http://schema.org/locationCreated
1036
     */
1037
    public function locationCreated($locationCreated)
1038
    {
1039
        return $this->setProperty('locationCreated', $locationCreated);
1040
    }
1041
1042
    /**
1043
     * Indicates the primary entity described in some page or other
1044
     * CreativeWork.
1045
     *
1046
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1047
     *
1048
     * @return static
1049
     *
1050
     * @see http://schema.org/mainEntity
1051
     */
1052
    public function mainEntity($mainEntity)
1053
    {
1054
        return $this->setProperty('mainEntity', $mainEntity);
1055
    }
1056
1057
    /**
1058
     * Indicates a page (or other CreativeWork) for which this thing is the main
1059
     * entity being described. See [background
1060
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1061
     *
1062
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1063
     *
1064
     * @return static
1065
     *
1066
     * @see http://schema.org/mainEntityOfPage
1067
     */
1068
    public function mainEntityOfPage($mainEntityOfPage)
1069
    {
1070
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1071
    }
1072
1073
    /**
1074
     * A material that something is made from, e.g. leather, wool, cotton,
1075
     * paper.
1076
     *
1077
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1078
     *
1079
     * @return static
1080
     *
1081
     * @see http://schema.org/material
1082
     */
1083
    public function material($material)
1084
    {
1085
        return $this->setProperty('material', $material);
1086
    }
1087
1088
    /**
1089
     * Indicates that the CreativeWork contains a reference to, but is not
1090
     * necessarily about a concept.
1091
     *
1092
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1093
     *
1094
     * @return static
1095
     *
1096
     * @see http://schema.org/mentions
1097
     */
1098
    public function mentions($mentions)
1099
    {
1100
        return $this->setProperty('mentions', $mentions);
1101
    }
1102
1103
    /**
1104
     * The name of the item.
1105
     *
1106
     * @param string|string[] $name
1107
     *
1108
     * @return static
1109
     *
1110
     * @see http://schema.org/name
1111
     */
1112
    public function name($name)
1113
    {
1114
        return $this->setProperty('name', $name);
1115
    }
1116
1117
    /**
1118
     * An offer to provide this item—for example, an offer to sell a
1119
     * product, rent the DVD of a movie, perform a service, or give away tickets
1120
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1121
     * offered, i.e. sell, lease, etc. This property can also be used to
1122
     * describe a [[Demand]]. While this property is listed as expected on a
1123
     * number of common types, it can be used in others. In that case, using a
1124
     * second type, such as Product or a subtype of Product, can clarify the
1125
     * nature of the offer.
1126
     *
1127
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1128
     *
1129
     * @return static
1130
     *
1131
     * @see http://schema.org/offers
1132
     */
1133
    public function offers($offers)
1134
    {
1135
        return $this->setProperty('offers', $offers);
1136
    }
1137
1138
    /**
1139
     * The position of an item in a series or sequence of items.
1140
     *
1141
     * @param int|int[]|string|string[] $position
1142
     *
1143
     * @return static
1144
     *
1145
     * @see http://schema.org/position
1146
     */
1147
    public function position($position)
1148
    {
1149
        return $this->setProperty('position', $position);
1150
    }
1151
1152
    /**
1153
     * Indicates a potential Action, which describes an idealized action in
1154
     * which this thing would play an 'object' role.
1155
     *
1156
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1157
     *
1158
     * @return static
1159
     *
1160
     * @see http://schema.org/potentialAction
1161
     */
1162
    public function potentialAction($potentialAction)
1163
    {
1164
        return $this->setProperty('potentialAction', $potentialAction);
1165
    }
1166
1167
    /**
1168
     * The person or organization who produced the work (e.g. music album,
1169
     * movie, tv/radio series etc.).
1170
     *
1171
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1172
     *
1173
     * @return static
1174
     *
1175
     * @see http://schema.org/producer
1176
     */
1177
    public function producer($producer)
1178
    {
1179
        return $this->setProperty('producer', $producer);
1180
    }
1181
1182
    /**
1183
     * The service provider, service operator, or service performer; the goods
1184
     * producer. Another party (a seller) may offer those services or goods on
1185
     * behalf of the provider. A provider may also serve as the seller.
1186
     *
1187
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1188
     *
1189
     * @return static
1190
     *
1191
     * @see http://schema.org/provider
1192
     */
1193
    public function provider($provider)
1194
    {
1195
        return $this->setProperty('provider', $provider);
1196
    }
1197
1198
    /**
1199
     * A publication event associated with the item.
1200
     *
1201
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1202
     *
1203
     * @return static
1204
     *
1205
     * @see http://schema.org/publication
1206
     */
1207
    public function publication($publication)
1208
    {
1209
        return $this->setProperty('publication', $publication);
1210
    }
1211
1212
    /**
1213
     * The publisher of the creative work.
1214
     *
1215
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1216
     *
1217
     * @return static
1218
     *
1219
     * @see http://schema.org/publisher
1220
     */
1221
    public function publisher($publisher)
1222
    {
1223
        return $this->setProperty('publisher', $publisher);
1224
    }
1225
1226
    /**
1227
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1228
     * document describing the editorial principles of an [[Organization]] (or
1229
     * individual e.g. a [[Person]] writing a blog) that relate to their
1230
     * activities as a publisher, e.g. ethics or diversity policies. When
1231
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1232
     * those of the party primarily responsible for the creation of the
1233
     * [[CreativeWork]].
1234
     * 
1235
     * While such policies are most typically expressed in natural language,
1236
     * sometimes related information (e.g. indicating a [[funder]]) can be
1237
     * expressed using schema.org terminology.
1238
     *
1239
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1240
     *
1241
     * @return static
1242
     *
1243
     * @see http://schema.org/publishingPrinciples
1244
     */
1245
    public function publishingPrinciples($publishingPrinciples)
1246
    {
1247
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1248
    }
1249
1250
    /**
1251
     * The Event where the CreativeWork was recorded. The CreativeWork may
1252
     * capture all or part of the event.
1253
     *
1254
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1255
     *
1256
     * @return static
1257
     *
1258
     * @see http://schema.org/recordedAt
1259
     */
1260
    public function recordedAt($recordedAt)
1261
    {
1262
        return $this->setProperty('recordedAt', $recordedAt);
1263
    }
1264
1265
    /**
1266
     * The composition this track is a recording of.
1267
     *
1268
     * @param \Spatie\SchemaOrg\Contracts\MusicCompositionContract|\Spatie\SchemaOrg\Contracts\MusicCompositionContract[] $recordingOf
1269
     *
1270
     * @return static
1271
     *
1272
     * @see http://schema.org/recordingOf
1273
     */
1274
    public function recordingOf($recordingOf)
1275
    {
1276
        return $this->setProperty('recordingOf', $recordingOf);
1277
    }
1278
1279
    /**
1280
     * The place and time the release was issued, expressed as a
1281
     * PublicationEvent.
1282
     *
1283
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1284
     *
1285
     * @return static
1286
     *
1287
     * @see http://schema.org/releasedEvent
1288
     */
1289
    public function releasedEvent($releasedEvent)
1290
    {
1291
        return $this->setProperty('releasedEvent', $releasedEvent);
1292
    }
1293
1294
    /**
1295
     * A review of the item.
1296
     *
1297
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1298
     *
1299
     * @return static
1300
     *
1301
     * @see http://schema.org/review
1302
     */
1303
    public function review($review)
1304
    {
1305
        return $this->setProperty('review', $review);
1306
    }
1307
1308
    /**
1309
     * Review of the item.
1310
     *
1311
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1312
     *
1313
     * @return static
1314
     *
1315
     * @see http://schema.org/reviews
1316
     */
1317
    public function reviews($reviews)
1318
    {
1319
        return $this->setProperty('reviews', $reviews);
1320
    }
1321
1322
    /**
1323
     * URL of a reference Web page that unambiguously indicates the item's
1324
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1325
     * official website.
1326
     *
1327
     * @param string|string[] $sameAs
1328
     *
1329
     * @return static
1330
     *
1331
     * @see http://schema.org/sameAs
1332
     */
1333
    public function sameAs($sameAs)
1334
    {
1335
        return $this->setProperty('sameAs', $sameAs);
1336
    }
1337
1338
    /**
1339
     * Indicates (by URL or string) a particular version of a schema used in
1340
     * some CreativeWork. For example, a document could declare a schemaVersion
1341
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1342
     * of schema version was required by some application.
1343
     *
1344
     * @param string|string[] $schemaVersion
1345
     *
1346
     * @return static
1347
     *
1348
     * @see http://schema.org/schemaVersion
1349
     */
1350
    public function schemaVersion($schemaVersion)
1351
    {
1352
        return $this->setProperty('schemaVersion', $schemaVersion);
1353
    }
1354
1355
    /**
1356
     * The Organization on whose behalf the creator was working.
1357
     *
1358
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1359
     *
1360
     * @return static
1361
     *
1362
     * @see http://schema.org/sourceOrganization
1363
     */
1364
    public function sourceOrganization($sourceOrganization)
1365
    {
1366
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1367
    }
1368
1369
    /**
1370
     * The "spatial" property can be used in cases when more specific properties
1371
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1372
     * not known to be appropriate.
1373
     *
1374
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1375
     *
1376
     * @return static
1377
     *
1378
     * @see http://schema.org/spatial
1379
     */
1380
    public function spatial($spatial)
1381
    {
1382
        return $this->setProperty('spatial', $spatial);
1383
    }
1384
1385
    /**
1386
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1387
     * the focus of the content. It is a subproperty of
1388
     *       contentLocation intended primarily for more technical and detailed
1389
     * materials. For example with a Dataset, it indicates
1390
     *       areas that the dataset describes: a dataset of New York weather
1391
     * would have spatialCoverage which was the place: the state of New York.
1392
     *
1393
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1394
     *
1395
     * @return static
1396
     *
1397
     * @see http://schema.org/spatialCoverage
1398
     */
1399
    public function spatialCoverage($spatialCoverage)
1400
    {
1401
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1402
    }
1403
1404
    /**
1405
     * A person or organization that supports a thing through a pledge, promise,
1406
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1407
     * corporate sponsor of an event.
1408
     *
1409
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1410
     *
1411
     * @return static
1412
     *
1413
     * @see http://schema.org/sponsor
1414
     */
1415
    public function sponsor($sponsor)
1416
    {
1417
        return $this->setProperty('sponsor', $sponsor);
1418
    }
1419
1420
    /**
1421
     * A CreativeWork or Event about this Thing.
1422
     *
1423
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1424
     *
1425
     * @return static
1426
     *
1427
     * @see http://schema.org/subjectOf
1428
     */
1429
    public function subjectOf($subjectOf)
1430
    {
1431
        return $this->setProperty('subjectOf', $subjectOf);
1432
    }
1433
1434
    /**
1435
     * The "temporal" property can be used in cases where more specific
1436
     * properties
1437
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1438
     * [[datePublished]]) are not known to be appropriate.
1439
     *
1440
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1441
     *
1442
     * @return static
1443
     *
1444
     * @see http://schema.org/temporal
1445
     */
1446
    public function temporal($temporal)
1447
    {
1448
        return $this->setProperty('temporal', $temporal);
1449
    }
1450
1451
    /**
1452
     * The temporalCoverage of a CreativeWork indicates the period that the
1453
     * content applies to, i.e. that it describes, either as a DateTime or as a
1454
     * textual string indicating a time period in [ISO 8601 time interval
1455
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1456
     *       the case of a Dataset it will typically indicate the relevant time
1457
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1458
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1459
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1460
     * temporalCoverage in broader terms - textually or via well-known URL.
1461
     *       Written works such as books may sometimes have precise temporal
1462
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1463
     * interval format format via "1939/1945".
1464
     * 
1465
     * Open-ended date ranges can be written with ".." in place of the end date.
1466
     * For example, "2015-11/.." indicates a range beginning in November 2015
1467
     * and with no specified final date. This is tentative and might be updated
1468
     * in future when ISO 8601 is officially updated.
1469
     *
1470
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1471
     *
1472
     * @return static
1473
     *
1474
     * @see http://schema.org/temporalCoverage
1475
     */
1476
    public function temporalCoverage($temporalCoverage)
1477
    {
1478
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1479
    }
1480
1481
    /**
1482
     * The textual content of this CreativeWork.
1483
     *
1484
     * @param string|string[] $text
1485
     *
1486
     * @return static
1487
     *
1488
     * @see http://schema.org/text
1489
     */
1490
    public function text($text)
1491
    {
1492
        return $this->setProperty('text', $text);
1493
    }
1494
1495
    /**
1496
     * A thumbnail image relevant to the Thing.
1497
     *
1498
     * @param string|string[] $thumbnailUrl
1499
     *
1500
     * @return static
1501
     *
1502
     * @see http://schema.org/thumbnailUrl
1503
     */
1504
    public function thumbnailUrl($thumbnailUrl)
1505
    {
1506
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1507
    }
1508
1509
    /**
1510
     * Approximate or typical time it takes to work with or through this
1511
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1512
     * 'PT1H25M'.
1513
     *
1514
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1515
     *
1516
     * @return static
1517
     *
1518
     * @see http://schema.org/timeRequired
1519
     */
1520
    public function timeRequired($timeRequired)
1521
    {
1522
        return $this->setProperty('timeRequired', $timeRequired);
1523
    }
1524
1525
    /**
1526
     * Organization or person who adapts a creative work to different languages,
1527
     * regional differences and technical requirements of a target market, or
1528
     * that translates during some event.
1529
     *
1530
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1531
     *
1532
     * @return static
1533
     *
1534
     * @see http://schema.org/translator
1535
     */
1536
    public function translator($translator)
1537
    {
1538
        return $this->setProperty('translator', $translator);
1539
    }
1540
1541
    /**
1542
     * The typical expected age range, e.g. '7-9', '11-'.
1543
     *
1544
     * @param string|string[] $typicalAgeRange
1545
     *
1546
     * @return static
1547
     *
1548
     * @see http://schema.org/typicalAgeRange
1549
     */
1550
    public function typicalAgeRange($typicalAgeRange)
1551
    {
1552
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1553
    }
1554
1555
    /**
1556
     * URL of the item.
1557
     *
1558
     * @param string|string[] $url
1559
     *
1560
     * @return static
1561
     *
1562
     * @see http://schema.org/url
1563
     */
1564
    public function url($url)
1565
    {
1566
        return $this->setProperty('url', $url);
1567
    }
1568
1569
    /**
1570
     * The version of the CreativeWork embodied by a specified resource.
1571
     *
1572
     * @param float|float[]|int|int[]|string|string[] $version
1573
     *
1574
     * @return static
1575
     *
1576
     * @see http://schema.org/version
1577
     */
1578
    public function version($version)
1579
    {
1580
        return $this->setProperty('version', $version);
1581
    }
1582
1583
    /**
1584
     * An embedded video object.
1585
     *
1586
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1587
     *
1588
     * @return static
1589
     *
1590
     * @see http://schema.org/video
1591
     */
1592
    public function video($video)
1593
    {
1594
        return $this->setProperty('video', $video);
1595
    }
1596
1597
    /**
1598
     * Example/instance/realization/derivation of the concept of this creative
1599
     * work. eg. The paperback edition, first edition, or eBook.
1600
     *
1601
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1602
     *
1603
     * @return static
1604
     *
1605
     * @see http://schema.org/workExample
1606
     */
1607
    public function workExample($workExample)
1608
    {
1609
        return $this->setProperty('workExample', $workExample);
1610
    }
1611
1612
}
1613

src/ScholarlyArticle.php 1 location

@@ 16-1653 (lines=1638) @@
13
 * @see http://schema.org/ScholarlyArticle
14
 *
15
 */
16
class ScholarlyArticle extends BaseType implements ScholarlyArticleContract, ArticleContract, CreativeWorkContract, ThingContract
17
{
18
    /**
19
     * The subject matter of the content.
20
     *
21
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
22
     *
23
     * @return static
24
     *
25
     * @see http://schema.org/about
26
     */
27
    public function about($about)
28
    {
29
        return $this->setProperty('about', $about);
30
    }
31
32
    /**
33
     * The human sensory perceptual system or cognitive faculty through which a
34
     * person may process or perceive information. Expected values include:
35
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
36
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
37
     *
38
     * @param string|string[] $accessMode
39
     *
40
     * @return static
41
     *
42
     * @see http://schema.org/accessMode
43
     */
44
    public function accessMode($accessMode)
45
    {
46
        return $this->setProperty('accessMode', $accessMode);
47
    }
48
49
    /**
50
     * A list of single or combined accessModes that are sufficient to
51
     * understand all the intellectual content of a resource. Expected values
52
     * include:  auditory, tactile, textual, visual.
53
     *
54
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
55
     *
56
     * @return static
57
     *
58
     * @see http://schema.org/accessModeSufficient
59
     */
60
    public function accessModeSufficient($accessModeSufficient)
61
    {
62
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
63
    }
64
65
    /**
66
     * Indicates that the resource is compatible with the referenced
67
     * accessibility API ([WebSchemas wiki lists possible
68
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
69
     *
70
     * @param string|string[] $accessibilityAPI
71
     *
72
     * @return static
73
     *
74
     * @see http://schema.org/accessibilityAPI
75
     */
76
    public function accessibilityAPI($accessibilityAPI)
77
    {
78
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
79
    }
80
81
    /**
82
     * Identifies input methods that are sufficient to fully control the
83
     * described resource ([WebSchemas wiki lists possible
84
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
85
     *
86
     * @param string|string[] $accessibilityControl
87
     *
88
     * @return static
89
     *
90
     * @see http://schema.org/accessibilityControl
91
     */
92
    public function accessibilityControl($accessibilityControl)
93
    {
94
        return $this->setProperty('accessibilityControl', $accessibilityControl);
95
    }
96
97
    /**
98
     * Content features of the resource, such as accessible media, alternatives
99
     * and supported enhancements for accessibility ([WebSchemas wiki lists
100
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
101
     *
102
     * @param string|string[] $accessibilityFeature
103
     *
104
     * @return static
105
     *
106
     * @see http://schema.org/accessibilityFeature
107
     */
108
    public function accessibilityFeature($accessibilityFeature)
109
    {
110
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
111
    }
112
113
    /**
114
     * A characteristic of the described resource that is physiologically
115
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
116
     * wiki lists possible
117
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
118
     *
119
     * @param string|string[] $accessibilityHazard
120
     *
121
     * @return static
122
     *
123
     * @see http://schema.org/accessibilityHazard
124
     */
125
    public function accessibilityHazard($accessibilityHazard)
126
    {
127
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
128
    }
129
130
    /**
131
     * A human-readable summary of specific accessibility features or
132
     * deficiencies, consistent with the other accessibility metadata but
133
     * expressing subtleties such as "short descriptions are present but long
134
     * descriptions will be needed for non-visual users" or "short descriptions
135
     * are present and no long descriptions are needed."
136
     *
137
     * @param string|string[] $accessibilitySummary
138
     *
139
     * @return static
140
     *
141
     * @see http://schema.org/accessibilitySummary
142
     */
143
    public function accessibilitySummary($accessibilitySummary)
144
    {
145
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
146
    }
147
148
    /**
149
     * Specifies the Person that is legally accountable for the CreativeWork.
150
     *
151
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
152
     *
153
     * @return static
154
     *
155
     * @see http://schema.org/accountablePerson
156
     */
157
    public function accountablePerson($accountablePerson)
158
    {
159
        return $this->setProperty('accountablePerson', $accountablePerson);
160
    }
161
162
    /**
163
     * An additional type for the item, typically used for adding more specific
164
     * types from external vocabularies in microdata syntax. This is a
165
     * relationship between something and a class that the thing is in. In RDFa
166
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
167
     * attribute - for multiple types. Schema.org tools may have only weaker
168
     * understanding of extra types, in particular those defined externally.
169
     *
170
     * @param string|string[] $additionalType
171
     *
172
     * @return static
173
     *
174
     * @see http://schema.org/additionalType
175
     */
176
    public function additionalType($additionalType)
177
    {
178
        return $this->setProperty('additionalType', $additionalType);
179
    }
180
181
    /**
182
     * The overall rating, based on a collection of reviews or ratings, of the
183
     * item.
184
     *
185
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
186
     *
187
     * @return static
188
     *
189
     * @see http://schema.org/aggregateRating
190
     */
191
    public function aggregateRating($aggregateRating)
192
    {
193
        return $this->setProperty('aggregateRating', $aggregateRating);
194
    }
195
196
    /**
197
     * An alias for the item.
198
     *
199
     * @param string|string[] $alternateName
200
     *
201
     * @return static
202
     *
203
     * @see http://schema.org/alternateName
204
     */
205
    public function alternateName($alternateName)
206
    {
207
        return $this->setProperty('alternateName', $alternateName);
208
    }
209
210
    /**
211
     * A secondary title of the CreativeWork.
212
     *
213
     * @param string|string[] $alternativeHeadline
214
     *
215
     * @return static
216
     *
217
     * @see http://schema.org/alternativeHeadline
218
     */
219
    public function alternativeHeadline($alternativeHeadline)
220
    {
221
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
222
    }
223
224
    /**
225
     * The actual body of the article.
226
     *
227
     * @param string|string[] $articleBody
228
     *
229
     * @return static
230
     *
231
     * @see http://schema.org/articleBody
232
     */
233
    public function articleBody($articleBody)
234
    {
235
        return $this->setProperty('articleBody', $articleBody);
236
    }
237
238
    /**
239
     * Articles may belong to one or more 'sections' in a magazine or newspaper,
240
     * such as Sports, Lifestyle, etc.
241
     *
242
     * @param string|string[] $articleSection
243
     *
244
     * @return static
245
     *
246
     * @see http://schema.org/articleSection
247
     */
248
    public function articleSection($articleSection)
249
    {
250
        return $this->setProperty('articleSection', $articleSection);
251
    }
252
253
    /**
254
     * A media object that encodes this CreativeWork. This property is a synonym
255
     * for encoding.
256
     *
257
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
258
     *
259
     * @return static
260
     *
261
     * @see http://schema.org/associatedMedia
262
     */
263
    public function associatedMedia($associatedMedia)
264
    {
265
        return $this->setProperty('associatedMedia', $associatedMedia);
266
    }
267
268
    /**
269
     * An intended audience, i.e. a group for whom something was created.
270
     *
271
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
272
     *
273
     * @return static
274
     *
275
     * @see http://schema.org/audience
276
     */
277
    public function audience($audience)
278
    {
279
        return $this->setProperty('audience', $audience);
280
    }
281
282
    /**
283
     * An embedded audio object.
284
     *
285
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
286
     *
287
     * @return static
288
     *
289
     * @see http://schema.org/audio
290
     */
291
    public function audio($audio)
292
    {
293
        return $this->setProperty('audio', $audio);
294
    }
295
296
    /**
297
     * The author of this content or rating. Please note that author is special
298
     * in that HTML 5 provides a special mechanism for indicating authorship via
299
     * the rel tag. That is equivalent to this and may be used interchangeably.
300
     *
301
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
302
     *
303
     * @return static
304
     *
305
     * @see http://schema.org/author
306
     */
307
    public function author($author)
308
    {
309
        return $this->setProperty('author', $author);
310
    }
311
312
    /**
313
     * An award won by or for this item.
314
     *
315
     * @param string|string[] $award
316
     *
317
     * @return static
318
     *
319
     * @see http://schema.org/award
320
     */
321
    public function award($award)
322
    {
323
        return $this->setProperty('award', $award);
324
    }
325
326
    /**
327
     * Awards won by or for this item.
328
     *
329
     * @param string|string[] $awards
330
     *
331
     * @return static
332
     *
333
     * @see http://schema.org/awards
334
     */
335
    public function awards($awards)
336
    {
337
        return $this->setProperty('awards', $awards);
338
    }
339
340
    /**
341
     * Fictional person connected with a creative work.
342
     *
343
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
344
     *
345
     * @return static
346
     *
347
     * @see http://schema.org/character
348
     */
349
    public function character($character)
350
    {
351
        return $this->setProperty('character', $character);
352
    }
353
354
    /**
355
     * A citation or reference to another creative work, such as another
356
     * publication, web page, scholarly article, etc.
357
     *
358
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
359
     *
360
     * @return static
361
     *
362
     * @see http://schema.org/citation
363
     */
364
    public function citation($citation)
365
    {
366
        return $this->setProperty('citation', $citation);
367
    }
368
369
    /**
370
     * Comments, typically from users.
371
     *
372
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
373
     *
374
     * @return static
375
     *
376
     * @see http://schema.org/comment
377
     */
378
    public function comment($comment)
379
    {
380
        return $this->setProperty('comment', $comment);
381
    }
382
383
    /**
384
     * The number of comments this CreativeWork (e.g. Article, Question or
385
     * Answer) has received. This is most applicable to works published in Web
386
     * sites with commenting system; additional comments may exist elsewhere.
387
     *
388
     * @param int|int[] $commentCount
389
     *
390
     * @return static
391
     *
392
     * @see http://schema.org/commentCount
393
     */
394
    public function commentCount($commentCount)
395
    {
396
        return $this->setProperty('commentCount', $commentCount);
397
    }
398
399
    /**
400
     * The location depicted or described in the content. For example, the
401
     * location in a photograph or painting.
402
     *
403
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
404
     *
405
     * @return static
406
     *
407
     * @see http://schema.org/contentLocation
408
     */
409
    public function contentLocation($contentLocation)
410
    {
411
        return $this->setProperty('contentLocation', $contentLocation);
412
    }
413
414
    /**
415
     * Official rating of a piece of content—for example,'MPAA PG-13'.
416
     *
417
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
418
     *
419
     * @return static
420
     *
421
     * @see http://schema.org/contentRating
422
     */
423
    public function contentRating($contentRating)
424
    {
425
        return $this->setProperty('contentRating', $contentRating);
426
    }
427
428
    /**
429
     * A secondary contributor to the CreativeWork or Event.
430
     *
431
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
432
     *
433
     * @return static
434
     *
435
     * @see http://schema.org/contributor
436
     */
437
    public function contributor($contributor)
438
    {
439
        return $this->setProperty('contributor', $contributor);
440
    }
441
442
    /**
443
     * The party holding the legal copyright to the CreativeWork.
444
     *
445
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
446
     *
447
     * @return static
448
     *
449
     * @see http://schema.org/copyrightHolder
450
     */
451
    public function copyrightHolder($copyrightHolder)
452
    {
453
        return $this->setProperty('copyrightHolder', $copyrightHolder);
454
    }
455
456
    /**
457
     * The year during which the claimed copyright for the CreativeWork was
458
     * first asserted.
459
     *
460
     * @param float|float[]|int|int[] $copyrightYear
461
     *
462
     * @return static
463
     *
464
     * @see http://schema.org/copyrightYear
465
     */
466
    public function copyrightYear($copyrightYear)
467
    {
468
        return $this->setProperty('copyrightYear', $copyrightYear);
469
    }
470
471
    /**
472
     * The creator/author of this CreativeWork. This is the same as the Author
473
     * property for CreativeWork.
474
     *
475
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
476
     *
477
     * @return static
478
     *
479
     * @see http://schema.org/creator
480
     */
481
    public function creator($creator)
482
    {
483
        return $this->setProperty('creator', $creator);
484
    }
485
486
    /**
487
     * The date on which the CreativeWork was created or the item was added to a
488
     * DataFeed.
489
     *
490
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
491
     *
492
     * @return static
493
     *
494
     * @see http://schema.org/dateCreated
495
     */
496
    public function dateCreated($dateCreated)
497
    {
498
        return $this->setProperty('dateCreated', $dateCreated);
499
    }
500
501
    /**
502
     * The date on which the CreativeWork was most recently modified or when the
503
     * item's entry was modified within a DataFeed.
504
     *
505
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
506
     *
507
     * @return static
508
     *
509
     * @see http://schema.org/dateModified
510
     */
511
    public function dateModified($dateModified)
512
    {
513
        return $this->setProperty('dateModified', $dateModified);
514
    }
515
516
    /**
517
     * Date of first broadcast/publication.
518
     *
519
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
520
     *
521
     * @return static
522
     *
523
     * @see http://schema.org/datePublished
524
     */
525
    public function datePublished($datePublished)
526
    {
527
        return $this->setProperty('datePublished', $datePublished);
528
    }
529
530
    /**
531
     * A description of the item.
532
     *
533
     * @param string|string[] $description
534
     *
535
     * @return static
536
     *
537
     * @see http://schema.org/description
538
     */
539
    public function description($description)
540
    {
541
        return $this->setProperty('description', $description);
542
    }
543
544
    /**
545
     * A sub property of description. A short description of the item used to
546
     * disambiguate from other, similar items. Information from other properties
547
     * (in particular, name) may be necessary for the description to be useful
548
     * for disambiguation.
549
     *
550
     * @param string|string[] $disambiguatingDescription
551
     *
552
     * @return static
553
     *
554
     * @see http://schema.org/disambiguatingDescription
555
     */
556
    public function disambiguatingDescription($disambiguatingDescription)
557
    {
558
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
559
    }
560
561
    /**
562
     * A link to the page containing the comments of the CreativeWork.
563
     *
564
     * @param string|string[] $discussionUrl
565
     *
566
     * @return static
567
     *
568
     * @see http://schema.org/discussionUrl
569
     */
570
    public function discussionUrl($discussionUrl)
571
    {
572
        return $this->setProperty('discussionUrl', $discussionUrl);
573
    }
574
575
    /**
576
     * Specifies the Person who edited the CreativeWork.
577
     *
578
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
579
     *
580
     * @return static
581
     *
582
     * @see http://schema.org/editor
583
     */
584
    public function editor($editor)
585
    {
586
        return $this->setProperty('editor', $editor);
587
    }
588
589
    /**
590
     * An alignment to an established educational framework.
591
     *
592
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
593
     *
594
     * @return static
595
     *
596
     * @see http://schema.org/educationalAlignment
597
     */
598
    public function educationalAlignment($educationalAlignment)
599
    {
600
        return $this->setProperty('educationalAlignment', $educationalAlignment);
601
    }
602
603
    /**
604
     * The purpose of a work in the context of education; for example,
605
     * 'assignment', 'group work'.
606
     *
607
     * @param string|string[] $educationalUse
608
     *
609
     * @return static
610
     *
611
     * @see http://schema.org/educationalUse
612
     */
613
    public function educationalUse($educationalUse)
614
    {
615
        return $this->setProperty('educationalUse', $educationalUse);
616
    }
617
618
    /**
619
     * A media object that encodes this CreativeWork. This property is a synonym
620
     * for associatedMedia.
621
     *
622
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
623
     *
624
     * @return static
625
     *
626
     * @see http://schema.org/encoding
627
     */
628
    public function encoding($encoding)
629
    {
630
        return $this->setProperty('encoding', $encoding);
631
    }
632
633
    /**
634
     * Media type typically expressed using a MIME format (see [IANA
635
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
636
     * [MDN
637
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
638
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
639
     * .mp3 etc.).
640
     * 
641
     * In cases where a [[CreativeWork]] has several media type representations,
642
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
643
     * particular [[encodingFormat]] information.
644
     * 
645
     * Unregistered or niche encoding and file formats can be indicated instead
646
     * via the most appropriate URL, e.g. defining Web page or a
647
     * Wikipedia/Wikidata entry.
648
     *
649
     * @param string|string[] $encodingFormat
650
     *
651
     * @return static
652
     *
653
     * @see http://schema.org/encodingFormat
654
     */
655
    public function encodingFormat($encodingFormat)
656
    {
657
        return $this->setProperty('encodingFormat', $encodingFormat);
658
    }
659
660
    /**
661
     * A media object that encodes this CreativeWork.
662
     *
663
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
664
     *
665
     * @return static
666
     *
667
     * @see http://schema.org/encodings
668
     */
669
    public function encodings($encodings)
670
    {
671
        return $this->setProperty('encodings', $encodings);
672
    }
673
674
    /**
675
     * A creative work that this work is an
676
     * example/instance/realization/derivation of.
677
     *
678
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
679
     *
680
     * @return static
681
     *
682
     * @see http://schema.org/exampleOfWork
683
     */
684
    public function exampleOfWork($exampleOfWork)
685
    {
686
        return $this->setProperty('exampleOfWork', $exampleOfWork);
687
    }
688
689
    /**
690
     * Date the content expires and is no longer useful or available. For
691
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
692
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
693
     * publisher wants to indicate that it may no longer be relevant (or helpful
694
     * to highlight) after some date.
695
     *
696
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
697
     *
698
     * @return static
699
     *
700
     * @see http://schema.org/expires
701
     */
702
    public function expires($expires)
703
    {
704
        return $this->setProperty('expires', $expires);
705
    }
706
707
    /**
708
     * Media type, typically MIME format (see [IANA
709
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
710
     * the content e.g. application/zip of a SoftwareApplication binary. In
711
     * cases where a CreativeWork has several media type representations,
712
     * 'encoding' can be used to indicate each MediaObject alongside particular
713
     * fileFormat information. Unregistered or niche file formats can be
714
     * indicated instead via the most appropriate URL, e.g. defining Web page or
715
     * a Wikipedia entry.
716
     *
717
     * @param string|string[] $fileFormat
718
     *
719
     * @return static
720
     *
721
     * @see http://schema.org/fileFormat
722
     */
723
    public function fileFormat($fileFormat)
724
    {
725
        return $this->setProperty('fileFormat', $fileFormat);
726
    }
727
728
    /**
729
     * A person or organization that supports (sponsors) something through some
730
     * kind of financial contribution.
731
     *
732
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
733
     *
734
     * @return static
735
     *
736
     * @see http://schema.org/funder
737
     */
738
    public function funder($funder)
739
    {
740
        return $this->setProperty('funder', $funder);
741
    }
742
743
    /**
744
     * Genre of the creative work, broadcast channel or group.
745
     *
746
     * @param string|string[] $genre
747
     *
748
     * @return static
749
     *
750
     * @see http://schema.org/genre
751
     */
752
    public function genre($genre)
753
    {
754
        return $this->setProperty('genre', $genre);
755
    }
756
757
    /**
758
     * Indicates an item or CreativeWork that is part of this item, or
759
     * CreativeWork (in some sense).
760
     *
761
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
762
     *
763
     * @return static
764
     *
765
     * @see http://schema.org/hasPart
766
     */
767
    public function hasPart($hasPart)
768
    {
769
        return $this->setProperty('hasPart', $hasPart);
770
    }
771
772
    /**
773
     * Headline of the article.
774
     *
775
     * @param string|string[] $headline
776
     *
777
     * @return static
778
     *
779
     * @see http://schema.org/headline
780
     */
781
    public function headline($headline)
782
    {
783
        return $this->setProperty('headline', $headline);
784
    }
785
786
    /**
787
     * The identifier property represents any kind of identifier for any kind of
788
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
789
     * dedicated properties for representing many of these, either as textual
790
     * strings or as URL (URI) links. See [background
791
     * notes](/docs/datamodel.html#identifierBg) for more details.
792
     *
793
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
794
     *
795
     * @return static
796
     *
797
     * @see http://schema.org/identifier
798
     */
799
    public function identifier($identifier)
800
    {
801
        return $this->setProperty('identifier', $identifier);
802
    }
803
804
    /**
805
     * An image of the item. This can be a [[URL]] or a fully described
806
     * [[ImageObject]].
807
     *
808
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
809
     *
810
     * @return static
811
     *
812
     * @see http://schema.org/image
813
     */
814
    public function image($image)
815
    {
816
        return $this->setProperty('image', $image);
817
    }
818
819
    /**
820
     * The language of the content or performance or used in an action. Please
821
     * use one of the language codes from the [IETF BCP 47
822
     * standard](http://tools.ietf.org/html/bcp47). See also
823
     * [[availableLanguage]].
824
     *
825
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
826
     *
827
     * @return static
828
     *
829
     * @see http://schema.org/inLanguage
830
     */
831
    public function inLanguage($inLanguage)
832
    {
833
        return $this->setProperty('inLanguage', $inLanguage);
834
    }
835
836
    /**
837
     * The number of interactions for the CreativeWork using the WebSite or
838
     * SoftwareApplication. The most specific child type of InteractionCounter
839
     * should be used.
840
     *
841
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
842
     *
843
     * @return static
844
     *
845
     * @see http://schema.org/interactionStatistic
846
     */
847
    public function interactionStatistic($interactionStatistic)
848
    {
849
        return $this->setProperty('interactionStatistic', $interactionStatistic);
850
    }
851
852
    /**
853
     * The predominant mode of learning supported by the learning resource.
854
     * Acceptable values are 'active', 'expositive', or 'mixed'.
855
     *
856
     * @param string|string[] $interactivityType
857
     *
858
     * @return static
859
     *
860
     * @see http://schema.org/interactivityType
861
     */
862
    public function interactivityType($interactivityType)
863
    {
864
        return $this->setProperty('interactivityType', $interactivityType);
865
    }
866
867
    /**
868
     * A flag to signal that the item, event, or place is accessible for free.
869
     *
870
     * @param bool|bool[] $isAccessibleForFree
871
     *
872
     * @return static
873
     *
874
     * @see http://schema.org/isAccessibleForFree
875
     */
876
    public function isAccessibleForFree($isAccessibleForFree)
877
    {
878
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
879
    }
880
881
    /**
882
     * A resource from which this work is derived or from which it is a
883
     * modification or adaption.
884
     *
885
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
886
     *
887
     * @return static
888
     *
889
     * @see http://schema.org/isBasedOn
890
     */
891
    public function isBasedOn($isBasedOn)
892
    {
893
        return $this->setProperty('isBasedOn', $isBasedOn);
894
    }
895
896
    /**
897
     * A resource that was used in the creation of this resource. This term can
898
     * be repeated for multiple sources. For example,
899
     * http://example.com/great-multiplication-intro.html.
900
     *
901
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
902
     *
903
     * @return static
904
     *
905
     * @see http://schema.org/isBasedOnUrl
906
     */
907
    public function isBasedOnUrl($isBasedOnUrl)
908
    {
909
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
910
    }
911
912
    /**
913
     * Indicates whether this content is family friendly.
914
     *
915
     * @param bool|bool[] $isFamilyFriendly
916
     *
917
     * @return static
918
     *
919
     * @see http://schema.org/isFamilyFriendly
920
     */
921
    public function isFamilyFriendly($isFamilyFriendly)
922
    {
923
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
924
    }
925
926
    /**
927
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
928
     * some sense), is part of.
929
     *
930
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
931
     *
932
     * @return static
933
     *
934
     * @see http://schema.org/isPartOf
935
     */
936
    public function isPartOf($isPartOf)
937
    {
938
        return $this->setProperty('isPartOf', $isPartOf);
939
    }
940
941
    /**
942
     * Keywords or tags used to describe this content. Multiple entries in a
943
     * keywords list are typically delimited by commas.
944
     *
945
     * @param string|string[] $keywords
946
     *
947
     * @return static
948
     *
949
     * @see http://schema.org/keywords
950
     */
951
    public function keywords($keywords)
952
    {
953
        return $this->setProperty('keywords', $keywords);
954
    }
955
956
    /**
957
     * The predominant type or kind characterizing the learning resource. For
958
     * example, 'presentation', 'handout'.
959
     *
960
     * @param string|string[] $learningResourceType
961
     *
962
     * @return static
963
     *
964
     * @see http://schema.org/learningResourceType
965
     */
966
    public function learningResourceType($learningResourceType)
967
    {
968
        return $this->setProperty('learningResourceType', $learningResourceType);
969
    }
970
971
    /**
972
     * A license document that applies to this content, typically indicated by
973
     * URL.
974
     *
975
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
976
     *
977
     * @return static
978
     *
979
     * @see http://schema.org/license
980
     */
981
    public function license($license)
982
    {
983
        return $this->setProperty('license', $license);
984
    }
985
986
    /**
987
     * The location where the CreativeWork was created, which may not be the
988
     * same as the location depicted in the CreativeWork.
989
     *
990
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
991
     *
992
     * @return static
993
     *
994
     * @see http://schema.org/locationCreated
995
     */
996
    public function locationCreated($locationCreated)
997
    {
998
        return $this->setProperty('locationCreated', $locationCreated);
999
    }
1000
1001
    /**
1002
     * Indicates the primary entity described in some page or other
1003
     * CreativeWork.
1004
     *
1005
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1006
     *
1007
     * @return static
1008
     *
1009
     * @see http://schema.org/mainEntity
1010
     */
1011
    public function mainEntity($mainEntity)
1012
    {
1013
        return $this->setProperty('mainEntity', $mainEntity);
1014
    }
1015
1016
    /**
1017
     * Indicates a page (or other CreativeWork) for which this thing is the main
1018
     * entity being described. See [background
1019
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1020
     *
1021
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1022
     *
1023
     * @return static
1024
     *
1025
     * @see http://schema.org/mainEntityOfPage
1026
     */
1027
    public function mainEntityOfPage($mainEntityOfPage)
1028
    {
1029
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1030
    }
1031
1032
    /**
1033
     * A material that something is made from, e.g. leather, wool, cotton,
1034
     * paper.
1035
     *
1036
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1037
     *
1038
     * @return static
1039
     *
1040
     * @see http://schema.org/material
1041
     */
1042
    public function material($material)
1043
    {
1044
        return $this->setProperty('material', $material);
1045
    }
1046
1047
    /**
1048
     * Indicates that the CreativeWork contains a reference to, but is not
1049
     * necessarily about a concept.
1050
     *
1051
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1052
     *
1053
     * @return static
1054
     *
1055
     * @see http://schema.org/mentions
1056
     */
1057
    public function mentions($mentions)
1058
    {
1059
        return $this->setProperty('mentions', $mentions);
1060
    }
1061
1062
    /**
1063
     * The name of the item.
1064
     *
1065
     * @param string|string[] $name
1066
     *
1067
     * @return static
1068
     *
1069
     * @see http://schema.org/name
1070
     */
1071
    public function name($name)
1072
    {
1073
        return $this->setProperty('name', $name);
1074
    }
1075
1076
    /**
1077
     * An offer to provide this item—for example, an offer to sell a
1078
     * product, rent the DVD of a movie, perform a service, or give away tickets
1079
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1080
     * offered, i.e. sell, lease, etc. This property can also be used to
1081
     * describe a [[Demand]]. While this property is listed as expected on a
1082
     * number of common types, it can be used in others. In that case, using a
1083
     * second type, such as Product or a subtype of Product, can clarify the
1084
     * nature of the offer.
1085
     *
1086
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1087
     *
1088
     * @return static
1089
     *
1090
     * @see http://schema.org/offers
1091
     */
1092
    public function offers($offers)
1093
    {
1094
        return $this->setProperty('offers', $offers);
1095
    }
1096
1097
    /**
1098
     * The page on which the work ends; for example "138" or "xvi".
1099
     *
1100
     * @param int|int[]|string|string[] $pageEnd
1101
     *
1102
     * @return static
1103
     *
1104
     * @see http://schema.org/pageEnd
1105
     */
1106
    public function pageEnd($pageEnd)
1107
    {
1108
        return $this->setProperty('pageEnd', $pageEnd);
1109
    }
1110
1111
    /**
1112
     * The page on which the work starts; for example "135" or "xiii".
1113
     *
1114
     * @param int|int[]|string|string[] $pageStart
1115
     *
1116
     * @return static
1117
     *
1118
     * @see http://schema.org/pageStart
1119
     */
1120
    public function pageStart($pageStart)
1121
    {
1122
        return $this->setProperty('pageStart', $pageStart);
1123
    }
1124
1125
    /**
1126
     * Any description of pages that is not separated into pageStart and
1127
     * pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".
1128
     *
1129
     * @param string|string[] $pagination
1130
     *
1131
     * @return static
1132
     *
1133
     * @see http://schema.org/pagination
1134
     */
1135
    public function pagination($pagination)
1136
    {
1137
        return $this->setProperty('pagination', $pagination);
1138
    }
1139
1140
    /**
1141
     * The position of an item in a series or sequence of items.
1142
     *
1143
     * @param int|int[]|string|string[] $position
1144
     *
1145
     * @return static
1146
     *
1147
     * @see http://schema.org/position
1148
     */
1149
    public function position($position)
1150
    {
1151
        return $this->setProperty('position', $position);
1152
    }
1153
1154
    /**
1155
     * Indicates a potential Action, which describes an idealized action in
1156
     * which this thing would play an 'object' role.
1157
     *
1158
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1159
     *
1160
     * @return static
1161
     *
1162
     * @see http://schema.org/potentialAction
1163
     */
1164
    public function potentialAction($potentialAction)
1165
    {
1166
        return $this->setProperty('potentialAction', $potentialAction);
1167
    }
1168
1169
    /**
1170
     * The person or organization who produced the work (e.g. music album,
1171
     * movie, tv/radio series etc.).
1172
     *
1173
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1174
     *
1175
     * @return static
1176
     *
1177
     * @see http://schema.org/producer
1178
     */
1179
    public function producer($producer)
1180
    {
1181
        return $this->setProperty('producer', $producer);
1182
    }
1183
1184
    /**
1185
     * The service provider, service operator, or service performer; the goods
1186
     * producer. Another party (a seller) may offer those services or goods on
1187
     * behalf of the provider. A provider may also serve as the seller.
1188
     *
1189
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1190
     *
1191
     * @return static
1192
     *
1193
     * @see http://schema.org/provider
1194
     */
1195
    public function provider($provider)
1196
    {
1197
        return $this->setProperty('provider', $provider);
1198
    }
1199
1200
    /**
1201
     * A publication event associated with the item.
1202
     *
1203
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1204
     *
1205
     * @return static
1206
     *
1207
     * @see http://schema.org/publication
1208
     */
1209
    public function publication($publication)
1210
    {
1211
        return $this->setProperty('publication', $publication);
1212
    }
1213
1214
    /**
1215
     * The publisher of the creative work.
1216
     *
1217
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1218
     *
1219
     * @return static
1220
     *
1221
     * @see http://schema.org/publisher
1222
     */
1223
    public function publisher($publisher)
1224
    {
1225
        return $this->setProperty('publisher', $publisher);
1226
    }
1227
1228
    /**
1229
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1230
     * document describing the editorial principles of an [[Organization]] (or
1231
     * individual e.g. a [[Person]] writing a blog) that relate to their
1232
     * activities as a publisher, e.g. ethics or diversity policies. When
1233
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1234
     * those of the party primarily responsible for the creation of the
1235
     * [[CreativeWork]].
1236
     * 
1237
     * While such policies are most typically expressed in natural language,
1238
     * sometimes related information (e.g. indicating a [[funder]]) can be
1239
     * expressed using schema.org terminology.
1240
     *
1241
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1242
     *
1243
     * @return static
1244
     *
1245
     * @see http://schema.org/publishingPrinciples
1246
     */
1247
    public function publishingPrinciples($publishingPrinciples)
1248
    {
1249
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1250
    }
1251
1252
    /**
1253
     * The Event where the CreativeWork was recorded. The CreativeWork may
1254
     * capture all or part of the event.
1255
     *
1256
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1257
     *
1258
     * @return static
1259
     *
1260
     * @see http://schema.org/recordedAt
1261
     */
1262
    public function recordedAt($recordedAt)
1263
    {
1264
        return $this->setProperty('recordedAt', $recordedAt);
1265
    }
1266
1267
    /**
1268
     * The place and time the release was issued, expressed as a
1269
     * PublicationEvent.
1270
     *
1271
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1272
     *
1273
     * @return static
1274
     *
1275
     * @see http://schema.org/releasedEvent
1276
     */
1277
    public function releasedEvent($releasedEvent)
1278
    {
1279
        return $this->setProperty('releasedEvent', $releasedEvent);
1280
    }
1281
1282
    /**
1283
     * A review of the item.
1284
     *
1285
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1286
     *
1287
     * @return static
1288
     *
1289
     * @see http://schema.org/review
1290
     */
1291
    public function review($review)
1292
    {
1293
        return $this->setProperty('review', $review);
1294
    }
1295
1296
    /**
1297
     * Review of the item.
1298
     *
1299
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1300
     *
1301
     * @return static
1302
     *
1303
     * @see http://schema.org/reviews
1304
     */
1305
    public function reviews($reviews)
1306
    {
1307
        return $this->setProperty('reviews', $reviews);
1308
    }
1309
1310
    /**
1311
     * URL of a reference Web page that unambiguously indicates the item's
1312
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1313
     * official website.
1314
     *
1315
     * @param string|string[] $sameAs
1316
     *
1317
     * @return static
1318
     *
1319
     * @see http://schema.org/sameAs
1320
     */
1321
    public function sameAs($sameAs)
1322
    {
1323
        return $this->setProperty('sameAs', $sameAs);
1324
    }
1325
1326
    /**
1327
     * Indicates (by URL or string) a particular version of a schema used in
1328
     * some CreativeWork. For example, a document could declare a schemaVersion
1329
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1330
     * of schema version was required by some application.
1331
     *
1332
     * @param string|string[] $schemaVersion
1333
     *
1334
     * @return static
1335
     *
1336
     * @see http://schema.org/schemaVersion
1337
     */
1338
    public function schemaVersion($schemaVersion)
1339
    {
1340
        return $this->setProperty('schemaVersion', $schemaVersion);
1341
    }
1342
1343
    /**
1344
     * The Organization on whose behalf the creator was working.
1345
     *
1346
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1347
     *
1348
     * @return static
1349
     *
1350
     * @see http://schema.org/sourceOrganization
1351
     */
1352
    public function sourceOrganization($sourceOrganization)
1353
    {
1354
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1355
    }
1356
1357
    /**
1358
     * The "spatial" property can be used in cases when more specific properties
1359
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1360
     * not known to be appropriate.
1361
     *
1362
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1363
     *
1364
     * @return static
1365
     *
1366
     * @see http://schema.org/spatial
1367
     */
1368
    public function spatial($spatial)
1369
    {
1370
        return $this->setProperty('spatial', $spatial);
1371
    }
1372
1373
    /**
1374
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1375
     * the focus of the content. It is a subproperty of
1376
     *       contentLocation intended primarily for more technical and detailed
1377
     * materials. For example with a Dataset, it indicates
1378
     *       areas that the dataset describes: a dataset of New York weather
1379
     * would have spatialCoverage which was the place: the state of New York.
1380
     *
1381
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1382
     *
1383
     * @return static
1384
     *
1385
     * @see http://schema.org/spatialCoverage
1386
     */
1387
    public function spatialCoverage($spatialCoverage)
1388
    {
1389
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1390
    }
1391
1392
    /**
1393
     * Indicates sections of a Web page that are particularly 'speakable' in the
1394
     * sense of being highlighted as being especially appropriate for
1395
     * text-to-speech conversion. Other sections of a page may also be usefully
1396
     * spoken in particular circumstances; the 'speakable' property serves to
1397
     * indicate the parts most likely to be generally useful for speech.
1398
     * 
1399
     * The *speakable* property can be repeated an arbitrary number of times,
1400
     * with three kinds of possible 'content-locator' values:
1401
     * 
1402
     * 1.) *id-value* URL references - uses *id-value* of an element in the page
1403
     * being annotated. The simplest use of *speakable* has (potentially
1404
     * relative) URL values, referencing identified sections of the document
1405
     * concerned.
1406
     * 
1407
     * 2.) CSS Selectors - addresses content in the annotated page, eg. via
1408
     * class attribute. Use the [[cssSelector]] property.
1409
     * 
1410
     * 3.)  XPaths - addresses content via XPaths (assuming an XML view of the
1411
     * content). Use the [[xpath]] property.
1412
     * 
1413
     * 
1414
     * For more sophisticated markup of speakable sections beyond simple ID
1415
     * references, either CSS selectors or XPath expressions to pick out
1416
     * document section(s) as speakable. For this
1417
     * we define a supporting type, [[SpeakableSpecification]]  which is defined
1418
     * to be a possible value of the *speakable* property.
1419
     *
1420
     * @param \Spatie\SchemaOrg\Contracts\SpeakableSpecificationContract|\Spatie\SchemaOrg\Contracts\SpeakableSpecificationContract[]|string|string[] $speakable
1421
     *
1422
     * @return static
1423
     *
1424
     * @see http://schema.org/speakable
1425
     */
1426
    public function speakable($speakable)
1427
    {
1428
        return $this->setProperty('speakable', $speakable);
1429
    }
1430
1431
    /**
1432
     * A person or organization that supports a thing through a pledge, promise,
1433
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1434
     * corporate sponsor of an event.
1435
     *
1436
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1437
     *
1438
     * @return static
1439
     *
1440
     * @see http://schema.org/sponsor
1441
     */
1442
    public function sponsor($sponsor)
1443
    {
1444
        return $this->setProperty('sponsor', $sponsor);
1445
    }
1446
1447
    /**
1448
     * A CreativeWork or Event about this Thing.
1449
     *
1450
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1451
     *
1452
     * @return static
1453
     *
1454
     * @see http://schema.org/subjectOf
1455
     */
1456
    public function subjectOf($subjectOf)
1457
    {
1458
        return $this->setProperty('subjectOf', $subjectOf);
1459
    }
1460
1461
    /**
1462
     * The "temporal" property can be used in cases where more specific
1463
     * properties
1464
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1465
     * [[datePublished]]) are not known to be appropriate.
1466
     *
1467
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1468
     *
1469
     * @return static
1470
     *
1471
     * @see http://schema.org/temporal
1472
     */
1473
    public function temporal($temporal)
1474
    {
1475
        return $this->setProperty('temporal', $temporal);
1476
    }
1477
1478
    /**
1479
     * The temporalCoverage of a CreativeWork indicates the period that the
1480
     * content applies to, i.e. that it describes, either as a DateTime or as a
1481
     * textual string indicating a time period in [ISO 8601 time interval
1482
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1483
     *       the case of a Dataset it will typically indicate the relevant time
1484
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1485
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1486
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1487
     * temporalCoverage in broader terms - textually or via well-known URL.
1488
     *       Written works such as books may sometimes have precise temporal
1489
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1490
     * interval format format via "1939/1945".
1491
     * 
1492
     * Open-ended date ranges can be written with ".." in place of the end date.
1493
     * For example, "2015-11/.." indicates a range beginning in November 2015
1494
     * and with no specified final date. This is tentative and might be updated
1495
     * in future when ISO 8601 is officially updated.
1496
     *
1497
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1498
     *
1499
     * @return static
1500
     *
1501
     * @see http://schema.org/temporalCoverage
1502
     */
1503
    public function temporalCoverage($temporalCoverage)
1504
    {
1505
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1506
    }
1507
1508
    /**
1509
     * The textual content of this CreativeWork.
1510
     *
1511
     * @param string|string[] $text
1512
     *
1513
     * @return static
1514
     *
1515
     * @see http://schema.org/text
1516
     */
1517
    public function text($text)
1518
    {
1519
        return $this->setProperty('text', $text);
1520
    }
1521
1522
    /**
1523
     * A thumbnail image relevant to the Thing.
1524
     *
1525
     * @param string|string[] $thumbnailUrl
1526
     *
1527
     * @return static
1528
     *
1529
     * @see http://schema.org/thumbnailUrl
1530
     */
1531
    public function thumbnailUrl($thumbnailUrl)
1532
    {
1533
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1534
    }
1535
1536
    /**
1537
     * Approximate or typical time it takes to work with or through this
1538
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1539
     * 'PT1H25M'.
1540
     *
1541
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1542
     *
1543
     * @return static
1544
     *
1545
     * @see http://schema.org/timeRequired
1546
     */
1547
    public function timeRequired($timeRequired)
1548
    {
1549
        return $this->setProperty('timeRequired', $timeRequired);
1550
    }
1551
1552
    /**
1553
     * Organization or person who adapts a creative work to different languages,
1554
     * regional differences and technical requirements of a target market, or
1555
     * that translates during some event.
1556
     *
1557
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1558
     *
1559
     * @return static
1560
     *
1561
     * @see http://schema.org/translator
1562
     */
1563
    public function translator($translator)
1564
    {
1565
        return $this->setProperty('translator', $translator);
1566
    }
1567
1568
    /**
1569
     * The typical expected age range, e.g. '7-9', '11-'.
1570
     *
1571
     * @param string|string[] $typicalAgeRange
1572
     *
1573
     * @return static
1574
     *
1575
     * @see http://schema.org/typicalAgeRange
1576
     */
1577
    public function typicalAgeRange($typicalAgeRange)
1578
    {
1579
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1580
    }
1581
1582
    /**
1583
     * URL of the item.
1584
     *
1585
     * @param string|string[] $url
1586
     *
1587
     * @return static
1588
     *
1589
     * @see http://schema.org/url
1590
     */
1591
    public function url($url)
1592
    {
1593
        return $this->setProperty('url', $url);
1594
    }
1595
1596
    /**
1597
     * The version of the CreativeWork embodied by a specified resource.
1598
     *
1599
     * @param float|float[]|int|int[]|string|string[] $version
1600
     *
1601
     * @return static
1602
     *
1603
     * @see http://schema.org/version
1604
     */
1605
    public function version($version)
1606
    {
1607
        return $this->setProperty('version', $version);
1608
    }
1609
1610
    /**
1611
     * An embedded video object.
1612
     *
1613
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1614
     *
1615
     * @return static
1616
     *
1617
     * @see http://schema.org/video
1618
     */
1619
    public function video($video)
1620
    {
1621
        return $this->setProperty('video', $video);
1622
    }
1623
1624
    /**
1625
     * The number of words in the text of the Article.
1626
     *
1627
     * @param int|int[] $wordCount
1628
     *
1629
     * @return static
1630
     *
1631
     * @see http://schema.org/wordCount
1632
     */
1633
    public function wordCount($wordCount)
1634
    {
1635
        return $this->setProperty('wordCount', $wordCount);
1636
    }
1637
1638
    /**
1639
     * Example/instance/realization/derivation of the concept of this creative
1640
     * work. eg. The paperback edition, first edition, or eBook.
1641
     *
1642
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1643
     *
1644
     * @return static
1645
     *
1646
     * @see http://schema.org/workExample
1647
     */
1648
    public function workExample($workExample)
1649
    {
1650
        return $this->setProperty('workExample', $workExample);
1651
    }
1652
1653
}
1654